cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Seumas Soltysik (JIRA)" <>
Subject [jira] Commented: (CXF-2760) implement useMessageIDAsCorrelationID for JMS Client
Date Wed, 14 Apr 2010 21:32:50 GMT


Seumas Soltysik commented on CXF-2760:

As stated in the MQSeries world clients acting as request/reply servers often use the paradigm
of using the messageID of the incoming message as the correlationID of the outgoing message.
This means that a CXF client interacting with an MQSeries "server" needs to be able to correlate
the request and the reply using the MessageID as opposed to a generated CorrelationID. The
problem is that the MessageID for a JMS message being sent from a CXF client is not available
until after the send() occurs. Therefore the JMSConduit needs to access the MessageID after
the send(). To get access to the Message/MessageID, I had to create a non-anonymous MessageCreater
to get access to the Message through a data member in the static class. At this point, the
MessageID can be inserted into the correlation Map along with the Exchange. In the case where
the reply message is sent from the server to a static Queue, the JMSConduit needs to ensure
that it is only getting messages that it sent and not other messages. The idea behind the
patch is to create a JMSListener on a per thread basis and then update the message selector
to use the MessageID for each request/reply. Since the cache level on the listener is set
to not cache consumers, a new consumer will be created using a new message selector after
a send() from the JMSConduit. One downside of this is that a new consumer is created before
every receive() which occurs every second by default. In the onMessage() call there is no
need to wait on the send() being completed as the reply message cannot be received until the
message selector is set after calling send().

> implement useMessageIDAsCorrelationID for JMS Client
> ----------------------------------------------------
>                 Key: CXF-2760
>                 URL:
>             Project: CXF
>          Issue Type: New Feature
>          Components: Transports
>    Affects Versions: 2.1.4
>            Reporter: Seumas Soltysik
>             Fix For: 2.1.4
>         Attachments: cxf-2760.patch
> MQSeries servers often use the message ID of and incoming message as the correlation
ID for an outgoing message. In order for a CXF client to communicate with an MQSeries server
it needs to correlate the outgoing message with the incoming message using the message ID
of the sent message.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message