Author |
Message
|
nmahesh4mb |
Posted: Thu Feb 21, 2013 2:50 am Post subject: Collecter node Error Handling |
|
|
Novice
Joined: 25 May 2012 Posts: 23
|
Hi we're using the collecter node to pick the messages for particular timing and in downstream nodes of collecter node if we get any exception it'll through an exception and it'll reach to catch terminal and even if it's processed successful also again it's coming to the out terminal of collecter node( is this the behaviour of the collecter node or any problem in this) and again it's doing the same process infinity times, message flow is not stopping,
Please help  |
|
Back to top |
|
 |
smdavies99 |
Posted: Thu Feb 21, 2013 4:47 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
My general rule of thumb with the collector node is to have as little processing as possible on the output side of the collector node. I usually just create an MQMD and drop the whole collection onto a Queue. Then another thread can pick it up and process it properly with the added benefit of the normal Error Handler wrapper. _________________ 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 |
|
 |
Vitor |
Posted: Thu Feb 21, 2013 5:38 am Post subject: Re: Collecter node Error Handling |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Don't double post!
nmahesh4mb wrote: |
Hi we're using the collecter node to pick the messages for particular timing |
A Collector node is an odd choice for a timer. Why not a Timer node?
nmahesh4mb wrote: |
and in downstream nodes of collecter node if we get any exception it'll through an exception and it'll reach to catch terminal and even if it's processed successful also again it's coming to the out terminal of collecter node( is this the behaviour of the collecter node or any problem in this) and again it's doing the same process infinity times, message flow is not stopping, |
In your other post you said the exception processing was to put the message to a queue; now you say there's processing associated with it - which is it?
I repeat my comments on your other thread. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
nmahesh4mb |
Posted: Thu Feb 21, 2013 6:45 am Post subject: |
|
|
Novice
Joined: 25 May 2012 Posts: 23
|
we need to receive from the external source and at a time we need to receive the no of messages in the given time so only I have selected the collector node,
in the collector node process while in error scenario it should stops at catch terminal but it's not ending with putting the message in catch terminal's queue it's again coming to the out terminal, collector node's catch terminal I'm connecting to the compute node and I'm set the collected message as null and creating the output message which needs to put in queue also it's coming to out terminal only |
|
Back to top |
|
 |
lancelotlinc |
Posted: Thu Feb 21, 2013 6:46 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
nmahesh4mb wrote: |
we need to receive from the external source and at a time we need to receive the no of messages in the given time so only I have selected the collector node,
in the collector node process while in error scenario it should stops at catch terminal but it's not ending with putting the message in catch terminal's queue it's again coming to the out terminal, collector node's catch terminal I'm connecting to the compute node and I'm set the collected message as null and creating the output message which needs to put in queue also it's coming to out terminal only |
You really should be using a two-step process to accomplish this. Trying to do all in one message flow is counter-productive. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
nmahesh4mb |
Posted: Thu Feb 21, 2013 6:53 am Post subject: |
|
|
Novice
Joined: 25 May 2012 Posts: 23
|
Thanks lancelotlinc,
I'm using two flows only,
Main thing is once exception occurs it's not stopping at catch terminal again it's coming |
|
Back to top |
|
 |
