|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
PROPAGATE original exception |
« View previous topic :: View next topic » |
Author |
Message
|
superstar |
Posted: Wed May 23, 2007 1:08 am Post subject: PROPAGATE original exception |
|
|
Apprentice
Joined: 12 May 2004 Posts: 31
|
I have a flow that outputs mulitiple messages from one source message. This is done through the PROPAGATE command. I have my catch terminal of input node attached to a compute node with a THROW statement. This THROW statement throws a user exception ... and which again is caught by an error subflow attached to the input node's failure terminal. But in the end, all I get is user exception which does not explain me the reason of original exception. how do I get the details of my original exception.
I am using this design to make sure that I commit either all or none of the MQ messages. |
|
Back to top |
|
 |
sarat |
Posted: Wed May 23, 2007 1:23 am Post subject: |
|
|
 Centurion
Joined: 29 Jun 2005 Posts: 136 Location: India
|
Hi,
Take the complete TRACE..... So that u can find out wat might be the problem _________________ With Regards,
Sarat. |
|
Back to top |
|
 |
edarasumanth |
Posted: Wed May 23, 2007 1:38 am Post subject: |
|
|
Novice
Joined: 15 Jun 2006 Posts: 21
|
Did you define RETURN FALSE in your ESQL coding. U need to define RETURN FALSE or RETURN TRUE when u r making use of propagate statement. |
|
Back to top |
|
 |
sknrt1 |
Posted: Wed May 23, 2007 6:36 am Post subject: |
|
|
Apprentice
Joined: 22 Jan 2003 Posts: 39 Location: USA
|
If the intent is to capture the exception details and rollback, here is a general way of doing it:
1. Have a trace node connected to MQInput Node Catch Terminal and print the exceptionList to a file (and also MQMD.MsgId which can be used to correlate with the msg on the errorQ to the one in the error trace file)
i.e., MQInput -->(Catch Terminal) ---> Trace --->Compute (throw user exception)
When you re-throw, the msg is back to the Input Q and it goes thru Re-processing, backout or fail terminal or DLQ (depending the design /code)
2. when the msg is re-processed, by default Backout count is set to 0, so msg goes to Fail terminal and exceptioList says: re-queue error.
3. Define Backout Threshold and backout ReQueue on the input queue.
(its better to have msg backed out, than re-direct to fail terminal, generally its not necessary to connect fail terminal, can achieve all the common error handling with in the catch terminal).
In your case, are you writing to an Queue from fail terminal?
or you may be ok with discard in the fail terminal, if so, you can write the exception to a file from catch terminal and throw after that.
Probably you are aware of it already.
Thanks
IBM Certified Solution Developer - WebSphere Message Broker V6.0 |
|
Back to top |
|
 |
elvis_gn |
Posted: Wed May 23, 2007 7:28 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi superstar,
If your throwing something in the Catch path, then that exception is what will go to the Failure path...
If you want your original exception to the thrown, then take the contents(dynamically) of the ExceptionList and throw them again...
There is a sample code provided by the Infocenter on this, and a lot of snippets on the same here on the forum..
Regards. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|