Hi Christian,

it's a synchronous call, but it doesn't work because if you use the
conduitSelector CXF generates its own correlation ID which means the JMS
template will try to use that for correlation instead of the message ID.

Here's a sample message dump.

Request:

 MQGET of message number 1
****Message descriptor****

  StrucId  : 'MD  '  Version : 2
  Report   : 0  MsgType : 1
  Expiry   : -1  Feedback : 0
  Encoding : 273  CodedCharSetId : 1208
  Format : 'MQSTR   '
  Priority : 4  Persistence : 1
  MsgId : X'414D5120584E475457303145202020204DFB44A025225A03'
  CorrelId : X'3D9F3E81D1AB424BB0BB43D47D231AAF0000000000000002'
  BackoutCount : 0
  ReplyToQ       : 'QA.XN.0000/HMV_VRS_REP.T                        '
  ReplyToQMgr    : 'GTW01T                                          '
  ** Identity Context
  UserIdentifier : 'xnhmvc      '
  ApplIdentityData : '                                '
  ** Origin Context
  PutApplType    : '28'
  PutApplName    : 'WebSphere MQ Client for Java'
  PutDate  : '20110922'    PutTime  : '13331348'
  ApplOriginData : '    '

  GroupId : X'000000000000000000000000000000000000000000000000'
  MsgSeqNumber   : '1'
  Offset         : '0'
  MsgFlags       : '0'
  OriginalLength : '-1'

****   Message      ****

 length - 1630 bytes


Response:

 MQGET of message number 1
****Message descriptor****

  StrucId  : 'MD  '  Version : 2
  Report   : 0  MsgType : 2
  Expiry   : 8639606  Feedback : 0
  Encoding : 546  CodedCharSetId : 819
  Format : 'MQSTR   '
  Priority : 0  Persistence : 1
  MsgId : X'C3E2D840E7C3D4E34040404040404040C869813289220C92'
  CorrelId : X'414D5120584E475457303145202020204DFB44A025225A03'
  BackoutCount : 0
  ReplyToQ       : 'QA.XN.0000/HMV_VRS_REP.T                        '
  ReplyToQMgr    : 'GTW01T                                          '
  ** Identity Context
  UserIdentifier : 'xi50        '
  ApplIdentityData : '                                '
  ** Origin Context
  PutApplType    : '6'
  PutApplName    : 'WebSphere Datapower MQClient'
  PutDate  : '20110922'    PutTime  : '13371510'
  ApplOriginData : '    '

  GroupId : X'000000000000000000000000000000000000000000000000'
  MsgSeqNumber   : '1'
  Offset         : '0'
  MsgFlags       : '0'
  OriginalLength : '-1'

****   Message      ****

 length - 963 bytes

This is with useConduitSelector and conduitSelectorPrefix in use. You can
see that CXF sets a correlation ID on the request, and the server returns
the message ID as the correlation ID. CXF fails to correlate that message.

Jens


Christian Schneider wrote:
> 
> The selector for the correlation id seems to be only used for 
> synchronous calls. Is that the case for your project or do you call the 
> client asynchronously? In the sync case I would expect the code to work.
> 
> Can you do some dumps of the messages going in and out of cxf and on the 
> queues?
> It would be especially intersting what the message id, replyTo and 
> correlationId headers look like.
> 
> Thanks
> 
> Christian
> 


--
View this message in context: 
http://cxf.547215.n5.nabble.com/JMS-Message-Correlation-in-CXF-2-3-tp4830121p4872370.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to