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 » Aggregation node timeout handling... in WMQI 2.1

Post new topic  Reply to topic
 Aggregation node timeout handling... in WMQI 2.1 « View previous topic :: View next topic » 
Author Message
_Angus_
PostPosted: Thu Oct 26, 2006 8:53 am    Post subject: Aggregation node timeout handling... in WMQI 2.1 Reply with quote

Acolyte

Joined: 25 Apr 2005
Posts: 54
Location: Edinburgh

Hi guys,

After much frustrating coding and debugging I've created a 3-way fan out aggregation flow for WMQI 2.1 (unfortunately the company I'm working for are still using 2.1!).

Needless to say I've discovered how fragile aggregation is! The only bit remaining in the flow I'd like to do is work out which replies timed out if I recieve a time out. If I try to reference the relevant folders to see if they exist it doesn't like it and more exceptions get thrown and records left in the aggregation database that keep trying to time out!

What's the best way to handle this? .. and where can I find examples\advice etc. on aggregation coding for 2.1. All the links on the ibm sites I've been to see to be dead!

Any help would be much appreciated
_________________
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Angus Cooke ~ AngusSoft

Integration Development Tools
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
vk
PostPosted: Thu Oct 26, 2006 10:16 pm    Post subject: Reply with quote

Partisan

Joined: 20 Sep 2005
Posts: 302
Location: Houston

When timeout happens, all replies which were received before timeout will be sent to the Timeout terminal. You can count the number of nodes to see how many replies were received before timeout. You can also inspect the MQMD header or body of individual noides. I am doing this in my flow successfully.

Once timeout happens, all entries in the BAGGREGATE table in the broker database will be deleted. Any reply which comes after timeout will be treated as Unknown reply and will be sent to the Unknown terminal. Here also, you can analyse the node details.

I am createng a Timeout XML message and Unknown XML message respectively with values fetched from the individual replies in the nodes and am sendig them to Timeout and Unknown queues.

You can tuen on broker tracing to get more details of why you are getting errors.

Regards,
VK.
Back to top
View user's profile Send private message
_Angus_
PostPosted: Fri Oct 27, 2006 1:09 am    Post subject: Reply with quote

Acolyte

Joined: 25 Apr 2005
Posts: 54
Location: Edinburgh

Ok, that makes sense and I understand what you're saying but I'm not sure how to do it! - do you have an example you can mail me or post here?

I'm basically not sure how to reference stuff on failed replies without sending the aggregate reply node into a weird state (where it doesn't delete the database entries and I have to clean 'em up myself!).


_________________
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Angus Cooke ~ AngusSoft

Integration Development Tools
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
vk
PostPosted: Fri Oct 27, 2006 5:16 am    Post subject: Reply with quote

Partisan

Joined: 20 Sep 2005
Posts: 302
Location: Houston

Message sent through the Timeout terminal of AggregateReply node will have a special tree structure. Below is the sample ESQL code for accessing the MsgId from the MQMD header of the first reply.

SET OutputRoot.XML.Timeout.MessageSource.MsgId =
InputRoot.ComIbmAggregateReplyBody.{cFolderName}[1].MQMD.MsgId;

Message sent to the unknown terminal will be like any other normal message. You can access the MsgId as follows -

SET OutputRoot.XML.Timeout.MessageSource.MsgId =
InputRoot.MQMD.MsgId;

You can also access the body of the message in the same way. Body will come after MQMD header and any other additional header. The message sent to the Out termainal of the Aggregate Reply node will also have a similar structure as the message sent to the Timeout terminal.

Regards,
VK.
Back to top
View user's profile Send private message
_Angus_
PostPosted: Fri Oct 27, 2006 7:23 am    Post subject: Reply with quote

Acolyte

Joined: 25 Apr 2005
Posts: 54
Location: Edinburgh

Thanks for your help VK - I've actually sorted it now. The only thing I was missing was the MRM tag (the reply I was interested in is CWF).

I needed:

InputRoot.ComIbmAggregateReplyBody.{cFolderName}.MRM.{fieldName}

works a treat now.

As an aside, I have noticed if the compute node hanging off the catch blows up the flow gets very confused and seems to throw lots of time outs - this is what results in the records being left in the BAGGREGATE table :-|

Thanks again
_________________
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Angus Cooke ~ AngusSoft

Integration Development Tools
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
fjb_saper
PostPosted: Fri Oct 27, 2006 1:08 pm    Post subject: Reply with quote

Grand High Poobah

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

_Angus_ wrote:

As an aside, I have noticed if the compute node hanging off the catch blows up the flow gets very confused and seems to throw lots of time outs - this is what results in the records being left in the BAGGREGATE table :-|

Thanks again

That's why we have a Filter built in before the compute node.
If the redelivered count is greater than x the filter just drops the message. This gets rid of unwanted (late) messages... especially if they blow up later in the catch branch...

Enjoy
_________________
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 » Aggregation node timeout handling... in WMQI 2.1
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.