|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Error handling in a subflow - strange results |
« View previous topic :: View next topic » |
Author |
Message
|
shassey |
Posted: Mon Apr 15, 2002 1:08 pm Post subject: |
|
|
Apprentice
Joined: 25 Dec 2001 Posts: 25 Location: shassey
|
We are seeing bizarre behaviour in error handling routine and hoped someone could help. I have a flow which has several subflows. There is a catch failure flow off the catch node of the mqinput node. The main flow has a compute node which reads db2 and checks to see if it got valid data back. These work great - I get the appropriate db2 sql information if it can't find the table and if the row isn't found that I want I also get information I want. I catch the row not found with a filter and trycatc node after the compute node and the db2 table not found goes of the failure terminal of that compute node. All go back to the common failure flow off the catch terminal. We have noticed that in the subflows, if there is a compute node that can't find the db2 table or gets a row not found - same scenario as above the error is caught by the trycatch but when it gets back to the mqinput it does not go down the catch route, it starts flowing back through the in terminal. We did a user trace on the main flow failure and the subflow failure and see that the main flow failure nicely went to the catch terminal but the subflow failure saw parser type as properties and happily processed the message.
Any ideas???? Thank you in advance for your help |
|
Back to top |
|
 |
kirani |
Posted: Mon Apr 15, 2002 2:15 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
It would be helpful if you could explain your message flow pictorially.
For example,
MQInput(out)->Trycatch(try)-> …
_________________ 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 |
|
 |
shassey |
Posted: Tue Apr 16, 2002 6:17 am Post subject: |
|
|
Apprentice
Joined: 25 Dec 2001 Posts: 25 Location: shassey
|
i figured out my problem - I had missed wiring the trycatch catch terminal on one of my trycatch. It retries if not wired.
I do have another question and usually it seems like there is a simple explanation. On my database nodes, if I have a severe db2 error (table not found or other db2 not available errors) my failure is not augmented with the exception information. If I run a user trace, I see where it sees the error, it says it augments the message with an exception list and that the message is propogated to the failure terminal - I have put a mqoutput queue wired directly to the failure terminal - the message written there does not have any exception information on it.
What am I doing wrong????
Thanks!! |
|
Back to top |
|
 |
devans |
Posted: Tue Apr 16, 2002 7:02 am Post subject: |
|
|
Apprentice
Joined: 18 Mar 2002 Posts: 43
|
The list of exceptions is stored in a different tree called ExceptionList. There are three "messages" propagated from each node - the message (InputRoot, OutputRoot, InputBody, OutputBody), the local environment (InputLocalEnvironment, OutputLocalEnvironment), and the exception list (InputExceptionList, OutputExceptionList). You will want to be inspecting the InputExceptionList. Try putting it through a Trace node or the debugger to see what it looks like and what information you'd like from it. If you want to put the information from the exception list onto a queue, you will have to copy bits of it to OutputBody (the message).
|
|
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
|
|
|
|