Kai Hudalla created QPIDJMS-189:
-----------------------------------
Summary: Message correlation based on message ID does not work out
of the box
Key: QPIDJMS-189
URL: https://issues.apache.org/jira/browse/QPIDJMS-189
Project: Qpid JMS
Issue Type: Bug
Components: qpid-jms-client
Affects Versions: 0.9.0
Reporter: Kai Hudalla
I am trying to use Qpid JMS client to send a message to a non-JMS application
which returns a message to the client based on the request's reply-to property.
In order to correlate the response received from the non-JMS app with the
request, I want to use the incoming message's JMSCorrelationID property.
The non-JMS application simply takes the incoming message's message-id property
and puts it into the outgoing response's correlation-id property.
However, when I send a message using Qpid JMS with default configuration, e.g.
using a connection URI like {{amqp://myhost:myport}}, then the message ID of
the sent message retrieved via {{Message.getJMSMessageId()}} looks something
like {{ID:aef45f-...}} and the message-id of the incoming request in the
non-JMS app contains the same ID, i.e. {{ID:aef45f-...}}. However, the
correlation ID retrieved from the response via
{{Message.getJMSCorrelationId()}} at the JMS client starts with
{{ID:ID:aef45f-...}}, i.e. having a duplicate _ID:_ prefix, and thus cannot be
matched to the original message ID.
I have tracked down the problem to the inconsistent implementation of
{{AmqpJmsMessageFacade}}'s {{getMessageId()}} and {{getCorrelationId()}}
methods. The former only adds an _ID:_ prefix to the underlying message ID if
it doesn't already contain that prefix whereas the latter always adds the
prefix (unless the {{x-opt-app-correlation-id}} header is set).
The problem can be worked around by explicitly setting another connection ID
prefix using the {{jms.connectionIDPrefix}} connection URI parameter ni order
to define a different prefix than the default one (_ID_).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]