Author |
Message
|
pfaulkner |
Posted: Sat Dec 20, 2003 2:42 pm Post subject: Aggregation Help |
|
|
Master
Joined: 18 Mar 2002 Posts: 241 Location: Colorado, USA
|
I have an Aggregation Flow that receives 3 messages, 2 are in a C format and 1 is xml. For the 2 C format messages I built a message set that contains areas for both messages and then I take them from the BLOB message that arrives in the Aggregation message and map them to the new message set.
My goal is to then create a single XML output message with data from all 3 messages.
The xml message also comes back in a BLOB format within my aggregation message so I'm not sure how I can map both my C format and the blob(xml) format to my output message.
I noticed, the sample in the manual show the reply messages in the aggregation reply being in an xml format. I assume that is because the Input Queue was using XML in the parser attribute. How does this work if you have multiple formats like I do?
Is there a way to store the xml in the environment by the tag names without having to code each field one at a time so that I can access the data in my compute node where I build the output xml?
Any other suggestions how I should handle this? |
|
Back to top |
|
 |
pfaulkner |
Posted: Sat Dec 20, 2003 8:10 pm Post subject: |
|
|
Master
Joined: 18 Mar 2002 Posts: 241 Location: Colorado, USA
|
Found a Redbook with an example and it adds an RFH2 header to the non xml messages that contains the MRM information for each messages and then sets the input queue parser to XML.
Is this the best way to handle it? |
|
Back to top |
|
 |
lillo |
Posted: Mon Dec 22, 2003 11:30 pm Post subject: |
|
|
Master
Joined: 11 Sep 2001 Posts: 224
|
Do you have a request message to start the aggregation fan-out message flow?
If you do, you could use different reply queues in your fan-in message flow and parse your messages in those mqinput nodes. Then convert to XML before the AggregateReply node and after this node create your output XML message. It is also important for your application to put the reply message in the queue specified in the MQMD and move the MsgId to the CorrelId.
The key is to have the request message, after that everything else it is easy.
Tell me if you need anything to solve your problem.
Regards, _________________ Lillo
IBM Certified Specialist - WebSphere MQ |
|
Back to top |
|
 |
pfaulkner |
Posted: Tue Dec 23, 2003 8:19 am Post subject: |
|
|
Master
Joined: 18 Mar 2002 Posts: 241 Location: Colorado, USA
|
I ended up just adding a Filter and Compute node to my input queue and then reparsing each msg to the correct Msgset. Works much better than my original design.
thanks for the reply. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Dec 23, 2003 12:54 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
pfaulkner wrote: |
I ended up just adding a Filter and Compute node to my input queue and then reparsing each msg to the correct Msgset. Works much better than my original design.
thanks for the reply. |
Just a note on performance. If you end up having to cascade Filter nodes more than about two deep, you're better off using RouteToLabel. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
|