|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Msg Id problem |
« View previous topic :: View next topic » |
Author |
Message
|
kt76 |
Posted: Mon Mar 08, 2004 6:46 am Post subject: Msg Id problem |
|
|
Acolyte
Joined: 18 Jan 2004 Posts: 52
|
I am getting a request from the client with say msgid = 123
Based on the content I hit a backend service and get some data in multiple packets. They come with a corel id= 123.
If I get 3 packets, I wait for all 3 packets of corelid=123 and combine this to form a single XML .
<XML>
<val1>
<val2>
<val3>
</XML>
Based on data recd i need to send another request to the backend for each value val1, val2, val3 and get some data. I then need to aggregate all the replies and send it to the front end with a final reply of corel=123
Before doing this , i reset msg id of each request to the corel id .
I then pass this thru the Aggregate node via the propogate statemnt .
Howeever at the point when it hits the Aggregate request node, i get an error- Msgid is not unique , though the debug does mention the same message id for each message.
Is it that I can not reset the message id before i send it thru the Aggreagte node.... |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Mar 08, 2004 10:09 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
The aggregation nodes use the Message ID to distinguish which request goes with which reply. So, no, I don't believe you can use the same message ID for three separate requests. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kt76 |
Posted: Thu Mar 25, 2004 6:40 am Post subject: |
|
|
Acolyte
Joined: 18 Jan 2004 Posts: 52
|
How can i then corelate all my replies into one and send a final corel id as 123 if msg id going out of aggregate is diff for each one |
|
Back to top |
|
 |
Nizam |
Posted: Thu Oct 21, 2004 5:07 pm Post subject: |
|
|
Disciple
Joined: 10 Feb 2004 Posts: 160
|
I feel that the messages are aggreated using MsgId and ReplyIdentifier. These is stored in the LocalEnvironment.
When the reply arrives it looks for the control message that has same ReplyIdentifier and correlates the reply, checks if it has timed out or not and sends to the appropriate terminal. |
|
Back to top |
|
 |
JT |
Posted: Fri Oct 22, 2004 6:29 am Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
How can i then corelate all my replies into one and send a final corel id as 123 if msg id going out of aggregate is diff for each one |
Once you set unique MsgIds for each of the fan-out messages, the Aggregation function will amass all of the replies into a single message.
This you now know.
If I'm hearing you correctly, your problem lies in retaining the original CorrelId so that it can be attached to the final reply message, since the CorellId of the fan-out messages is being overriden by the backend service (where the CorrelId is overlayed with MsgId value), much as it was with the original message.
To get around this our applications build the CorrelId into the payload of the message by adding an extra XML tag, which is then returned on the reply message(s). When this wasn't possible I have seen applications utilize the ApplIdentityData parameter in the MQMD structure to transport the CorrelId back and forth.
Another option is to cache the Correlid, using the MsgId as the key, with the IA91 Broker Domain Data Store supportpac. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|