|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Aggregation and Subflows |
« View previous topic :: View next topic » |
Author |
Message
|
naio |
Posted: Wed Sep 23, 2015 6:21 am Post subject: Aggregation and Subflows |
|
|
Voyager
Joined: 08 Nov 2012 Posts: 82
|
Hi Masters,
I have some problems with an aggregation schema and subflows.
WMB 8.0.0.6, MQ 7.5.0.5 over CentOS.
I am making a component that split a single message in n messages, and then wait for the response of those n messages.
So my approach was to use aggregation schema, and to make it re usable create subflows of this schema in order to be use by all the mssage flows that use the Split&Join stereotype.
I have made many aggregations in my life, but this particular one is making me doubt of what exactly is happening.
I will try to explain the subflow:
It is a single subflow that includes input terminal + fanOutSubflow + fanInSubflow + output terminal.
The communication between the fanOut and fanIn subflow y made with MqQueues.
Apart from the n messages I am sending I send a context message, that is a message that contain context information from the fanOutflow, and it carry the original MQMD and Properties, in the same way that the n messages.
The aggregate schema is the one that I have used in other flow orchestrations, I send n messages with this configuration in the MQOutPutNode: Transaction=NO, Request=YES, REPLY-TO Queue= SomeQueue.
And then one context message with the same MQMD and Properties that the previous n messages directly to the fanIn with MQOutPutNode: Transaction=NO, Request=NO.
I am making sure that the MsgId that was present int the AggregateControl node is the one that is arriving in all the aggregation messages to the aggregateReply (I save the MsgId in the CorrelId and then invert it).
When I deploy the flow, and try the first time it works fine, but the second time I see the conext message arrive first (the context always arrive first) and instantly goes for the UNKNOWN terminal with the message:
Code: |
UserTrace BIP4412W: Corresponding request record not found for the reply message.
An AggregateReply node has received a message at its 'in' terminal. No corresponding record of a request message being sent could be found. See subsequent messages to determine how this situation has been handled.
It is possible that extraneous messages are arriving at the AggregateReply node 'in' terminal. Check your flow to ensure that the only messages arriving here are replies to request messages previously sent out and passed through an AggregateRequest node. It is possible that this message is a valid reply but part of an aggregation which previously timed out. It is possible that this is a reply to a message which has not yet been recorded by an AggregateRequest node. This can happen if request messages are sent outside of transactional control. Adjust your transaction settings to ensure that messages are sent under transactional control. |
And then the n messages arrives but as one (the conext) was not stored the aggregation fails. I see messages enqueued in SYSTEM.BROKER.AGGR.REPLY, SYSTEM.BROKER.AGGR.REQUEST and SYSTEM.BROKER.AGGR.CONTROL.
If I stop and start the execution flow it works agan, perhaps it works 2 times and then starts to fail... I would appreciate any help.
My first approach was to have this subflows as msgflows and works fine, but when I move them to subflows this problem start.
Thanks you in advance! _________________ "God is in his heaven all's right with the world" |
|
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
|
|
|
|