W3C home > Mailing lists > Public > public-soap-jms@w3.org > November 2010

JMS header properties example code

From: Andrew Kennedy <andrewinternational@gmail.com>
Date: Mon, 22 Nov 2010 01:12:30 +0000
Message-Id: <4AE640C7-84DF-43AD-B5CC-E7F2A9527B3C@gmail.com>
To: public-soap-jms@w3.org

I was looking at the latest SOAP over JMS specification draft and in  
particular the description of setting JMS header (or QoS) properties,  
with example code:


The example code given in section "Setting JMS Message Header  
properties" will not work as described. These properties on a message  
can only be set by a JMS provider, and are basically read-only as far  
as clients are concerned. To send a message using non-default QoS  
values you need to use the four-argument send method, as shown in the  
final (commented out) line of the example. A corrected example would  
therefore use a method looking something like this:

// add appropriate error checking for your use....
public void someMethod(Context ctx, MessageProducer producer, Message  
         String deliveryModeStr, String replyToName, int priority,  
long timeToLive) {

     // set the delivery mode to the appropriate constant value.
     int deliveryMode = deliveryModeStr.equals("PERSISTENT")
             ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT;

     // Set the reply destination, first looking it up using JNDI
     Destination replyDestination = ctx.lookup(replyToName);

     // and finally, send the message.
     producer.send(jmsMessage, deliveryMode, priority, timeToLive);

Note the API for the Message class where these methods are documented  
as being solely for JMS providers:


-- andrew d kennedy ? apache qpid project : http://qpid.apache.org/ ;
Received on Monday, 22 November 2010 07:36:39 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:17:22 UTC