ISSUE-68: Broken JMS header properties example code
Bad JMS example
Broken JMS header properties example code
- State:
- CLOSED
- Product:
- SOAP-JMS Binding specification
- Raised by:
- Eric Johnson
- Opened on:
- 2010-11-23
- Description:
- From email: http://lists.w3.org/Archives/Public/public-soap-jms/2010Nov/0021.html
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:
http://www.w3.org/TR/2010/WD-soapjms-20101026/#binding-header-props-xmp
The example code given in section 2.2.2.1 "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 jmsMessage,
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);
jmsMessage.setJMSReplyTo(replyDestination);
// 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:
http://download.oracle.com/javaee/1.3/api/javax/jms/Message.html#setJMSPriority(int)
- Related Actions Items:
- No related actions
- Related emails:
- Agenda for 2010-12-21 conference call (from eric@tibco.com on 2010-12-20)
- Agenda for 2010-12-14 conference call (from eric@tibco.com on 2010-12-20)
- Re: ACTION-234 complete (from andrewinternational@gmail.com on 2010-12-18)
- ACTION-234 complete (from M8PHILLI@uk.ibm.com on 2010-12-14)
- RE: Agenda for 2010-12-14 conference call (from alewis@tibco.com on 2010-12-13)
- Agenda for 2010-12-14 conference call (from eric@tibco.com on 2010-12-13)
- Minutes 2010-12-07 (from M8PHILLI@uk.ibm.com on 2010-12-07)
- Completion of ACTION-231: Come up with a concrete proposal to resolve issue 68 (from M8PHILLI@uk.ibm.com on 2010-12-07)
- Agenda for the 2010-12-07 conference call (from eric@tibco.com on 2010-12-06)
- Agenda for the 2010-11-30 conference call (from eric@tibco.com on 2010-11-29)
- Re: JMS header properties example code (from eric@tibco.com on 2010-11-23)
- ISSUE-68 (Bad JMS example): Broken JMS header properties example code [SOAP-JMS Binding specification] (from sysbot+tracker@w3.org on 2010-11-23)
Related notes:
Opened as per: http://www.w3.org/2010/11/30-soap-jms-minutes.html
Eric Johnson, 6 Dec 2010, 20:18:40Resolved as per: http://www.w3.org/2010/12/07-soap-jms-minutes.html
Eric Johnson, 13 Dec 2010, 23:17:47Accepted application of resolution as per:
http://www.w3.org/2010/12/21-soap-jms-minutes.html
Display change log