Topic
4 replies Latest Post - ‏2013-05-21T20:45:43Z by chandrax
svolkers
svolkers
47 Posts
ACCEPTED ANSWER

Pinned topic Correlation Failure on backend MQ Put/Get

‏2007-11-30T20:39:17Z |
The correlation retrieval is failing on the response get queue MQ 2077. What I have found is the provider is not perserving the msgid, but as stated earlier the response should be correlated on the correlation id. Therefore, my questions is whether the correlation id is used for retrieval, but is the msgid also used? Here is the artifacts for the process.
Here is the Flow with associated msgid/correlid values:
On Entry to the provider (Websphere Message Broker)

(0x03000000):MsgId = X'c3e2d840d4d8c3c14040404040404040c193a967f53ce6ce'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'

Before Put to AQQ (z/OS based CICS application)

(0x03000000):MsgId = X'c3e2d840d4d8c3c14040404040404040c193a967f53ce6ce'
(0x03000000):CorrelId = X'c3e2d840d4d8c3c14040404040404040c193a967f53ce6ce'

After Put to AQQ
(0x03000000):MsgId = X'c3e2d840d4d8c3c14040404040404040c193a967f53ce6ce'
(0x03000000):CorrelId = X'c3e2d840d4d8c3c14040404040404040c193a967f53ce6ce'

After Get from AQQ (Back in Message Broker)

(0x03000000):MsgId = X'414d5120514d5f444853524330322020b04850472a4f0020'
(0x03000000):CorrelId = X'c3e2d840d4d8c3c14040404040404040c193a967f53ce6ce'

After Reply to End User (in this case, Datapower)
(0x03000000):MsgId = X'414d5120514d5f444853524330322020b04850472a4f0020'
(0x03000000):CorrelId = X'c3e2d840d4d8c3c14040404040404040c193a967f53ce6ce'
Updated on 2007-12-03T18:19:05Z at 2007-12-03T18:19:05Z by SystemAdmin
  • SystemAdmin
    SystemAdmin
    6772 Posts
    ACCEPTED ANSWER

    Re: Correlation Failure on backend MQ Put/Get

    ‏2007-11-30T21:41:28Z  in response to svolkers
    Hmmm, not sure if this helps but this could be a little unclear in previous threads. In a request/reply MQ message pattern on the back side of an appliance service, the device is expecting to GET a response message on the designated queue that has a "correlation ID" = the "message ID" of the request message. So the expected behavior is the the for the response message stream, the provider will assign (or MQ will assign) a new message ID since this is a distinctly new message (different content), and if it is part of a request/reply conversation the correlation ID will be equal to the request message ID that the application received.

    Therefore it is valid for a gateway to populate the request message "correlation ID" field with a copy of the request "message ID" field if that is not already the case. As long as the provider application produces a response message with either the request message's "message ID" or "correlation ID" (they should be the same now), then the value an appliance is looking for will be there. It is expected that a new "message ID" will appear in the response message flow.

    Corey
    • svolkers
      svolkers
      47 Posts
      ACCEPTED ANSWER

      Re: Correlation Failure on backend MQ Put/Get

      ‏2007-12-03T15:16:27Z  in response to SystemAdmin
      Corey,

      I may have misunderstood your text, but paragraph one states the provider reply should give a new MsgID but preserve the correlid provided by the requestor. Paragraph 2 states the MsgID and the correlid should be the same coming back from the provider. These seem to contradict.
      What is happening as provided by the first post, is Datapower submits to the provider a Msgid and null correlid. The provider provides a response back to Datapower with the correlid matching the submitted msgid. This response has a new MsgID created by the provider. Does the provider have to provide or echo back the same MsgID as well. If not please clarify

      Thanks,

      Scott
      • SystemAdmin
        SystemAdmin
        6772 Posts
        ACCEPTED ANSWER

        Re: Correlation Failure on backend MQ Put/Get

        ‏2007-12-03T18:19:05Z  in response to svolkers
        The provider does not (and should not) echo back the MSG ID. Frankly, you appliance won't care if it is the same but other applications (consumer) will likely get confused if there is any message acidity heuristics involved (once and only once delivery).

        All that matters is that the COR ID in the response message is set to the one that the appliance is looking for. The provider should copy it from the MSG ID of the inbound message.

        If this is how everything is configured and you are still not getting success I would suggest opening a PMR with IBM support so you can provide your device configuration, etc.

        Corey
  • chandrax
    chandrax
    7 Posts
    ACCEPTED ANSWER

    Re: Correlation Failure on backend MQ Put/Get

    ‏2013-05-21T20:45:43Z  in response to svolkers

    from the avbove sequence, everything looks fine....req(msg.id)=res(corr.id)

    more info.

    http://www.ibm.com/developerworks/websphere/library/techarticles/0703_crocker/0703_crocker.html

    http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0010962.htm

     

    any details on issue/errors and resolution ? and dp firmware version of this error ?