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 » Collector Node Catch Terminal Opps!

Post new topic  Reply to topic
 Collector Node Catch Terminal Opps! « View previous topic :: View next topic » 
Author Message
smdavies99
PostPosted: Mon Aug 30, 2010 1:51 am    Post subject: Collector Node Catch Terminal Opps! Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Here is the situation.

A collector node is setup and receives the collection and propagates it out to a Compute Node.
Something goes wrong in the Compute Node and an exception is thrown,

So being a good citizen, you have collected a Trace node to the Catch Terminal of the collector node.
You are directing the output to a File. The trace output is
Code:

${CURRENT_TIMESTAMP}
${ExceptionList}


All so far is fine and dandy.

My question is how many Times will the TimeStamp and ExceptionList be written to the Trace Node log file.
Note. the word WILL. not Should. If it was Should then the answers is naturally 1.

Platform Windows Server 2003
Broker 7.0.0.1.

This is repeatable. I put a Throw Node after the compute Node and I am seeing the text in the node in the ExceptionList.
The same thing happens with errors when processing Expired Collections.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Aug 30, 2010 9:36 am    Post subject: Reply with quote

Grand High Poobah

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

Will and Should -- 1 time per message in the collection when the error was thrown...

If you want it to happen only once you need to wire differently...
But then that's only my opinion...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
smdavies99
PostPosted: Mon Aug 30, 2010 1:06 pm    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Sorry fjb, you are wrong.
Agree that it should appear once. The complete collection is passed as one item in Root to the subsequent nodes.

Actually?
It keeps on repeating itself again and again and again.
I can see thist from the Trace Node that is set to output the TimeStamp and the ExceptionList. The same exceptionlist is output every time it repeats.

Methinks this is PMR territory unless someone can come up with an alternative?

Just to be clear, when you use the collector node, you have to really treat the before & after collector node as TWO Separate Flows. Because of the fact that the Collector Node has both a Catch & Failure terminal, it is just like a normal input node.
So I wire up a TraceNode to the Catch Terminal. Configure it to output to a file and watch the side growing and growing. In the end, I give up and stop the flow.
To test this further, I wired a ThrowNode at the end of the normal (& successful) Out Terminal (Collection Complete). I configured the ThrowNode to have some text that would ensure that the ExceptionList was coming from there. ( "Pluggh was Here"). This was recorded in the last stanza of every ExceptionList written to the log.
As I said, I think this is PMR territory. Now I just have to setup a flow that will make it simple for the Support people to replicate.
That said, any hints of how I could stop this would be nice.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Aug 30, 2010 1:52 pm    Post subject: Reply with quote

Grand High Poobah

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

This looks like PMR worthy.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Mon Aug 30, 2010 3:02 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

I think it's documented that throwing an exception from the catch terminal of the Collector node will cause an infinite loop.

I've just forgotten where at this exact second.
Back to top
View user's profile Send private message
smdavies99
PostPosted: Mon Aug 30, 2010 9:49 pm    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

mqjeff wrote:
I think it's documented that throwing an exception from the catch terminal of the Collector node will cause an infinite loop.



I'm not doing that.

When you get a complete (or expired) collection, a message is propagated by the node. In the case of a complete collection, this comes out of the 'out' terminal. For an incomplete collection, the collection timeout fires and it comes out of the 'expired' terminal.

The condition happens with either event.

so you get something out of the Node and you go merrily on your way processing the data.
Then something unforseen happens. Say a DB Error and you Throw and exception.
You have forseen this eventuality and have put some exception handler code connected to the Catch Terminal.
The ExceptionList that gets propagated out of the Catch Terminal is repeated Ad infinitum.

I was saying that if you put a Throw Node on the 'out' terminal and code something unique into the throw message, you will see the repeting ad-infinitum exceptionList being propagated out of the Catch Terminal.

IMHO, the only possible workaround is to wire the output of the 'out' terminal to an MQOutputNode and let another flow do the post collection completion work. Sigh.
The limitations of problems with the Catch terminal are also a barrier to using it in other places. Sigh (again).
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
goffinf
PostPosted: Thu Jan 20, 2011 8:21 am    Post subject: Reply with quote

Chevalier

Joined: 05 Nov 2005
Posts: 401

Using version: 6.1.0.3

Quote:
I was saying that if you put a Throw Node on the 'out' terminal and code something unique into the throw message, you will see the repeting ad-infinitum exceptionList being propagated out of the Catch Terminal.


We have just started using the Collector node. I saw this thread and wanted to see whether the behaviour you described happens for me.

The flow is MQInput -> Collector (out) -> Compute -> Throw
Collector (catch) -> MQOutput

The Collector node has quanity is set to 2.

The out terminal is connected to a Compute node.
The Catch terminal is connected to an MQOutput node.

Two messages are sent and the message is propagated to the out terminal. All good so far.

I do some compute logic on the collector message and then wired a THROW node to the out of the Compute.

The outcome was that 2 messages were sent to the MQOutput queue.

This seems like its the correct behaviour. You probably *do* want the Collector messages to be sent to a failure queue or such like in the event of an downstream exception. I didn't see any behaviour where messages were continually sent to the MQOutput ?

The only strange behaviour I saw was the messages of the output queue were EMPTY ?? (no idea why though - there is definately a valid message coming out of the Collector (out) and the Compute node before it hits the Throw).

In my *real* flow there is a bunch of work that happens after the Collector, including other Collectors.

Is this different to what you experienced ?

Would you still recommend implementing Collector nodes as :-

flow1
------

MQInput (FLOW1_IN) -> Collector1 -> Compute -> MQOutput (FLOW2_IN)

flow2
------

MQInput(FLOW2_IN) -> Collector2 -> Compute -> MQOutput (FLOW3_IN)

etc ....

Actually maybe even move the Compute to the start of the next flow so that no work other than an MQPUT occurs after the Collector (out) as in :-

flow1
------

MQInput (FLOW1_IN) -> Collector1 (out) -> MQOutput (FLOW2_IN)

flow2
------

MQInput(FLOW2_IN) -> Compute -> Collector2 (out)-> MQOutput (FLOW3_IN)


That is, before doing too much work after the Collector (out), maybe not even the Compute, go straight to MQ and start again from there ??

Cheers

Fraser.
Back to top
View user's profile Send private message
alewis
PostPosted: Thu Jan 20, 2011 8:54 am    Post subject: Reply with quote

Novice

Joined: 20 Aug 2006
Posts: 13

I had created a PMR for this and fix is provided in fix pack 2 but if you are using MB 7.0.0.1 use APAR IC71265
Back to top
View user's profile Send private message
smdavies99
PostPosted: Thu Jan 20, 2011 9:40 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

It is good to know that there is a fix for this.

If you can't implement the APAR or wait for the Fixpack then the following will 'sort it'

Put a Try-Catch Node on the output Terminals of the Collector Node. These will form an inpenetrable barrier shielding the buggy Collector Node Catch processing from ever being used.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Collector Node Catch Terminal Opps!
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.