Author |
Message
|
wbiman |
Posted: Thu Jan 06, 2005 1:24 pm Post subject: BackoutCount keep on increasing |
|
|
Voyager
Joined: 13 Jul 2004 Posts: 84
|
Hi Friends,
Here's our problem.
We have one message flow in MQSI V2.1 that has logic of retrying 2 when error occur. But Its not working as it should work.
for retry logic we have set BOTHRESH =2 at queue level. But now when ever there's any error with the message , it just loops back as we can see backoutcount = 2000 and more. It never stops after 2.
Can u please advise what we are missing .....I am really confused on this......
thanks |
|
Back to top |
|
 |
JT |
Posted: Thu Jan 06, 2005 1:28 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
What CSD do you have installed? |
|
Back to top |
|
 |
wbiman |
Posted: Thu Jan 06, 2005 1:31 pm Post subject: help |
|
|
Voyager
Joined: 13 Jul 2004 Posts: 84
|
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu Jan 06, 2005 2:14 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Do you have the failure terminal wired, or do you have a value specified for the BackOutQueueName attribute of the queue? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
wbiman |
Posted: Thu Jan 06, 2005 2:21 pm Post subject: help |
|
|
Voyager
Joined: 13 Jul 2004 Posts: 84
|
Yes , we have failure terminal wired .....but BackOutQueueName is enpty.
Can you Please advise , Why this is happening and whats the solution to this? |
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu Jan 06, 2005 2:24 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
I'm no WMQI expert, but I'll give it a shot.
Is the Failure flow legitimate? What queue does the failure node put to? Is that queue full? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
JT |
Posted: Thu Jan 06, 2005 2:29 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Quote: |
...we have failure terminal wired |
What do you do in the failure path? |
|
Back to top |
|
 |
wbiman |
Posted: Thu Jan 06, 2005 2:41 pm Post subject: help |
|
|
Voyager
Joined: 13 Jul 2004 Posts: 84
|
Failure terminal wired to another error handling message flow that checks
Backoutcount value <= 1 after that Try and catch works
please help
should I try with Backoutcount value = 0...in filter node ....do u think that will work
thanks |
|
Back to top |
|
 |
JT |
Posted: Thu Jan 06, 2005 3:18 pm Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
To isolate the problem, I would disconnect the failure terminal on the MQinput node. See if the message ends up on the dead-letter queue, since you don't specify a backout queue on the message, this is where it should show up once the backout threshold is reached (assuming you have one assigned to the queue manager). If it does show up in the dead-letter queue, then you know you're not handling the event properly in the failure path.
...or turn on a debug trace for details of your flow's processing. |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Jan 06, 2005 5:42 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Yeah. If you have the failure terminal wired, then backout processing won't happen. Ergo, backout threshold won't apply.
I tend not to wire failure at all, and only wire catch, and add a throw node at the end.
In the catch processing, I make sure to log (in some manner) enough information to understand the cause of the error, possibly including an MQOutputNode with a transaction mode designed to ensure to ensure mesages are written outside the unit of work.
And then, again, I put a throw node. This allows normal error handling to occur, including backout requeuing logic. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kirani |
Posted: Thu Jan 06, 2005 11:59 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
jefflowrey wrote: |
If you have the failure terminal wired, then backout processing won't happen. Ergo, backout threshold won't apply.
|
What exactly do you mean by this?
AFAIK, your message will be propagated to the Failure terminal if the BackoutCount is greater than the value in BackoutThreshold attribute of the input queue and there is no backout queue assigned. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
sieijish |
Posted: Fri Jan 07, 2005 2:55 am Post subject: |
|
|
Acolyte
Joined: 29 Nov 2004 Posts: 67 Location: London
|
Kiran, what jefflowrey said is also true, and so are you...!
If the error is in the internal processing of the MQInputNode itself (validation, parsing, mqget error,backout etc), then if the failure terminal is wired, the message is routed there and hence no backout is attempted. In this scenario, whether catch terminal is wired or not doesn't make a difference. This situation is what Jeff is explaining.
But if the error is thrown from any path connected to the MQInputNode's out terminal, then if catch terminal is not wired, the message is backed out to initial input queue. And when the threshold is reached, backout attempt raises a exception and this exception goes to the Failure terminal. This is the situation you are talking. |
|
Back to top |
|
 |
EddieA |
Posted: Fri Jan 07, 2005 9:46 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Quote: |
Yes , we have failure terminal wired .....but BackOutQueueName is enpty. |
And I'll take a guess, that no DLQ is assigned either. Otherwise that's where the message would go.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
sieijish |
Posted: Fri Jan 07, 2005 9:52 am Post subject: |
|
|
Acolyte
Joined: 29 Nov 2004 Posts: 67 Location: London
|
DLQ is used only if the failure terminal is unwired and no BackOutQueue is definied. |
|
Back to top |
|
 |
xprezons |
Posted: Mon May 16, 2005 11:40 am Post subject: |
|
|
 Novice
Joined: 02 Sep 2004 Posts: 16 Location: UK
|
How should I go about designing my flow if I wanted to achieve the following:
1. Read off the messages on the Input Queue.
2. Validate the message. Make it throw an Exception in case of a failure.
3. If the validation fails .. put the message & ExceptionList on a log file and put the message onto a queue for investigation later.
Appreciate your thoughts on this.
Thanks.
---
WMQI v2.1 CSD 05. |
|
Back to top |
|
 |
|