ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Messages staying in SYSTEM.BROKER.AGGR.UNKNOWN queue

Post new topic  Reply to topic
 Messages staying in SYSTEM.BROKER.AGGR.UNKNOWN queue « View previous topic :: View next topic » 
Author Message
joebuckeye
PostPosted: Wed May 31, 2017 9:13 am    Post subject: Messages staying in SYSTEM.BROKER.AGGR.UNKNOWN queue Reply with quote

Partisan

Joined: 24 Aug 2007
Posts: 364
Location: Columbus, OH

Seeing some "strange" aggregation issue since our migration from v8 to IIB 10.0.0.7 running on RHEL Server 7.3. This may have been happening under v8 but every error now is being "blamed" on the migration to IIB 10, so I have been investigating.

We have an IIB application that contains an aggregation that has three fan outs, two are service calls and the third is the original message. The application has an HTTP Input node so the original message also contains the HTTP Context variable (ie RequestIdentifier) so the HTTP Reply node can send a response to the caller. The fan out and fan in functionality are in their own flows.

The aggregation timeout is 9 seconds while the Unknown message timeout is 1 second.

When the application is under load we see messages stay in the SYSTEM.BROKER.AGGR.UNKNOWN queue.

I have a test setup to send 100 requests to the application in one second. Sometimes 100 responses are sent back and sometimes up to 50 responses are not sent back. The number of responses not sent back matches the number of messages that are stuck in the SYSTEM.BROKER.AGGR.UNKNOWN queue.

The problem is around the original message that contains the HTTP Context information being stuck in the SYSTEM.BROKER.AGGR.UNKNOWN queue. Since that message is never being released the aggregation reply message that is passed out of the Timeout terminal of the Agg Reply node does not contain the HTTP Context so no response can be sent back to the consumer.

Investigating this further lead me to bump up the Unknown message timeout to 3 seconds but the inconsistent behavior is still being seen.

We are curious why the messages are staying in the SYSTEM.BROKER.AGGR.UNKNOWN queue since we have an Unknown timeout message value set. That means the message should either be part of the aggregation response message or sent out the Unknown terminal (if the message arrives before the Aggregate Request node finishes it's work). This is based on the details here - https://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/ac12320_.htm. This leads us to believe that there really shouldn't be any messages staying on the SYSTEM.BROKER.AGGR.UNKNOWN queue.

I am just checking in here to see if anyone has any idea why we could be seeing this behavior.
Back to top
View user's profile Send private message
joebuckeye
PostPosted: Wed May 31, 2017 9:37 am    Post subject: Reply with quote

Partisan

Joined: 24 Aug 2007
Posts: 364
Location: Columbus, OH

Of course I did this in reverse order, I posted my message and then searched to see if others had a similar issue.

I found a thread (http://www.mqseries.net/phpBB2/viewtopic.php?p=401783&sid=3c1a7d3e93dd89b5f4460dc919bcbbd3) where it was suggested that you set the Transaction mode to 'Yes' (as opposed to 'Automatic') on the MQ Output nodes in the fan out flow.

I have done that and now have had 4 straight test runs with 100 out of 100 response messages being sent back. And no growth in the number of messages in the SYSTEM.BROKER.AGGR.UNKNOWN queue.

Thanks fjb_saper for your suggestion in that thread.

I would say that the Info Center page talking about this refers to the input node on your fan out flow and not the output nodes before the the Aggregation Request node. That threw me.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Jun 01, 2017 4:25 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

You're welcome.
What is not enough emphasized, is the behavior of the aggregation output, when there is no transaction present. As the output order is mostly random, there is no guarantee that the original message arrives in time at the aggregation input node when under load. I believe that is what you were seeing.

Setting the transaction to Yes ensures that the outbound messages are all available at the same time. This would ensure that your original message is available within the unknown time interval.

Glad you found your solution
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
joebuckeye
PostPosted: Thu Jun 01, 2017 4:37 am    Post subject: Reply with quote

Partisan

Joined: 24 Aug 2007
Posts: 364
Location: Columbus, OH

fjb_saper wrote:
What is not enough emphasized, is the behavior of the aggregation output, when there is no transaction present. As the output order is mostly random, there is no guarantee that the original message arrives in time at the aggregation input node when under load. I believe that is what you were seeing.


Yep. We were mystified by the aggregation reply node outputting an empty message from the Timeout terminal. And then seeing (most of the time) all the separate pieces being sent through the Unknown terminal.

I still think there might be a bug in aggregation handling because in many cases our original messages were stuck in the AGGR.UNKNOWN queue. I don't believe this should be happening.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Jun 01, 2017 4:48 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

joebuckeye wrote:
fjb_saper wrote:
What is not enough emphasized, is the behavior of the aggregation output, when there is no transaction present. As the output order is mostly random, there is no guarantee that the original message arrives in time at the aggregation input node when under load. I believe that is what you were seeing.


Yep. We were mystified by the aggregation reply node outputting an empty message from the Timeout terminal. And then seeing (most of the time) all the separate pieces being sent through the Unknown terminal.

I still think there might be a bug in aggregation handling because in many cases our original messages were stuck in the AGGR.UNKNOWN queue. I don't believe this should be happening.


It mostly has to do with the behavior under load. As I said the order of the fan out is random. Now imagine the original message comes last. And you might have swapping of context because of the load... So your messages are gone and answered while you are still struggling to output the original message...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Messages staying in SYSTEM.BROKER.AGGR.UNKNOWN queue
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.