You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Alvin Kwekel (JIRA)" <ji...@apache.org> on 2019/07/16 12:22:00 UTC
[jira] [Created] (CAMEL-13750) Incoming JMSCorrelationID is passed
along when useMessageIDAsCorrelationID
Alvin Kwekel created CAMEL-13750:
------------------------------------
Summary: Incoming JMSCorrelationID is passed along when useMessageIDAsCorrelationID
Key: CAMEL-13750
URL: https://issues.apache.org/jira/browse/CAMEL-13750
Project: Camel
Issue Type: Bug
Components: camel-activemq, camel-jms
Affects Versions: 2.24.1
Reporter: Alvin Kwekel
{noformat}
+-+ +-+ +-+
| | +-> Q1 +-> | | +-> Q3 +-> | |
|A| |B| |C|
| | <-+ Q2 <-+ | | <-+ Q4 <-+ | |
+-+ +-+ +-+{noformat}
JMS request goes from A to B to C and the reply back from C to B to A.
A useMessageIDAsCorrelationID=false
B useMessageIDAsCorrelationID=true
C useMessageIDAsCorrelationID=false
The JMSCorrelationID assigned by A is passed along to C via Camel message headers when useMessageIDAsCorrelationID is set on B's request. B is expecting the JMSMessageID to be used as JMSCorrelationID on the reply but since the JMSCorrelationID is actually provided C could decide to give precedence to the JMSCorrelationID rendering B's message selector to not match.
The only way this would work as expected is when C is also set to useMessageIDAsCorrelationID to always prefer the JMSMessageID. But consider situations where C is not under your control and/or implemented in a different technology than Camel.
I'd argue the JMSCorrelationID should be made null when the useMessageIDAsCorrelationID is set on a provider.
I've created a example project to demonstrate the behavior: [https://github.com/alvinkwekel/camel-example-jmscorrelationid]
This issue seems to be closely related to https://issues.apache.org/jira/browse/CAMEL-2249
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)