ISSUE-39: Please don't rely on JMSMessageID for Protocol 2038

Protocol 2038 & correlation ID

Please don't rely on JMSMessageID for Protocol 2038

State:
CLOSED
Product:
SOAP-JMS Binding specification
Raised by:
Eric Johnson
Opened on:
2010-06-16
Description:
From email:
http://lists.w3.org/Archives/Public/public-soap-jms/2010Jun/0015.html

I have a problem with
Protocol-2038<http://www.w3.org/TR/2009/CR-soapjms-20090604/#Protocol-2038>
..

It works well when you have the client (C) and the server (S) without
intermediary.

1) C sends the message. The JMSMessageId "originalId" is then generated by
the producer.
2) S receives directly the message. Then S copies the JMSMessageId
"originalId" in the JMSCorrelationId of the response. S sends the message in
the reply queue.
3) C waits for a message with JMSCorrelationId = "originalId"

But if you have a less ideal infrastructure such as, two JMS brokers linked
together, you can have something like this :

C ----> brokerA ------> bridge ------> brokerB ------> S

Then C cannot rely on the JMSMessageID to correlate the response. Actually,
the bridge will read the original message and send it to the brokerB. A new
JMSMessageID = "newId" is then generated by the JMS provider. The server S
will respond with JMSCorrelationID = "newId" and the client C will not be
able to correlate the message, because it waits on the "JMSCorrelationID =
'originalId'" selector.

A solution will be to set the JMSCorrelationId at the client level. The
JMSCorrelationId will be preserved during all the cycle.

The protocol 2038 can be rewriten as follows :

- If no JMSCorrelationID is set in the request, then S MUST copy the
JMSMessageID from the original request to the JMSCorrelationID of the
response.
- If a JMSCorrelationID is set in the request, S MUST copy the
JMSCorrelationID from original request to the JMSCorrelationID of the
response.

Alternatively, the protocol 2038 could be simplified as follows:
- S MUST copy the JMSCorrelationID from original request to the
JMSCorrelationID of the response.

I have not seen the Protocol 2038 discussed in the mailing list, so I hope
this issue is not a duplicate.

I'm not sure how to sent my comments. I'm trying the mailing list, but if
you think another way will be more appropriate, feel free to give me any
instruction in that respect.

You can see in *setJMSMessageID<http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Message.html#setJMSMessageID%28java.lang.String%29>that
the
*JMS providers set this field when a message is sent.
More, you can see in
*setJMSCorrelationID<http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Message.html#setJMSCorrelationID%28java.lang.String%29>
* that JMSCorrelation is a mean to the client for correlating the request
and the response.

I hope the above is helpful and remain a your disposal for any queries you
may have.

Kind regards,

David Naramski
Related Actions Items:
No related actions
Related emails:
  1. Applied resolution for Issue 39 (ACTION 188) (from M8PHILLI@uk.ibm.com on 2010-07-08)
  2. Agenda for 2010-07-06 conference call (from eric@tibco.com on 2010-07-06)
  3. RE: Agenda for the 2010-06-29 conference call (from phil_adams@us.ibm.com on 2010-06-28)
  4. Agenda for the 2010-06-29 conference call (from eric@tibco.com on 2010-06-28)
  5. Re: Proposed resolution for Issue 39 (ACTION-182) (from eric@tibco.com on 2010-06-28)
  6. Agenda for the 2010-06-29 conference call (from eric@tibco.com on 2010-06-28)
  7. Proposed resolution for Issue 38 (ACTION-182) (from M8PHILLI@uk.ibm.com on 2010-06-23)
  8. Re: Please don't rely on JMSMessageID for Protocol 2038. (from alewis@tibco.com on 2010-06-22)
  9. Agenda for the 2010-06-22 conference call (from eric@tibco.com on 2010-06-21)
  10. Re: Please don't rely on JMSMessageID for Protocol 2038. (from david@nowina.net on 2010-06-20)
  11. Re: Please don't rely on JMSMessageID for Protocol 2038. (from eric@tibco.com on 2010-06-16)
  12. ISSUE-39 (Protocol 2038 & correlation ID): Please don't rely on JMSMessageID for Protocol 2038 [SOAP-JMS Binding specification] (from sysbot+tracker@w3.org on 2010-06-16)

Related notes:

Opened as per conf. call of 2010-06-22:
http://www.w3.org/2010/06/22-soap-jms-minutes.html

Eric Johnson, 28 Jun 2010, 23:13:43

[eric]: http://lists.w3.org/Archives/Public/public-soap-jms/2010Jun/0027.html

29 Jun 2010, 16:31:36

Accepted resolution proposed in email:
http://lists.w3.org/Archives/Public/public-soap-jms/2010Jun/0027.html
during conference call of 2010-06-29:
http://www.w3.org/2010/06/29-soap-jms-minutes.html

Eric Johnson, 6 Jul 2010, 15:42:04

Closed as per: http://www.w3.org/2010/07/06-soap-jms-minutes.html

Eric Johnson, 12 Jul 2010, 23:46:51

Completing historical record:
Application of resolution approved as per:
http://www.w3.org/2010/07/13-soap-jms-minutes.html

Approved by original submitter:
http://lists.w3.org/Archives/Public/public-soap-jms/2010Oct/0009.html

Eric Johnson, 12 Oct 2010, 00:58:53

Display change log ATOM feed


Chair, Staff Contact
Tracker: documentation, (configuration for this group), originally developed by Dean Jackson, is developed and maintained by the Systems Team <w3t-sys@w3.org>.
$Id: 39.html,v 1.1 2013-09-16 14:06:35 carine Exp $