Author |
Message
|
kirankinnu |
Posted: Wed Dec 13, 2006 3:51 pm Post subject: Exception List Missing |
|
|
 Centurion
Joined: 12 Jun 2004 Posts: 128 Location: Chicago, IL
|
I am facing a weired situation. We are trying to handle exceptions in WMB6. When ever an exception occurs in MQinput node, it passes through Failure terminal to another exception handling subflow. In that flow it passes through a compute node to create some Envi Variables.
The subflow looks like this
Input-->Trace1-->Compute-->Trace2-->Output
Whats happening is, In the subflow, before the exception reaches to the Compute node, I could see the exception in Trace1(${ExceptionList}), but once it crosses the Compute, the exception is missing. I am not able to see the exception in Trace 2(${ExceptionList}). Trace file 2 is empty. I even tried setting SET OutputExceptionList = InputExceptionList. But the exception is not getting propagated to Trace2. For Compute Node i am setting the properties of Compute Mode to "ALL". I am even using the CopyEntiremessage() in Compute node. In the compute node, i am not atall performing any operations on exceptions. Do I need to look for anything else. I was working on this for couple of days and couldnt find a solution. And the exception that is occuring to force the message to come to this subflow is MQRC 2110. I would appreciate If someone could guide me with this.
Thank You,
Kiran |
|
Back to top |
|
 |
elvis_gn |
Posted: Thu Dec 14, 2006 12:39 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi kirankinnu,
When an exception occurs, the message with the exceptionlist is rolled back...for example in your flow, if exception occured at Output, it would return to input...
But the trace files would not have any information of the ExceptionList as it only traces the message in the forward direction and not backward...
kirankinnu wrote: |
Whats happening is, In the subflow, before the exception reaches to the Compute node, I could see the exception in Trace1(${ExceptionList}), but once it crosses the Compute, the exception is missing. I am not able to see the exception in Trace 2(${ExceptionList}). |
Where was the exception thrown ? I would think it was at Output as you got a MQRC 2110 also...
You will not get a trace, unless you connect the failure of the Input node and then use a trace node there.
Regards. |
|
Back to top |
|
 |
kirankinnu |
Posted: Thu Dec 14, 2006 5:49 am Post subject: Let me explain in Clear |
|
|
 Centurion
Joined: 12 Jun 2004 Posts: 128 Location: Chicago, IL
|
Let me explain what I am doing Clearly. There are 2 flows. The Main Flow will look like this
--> Subflow1
|
Mqinput --> Trycatch --> Compute --> Mqoutput
|
--> Subflow1
If any error occurs in Mqinput only will go to Subflow1. The error is occuring in Mqinput, I know the reason, I am not setting the MQSTR while putting the message. The error i am getting is 2110. If I set the MQSTR i am not getting the error.
SO when a 2110 error occurs, it will go to Subflow1. The Subflow1 will look like this
Input --> Trace1 --> Compute --> Trace2 --> Output
I think you can add my previous explanation to this. In trace1 I could see the trace of Exception List, but in Trace2 the Exception List is missing. I will try adding a failure node to Copute in Subflow1 and check If I catch anything. I would appreciate If you could add any more inputs to this.
Thanks
Kiran |
|
Back to top |
|
 |
kirankinnu |
Posted: Thu Dec 14, 2006 8:29 am Post subject: |
|
|
 Centurion
Joined: 12 Jun 2004 Posts: 128 Location: Chicago, IL
|
I did made these changes and observed this. I just took a simple flow like this
(Failure Terminal) --> Trace1 --> Compute2 --> Trace2 --> Mqoutput
|
Mqinput --> Trycatch --> Compute --> Mqoutput
Once I place a message in mqinput without MQSTR, it goes to Failure terminal and i could see the 2110 error in Trace 1, In the compute node2, I am just doing a copyentire message() and passing it on to Trace2. In Trace 2, the exception list is missing. If this is of any help, the broker is on Aix and I am trying to put the message using RFHUTIL. I could see that no error is getting raised in Compute2. I would appreciate any inputs. I guess this has something to do with Encoding and CCSID. |
|
Back to top |
|
 |
fat_tony |
Posted: Thu Dec 14, 2006 11:03 am Post subject: |
|
|
Novice
Joined: 02 Dec 2006 Posts: 15
|
This may not be a solution to your problem, but what happens if you specify 'Exception and LocalEnvironment' rather than 'All' in the Compute node properties? |
|
Back to top |
|
 |
TonyD |
Posted: Thu Dec 14, 2006 11:36 am Post subject: |
|
|
Knight
Joined: 15 May 2001 Posts: 540 Location: New Zealand
|
Strange that you have this problem as I have just had exactly the same, with the ExceptionList disappearing in a downstream Compute node. I suspect that the second Compute node tries to pass its own ExceptionList if you use 'Exception and Message', which is empty. I got around the problem by specifying:
Code: |
SET OutputExceptionList = InputExceptionList;
|
:in the second Compute node, and this works fine. |
|
Back to top |
|
 |
kirankinnu |
Posted: Thu Dec 14, 2006 2:11 pm Post subject: |
|
|
 Centurion
Joined: 12 Jun 2004 Posts: 128 Location: Chicago, IL
|
Thanks Guys,
It is working now with setting the above statement. But still wondering why we have to do it. |
|
Back to top |
|
 |
kirani |
Posted: Fri Dec 15, 2006 10:08 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
I don't think you will need above statement if you set your compute mode to "Message" only. By setting it to "Message And Exception" you are telling the node that you will be preapring/updating Message Tree and Exception Tree. In that case you will have to copy the Exception Tree from the input. _________________ 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 |
|
 |
TonyD |
Posted: Sun Dec 17, 2006 1:32 pm Post subject: |
|
|
Knight
Joined: 15 May 2001 Posts: 540 Location: New Zealand
|
Out of interest I checked this ... Kirani is quite right. If you want to pass an ExceptionList through a downstream (from where the exception was generated) Compute node, don't specify 'Message and Exception'! |
|
Back to top |
|
 |
wschutz |
Posted: Sun Dec 17, 2006 3:37 pm Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
|
Back to top |
|
 |
|