Author |
Message
|
mqhelpless |
Posted: Wed Aug 17, 2005 11:51 pm Post subject: Aggregation Nodes |
|
|
Apprentice
Joined: 13 Jul 2005 Posts: 33
|
I've read through a few redbooks, documentation and postings on this forum but still could not come to a conclusion on how aggregation reply works. Can someone help please? Thanks.
Specifically, I am wondering how does the aggregation "reply" node matches each reply to a previous request? Say I have 3 aggregated request RQ1, RQ2, RQ3 and replies for RQ2 comes in, how will I know these replies are valid and are for RQ2 and not RQ1 or RQ3? |
|
Back to top |
|
 |
elvis_gn |
Posted: Thu Aug 18, 2005 12:05 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Look in this path
C:\...\IBM\WebSphere Business Integration Message Brokers\ibtoolkit\eclipse\plugins\com.ibm.etools.mft.samples.airline.xml_5.0.4
You'll find the use of aggregation nodes and the working flows for an example. Hope you will figure out from the ESQL. |
|
Back to top |
|
 |
kishoreraju |
Posted: Thu Aug 18, 2005 3:49 am Post subject: |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
Mainly Aggregate nodes are mend for simultaneous processing of multipart messages and to support request reply method. It wills only checks that the responses from the requested flows came with the specified time limit or not. It is not going to validate the entire content of the message. |
|
Back to top |
|
 |
mqhelpless |
Posted: Sun Aug 21, 2005 6:01 pm Post subject: |
|
|
Apprentice
Joined: 13 Jul 2005 Posts: 33
|
Suppose I have 3 requests RQ1, RQ2 and RQ3 sent in that order. I would expect 3 replies RP1, RP2 and RP3 from the return message flows. Now suppose RP2 is returned before RP1, will the flow be able to make out that RP2 is in response to RQ2 and not RQ1?
Specifically, I need to know how the aggregation nodes work. I mean how does it pair up each request with each reply? In my sequence of events above, will it be able to match RP2 with RQ2 .... I have a feeling it will match RP2 with RQ1. Can someone advise pls?
What I am trying to achieve is to make use of aggregate nodes timeout to check for replies within a specified time period. If the reply to each request is not received in 10 seconds (from the time the request was sent), a msg will be sent to the request sender informing that the reply has timeout. If not using the aggregation node, are there any other means of achieving this? |
|
Back to top |
|
 |
jefflowrey |
Posted: Sun Aug 21, 2005 6:50 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Last I knew, the Aggregation nodes paired up replies based on correlation ID.
That is, for each request that was made, a unique msgID was generated, and then used with the appropriate MQRO_* options to copy Message ID to Correlation ID and then use that to match the reply to a unique request. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
mqhelpless |
Posted: Sun Aug 21, 2005 10:26 pm Post subject: |
|
|
Apprentice
Joined: 13 Jul 2005 Posts: 33
|
It seems that the way replies are matched to a corresponding request is via the MsgID (on the request) which is to be copied into CorrId (on the reply). If that's the case, I will not be able to use it as I need to send the original CorrId which contains some information to the requestor system.
Short of writing a C program to either scan through the database for potential timeout requests, are there any other methods? |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Aug 22, 2005 3:16 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You can certainly include the original correlation ID in the part of the aggregation requests that will get returned in the aggregation replies.
If it is the case that you have to receive one request from someone, break it up into multiple requests and forward those to downstream processes as new requests, and then get back replies and build a compositie reply to the original sender...
Then the Aggregation nodes are exactly what you want to use and should be using. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
|