lancelotlinc |
Posted: Thu Feb 21, 2013 6:59 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
nmahesh4mb wrote: |
Thanks lancelotlinc,
I'm using two flows only,
Main thing is once exception occurs it's not stopping at catch terminal again it's coming |
Your error handler needs a better design. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 21, 2013 7:00 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
nmahesh4mb wrote: |
we need to receive from the external source and at a time we need to receive the no of messages in the given time so only I have selected the collector node, |
Which version of WMB? If you have a long timeout (minutes not seconds) I've seen odd things happen in 7.0.0.3 and lower.
nmahesh4mb wrote: |
in the collector node process while in error scenario it should stops at catch terminal but it's not ending with putting the message in catch terminal's queue it's again coming to the out terminal, collector node's catch terminal I'm connecting to the compute node and I'm set the collected message as null and creating the output message which needs to put in queue also it's coming to out terminal only |
And again, what does the trace say about why this is happening? I take your word for the fact you're seeing it happen & have satisfied yourself that it shouldn't be happening so this leaves the why it is in fact happening. Which the trace will tell you.
Also how (given you're not using the trace) do you know it's the same message coming out of the out terminal and not a new message that has the same content & payload as the previously failed messages, i.e. how do you know it's looping not being resubmitted to the collector as I suggested? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
nmahesh4mb |
Posted: Thu Feb 21, 2013 8:47 am Post subject: |
|
|
Novice
Joined: 25 May 2012 Posts: 23
|
Hi this is the Trace
( ['GENERICROOT' : 0x14755c0]
(0x01000000:Name):Properties = ( ['GENERICPROPERTYPARSER' : 0x18bd4fb8]
(0x03000000:NameValue):MessageSet = NULL
(0x03000000:NameValue):MessageType = NULL
(0x03000000:NameValue):MessageFormat = NULL
(0x03000000:NameValue):Encoding = NULL
(0x03000000:NameValue):CodedCharSetId = NULL
(0x03000000:NameValue):Transactional = NULL
(0x03000000:NameValue):Persistence = NULL
(0x03000000:NameValue):CreationTime = NULL
(0x03000000:NameValue):ExpirationTime = NULL
(0x03000000:NameValue):Priority = NULL
(0x03000000:NameValue):ReplyIdentifier = NULL
(0x03000000:NameValue):ReplyProtocol = 'UNKNOWN' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = NULL
(0x03000000:NameValue):IdentitySourceType = NULL
(0x03000000:NameValue):IdentitySourceToken = NULL
(0x03000000:NameValue):IdentitySourcePassword = NULL
(0x03000000:NameValue):IdentitySourceIssuedBy = NULL
(0x03000000:NameValue):IdentityMappedType = NULL
(0x03000000:NameValue):IdentityMappedToken = NULL
(0x03000000:NameValue):IdentityMappedPassword = NULL
(0x03000000:NameValue):IdentityMappedIssuedBy = NULL
)
(0x01000000:Name):Collection = ( ['COLLECTION' : 0xe42cb0]
(0x03000000:NameValue):CollectionName = '' (CHARACTER)
(0x01000000:Name ):Collected_Idoc = ( ['MQROOT' : 0x14757e8]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x18bd5840]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2013-02-21 14:29:16.490' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'UNKNOWN' (CHARACTER)
(0x03000000:NameValue):Topic = '' (CHARACTER)
(0x03000000:NameValue):ContentType = NULL
(0x03000000:NameValue):IdentitySourceType = NULL
(0x03000000:NameValue):IdentitySourceToken = NULL
(0x03000000:NameValue):IdentitySourcePassword = NULL
(0x03000000:NameValue):IdentitySourceIssuedBy = NULL
(0x03000000:NameValue):IdentityMappedType = NULL
(0x03000000:NameValue):IdentityMappedToken = NULL
(0x03000000:NameValue):IdentityMappedPassword = NULL
(0x03000000:NameValue):IdentityMappedIssuedBy = NULL
I'm thinking that in that the "ExpirationTime = -1 (INTEGER) " might be the reason |
|
Back to top |
|
 |
lancelotlinc |
Posted: Thu Feb 21, 2013 8:50 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
What does setting the Expiration to -1 mean to you when you read the InfoCentre? Do you comprehend its meaning? _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Feb 21, 2013 8:50 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Is there a specific reason why you are "collecting" "IDocs" ??  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 21, 2013 8:54 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
nmahesh4mb wrote: |
Hi this is the Trace |
No it's not. That's the output of a Trace node, not a user trace.
nmahesh4mb wrote: |
I'm thinking that in that the "ExpirationTime = -1 (INTEGER) " might be the reason |
Are you sure you mean "thinking"? How did you come to that conclusion? All those NULLS and it's the expiry that bothers you?
One thing this does show, and is more probative than the expiry value is that if this is from a Trace node with {$Root} placed immediately after the out terminal, it contains no collection at all. So your assertion that "it's the same message over and over" is clearly false. There's no message here at all.
So maybe the Collector is doing what you've told it to do, and is emitting all the messages it received in a given period of time. Even when there are no messages at all. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 21, 2013 8:55 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
fjb_saper wrote: |
Is there a specific reason why you are "collecting" "IDocs" ??  |
Oooo..... good catch!!  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
nmahesh4mb |
Posted: Thu Feb 21, 2013 9:29 am Post subject: |
|
|
Novice
Joined: 25 May 2012 Posts: 23
|
I'm receiving the message from SAP Application |
|
Back to top |
|
 |
nmahesh4mb |
Posted: Thu Feb 21, 2013 9:31 am Post subject: |
|
|
Novice
Joined: 25 May 2012 Posts: 23
|
one morething I need to explain but now I'm using the MQInput node for Testing purpose while doing the Unit testing I found that collector node is not ending at catch terminal that's why I'm working on it |
|
Back to top |
|
 |
|