|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Exception with REFERENCE pointing InputRoot.MRM.... |
« View previous topic :: View next topic » |
Author |
Message
|
mqxplorer |
Posted: Sun Sep 06, 2009 9:08 pm Post subject: Exception with REFERENCE pointing InputRoot.MRM.... |
|
|
 Master
Joined: 22 Jun 2009 Posts: 206
|
Hi All,
We are uisng WMB V6.1.
I am facing some problem with REFERENCE pointing InputRoot.MRM or child elements of MRM.
DECLARE RefInfo REFERENCE TO InputRoot.MRM.MR46TR_PERSON_INFO[CTR].MR46TR_PERSON_INFORMATION;
Below MR46TR_PERSON_INFORMATION we have some child elements, when I am debugging the flow, when the control comes onto the DECLARE statement, Iam getting an exception. The exception list shows me a different error (An error with the IF statement under the DECLARE statement).
The IF statement under DECLARE statement is as below:
IF TRIM( RefInfo.MR46TR_PERSON_RESIDENCE_INFO.MR46TR_HOUSE_NUMBER ) <> ' ' THEN
However, the error (exception) I am getting is :
Error detected whilst executing the SQL statement ''IF TRIMBOTH(BOTH FROM RefInfo.MR46TR_PERSON_RESIDENCE_INFO.MR46TR_HOUSE_NUMBER) <> ' ' THEN... END IF;''
I don't really understand why I am getting this error.
When I replace the "RefInfo" part with "InputRoot.MRM.MR46TR_PERSON_INFO[CTR].MR46TR_PERSON_INFORMATION" in the ESQL file, I am not getting any exceptions, I am able to go ahead wth the debugging of my flow witout being stopped anywhere. I am not sure where I am going wrong. As REFERENCE enhances the flow performance, I am not intersted to replace the refernce varaible with the whole tree structure. Could someone explain me where I am going wrong? I have tried different possible ways, however, I could not get rid of this error.
Any help would be appreciated.
Thanks in advance. |
|
Back to top |
|
 |
WMBDEV1 |
Posted: Mon Sep 07, 2009 1:03 am Post subject: |
|
|
Sentinel
Joined: 05 Mar 2009 Posts: 888 Location: UK
|
It seems you're missing the poignant parts of the error message.
Run a user trace in debug mode and include the error messages that are also generated with this failure. |
|
Back to top |
|
 |
mqxplorer |
Posted: Mon Sep 07, 2009 9:36 am Post subject: |
|
|
 Master
Joined: 22 Jun 2009 Posts: 206
|
Hi WMBDEV1,
Thanks for your reply.
Here is my code where I am getting the exception:
Code: |
SET COUNTER= 1;
WHILE COUNTER <= InputRoot.MRM.MT568KK_MR46TR_CNT DO
DECLARE RefInfo REFERENCE TO InputRoot.MRM.MR46TR_PERSON_INFO[COUNTER].MR46TR_PERSON_INFORMATION;
IF TRIM (RefInfo.MR46TR_PERSON_RESIDENCE_INFO.MR46TR_HOUSE_NUMBER) <> ' ' THEN
Do some operations.. END IF; |
After running user trace, I got the error message for the above code and I am posting that here (Posting the whole trace will be too lengthy..)
Trace:
Code: |
Executing statement ''SET COUNTER = 1;'' at ('.CBL_TO_XML_TRANSFORM.ProducePkg', '803.7').
2009-09-07 12:17:23.183631 3716 UserTrace BIP2537I: Node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM': Executing statement ''WHILE COUNTER <= InputRoot.MRM.MT568KK_MR46TR_CNT DO ... END WHILE;'' at ('.CBL_TO_XML_TRANSFORM.ProducePkg', '805.7'). |
Code: |
2009-09-07 12:17:24.822044 3716 UserTrace BIP2539I: Node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM': Evaluating expression ''COUNTER'' at ('.CBL_TO_XML_TRANSFORM.ProducePkg', '805.13'). This resolved to ''COUNTER''. The result was ''1''. |
Code: |
2009-09-07 12:17:24.822168 3716 UserTrace BIP2539I: Node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM': Evaluating expression ''InputRoot.MRM.MT568KK_MR46TR_CNT'' at ('.CBL_TO_XML_TRANSFORM.ProducePkg', '805.20'). This resolved to ''InputRoot.MRM.MT568KK_MR46TR_CNT''. The result was ''1''. |
Code: |
2009-09-07 12:17:24.822189 3716 UserTrace BIP2539I: Node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM': Evaluating expression ''COUNTER <= InputRoot.MRM.MT568KK_MR46TR_CNT'' at ('.CBL_TO_XML_TRANSFORM.ProducePkg', '805.13'). This resolved to ''1 <= 1''. The result was ''TRUE''. |
Code: |
2009-09-07 12:17:24.822237 3716 UserTrace BIP2537I: Node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM': Executing statement ''DECLARE RefInfo REFERENCE TO InputRoot.MRM.MR46TR_PERSON_INFO[COUNTER].MR46TR_PERSON_INFORMATION;'' at ('.CBL_TO_XML_TRANSFORM.ProducePkg', '808.9'). |
Code: |
2009-09-07 12:17:26.415109 3716 UserTrace BIP2539I: Node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM': Evaluating expression ''COUNTER'' at ('.CBL_TO_XML_TRANSFORM.ProducePkg', '808.74'). This resolved to ''COUNTER''. The result was ''1''. |
Code: |
2009-09-07 12:17:26.415229 3716 UserTrace BIP2537I: Node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM': Executing statement ''IF TRIMBOTH(BOTH FROM RefInfo.MR46TR_PERSON_RESIDENCE_INFO.MR46TR_HOUSE_NUMBER) <> ' ' THEN... END IF;'' at ('.CBL_TO_XML_TRANSFORM.ProducePkg', '812.13'). |
Code: |
2009-09-07 12:17:30.169473 3716 Error BIP2628E: Exception condition detected on input node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.MYINPUTQUEUE'.
The input node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.MYINPUTQUEUE' detected an error whilst processing a message. The message flow has been rolled-back and, if the message was being processed in a unit of work, it will remain on the input queue to be processed again. Following messages will indicate the cause of this exception.
Check the error messages which follow to determine why the exception was generated, and take action as described by those messages.
2009-09-07 12:17:30.169506 3716 RecoverableException BIP2230E: Error detected whilst processing a message in node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM'.
The message broker detected an error whilst processing a message in node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.CBL_TO_XML_TRANSFORM'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error. |
Code: |
2009-09-07 12:17:30.169515 3716 RecoverableException BIP2488E: ('.CBL_TO_XML_TRANSFORM.Main', '135.2') Error detected whilst executing the SQL statement ''ProducePkg();''.
The message broker detected an error whilst executing the given statement. An exception has been thrown to cut short the SQL program.
See the following messages for details of the error. |
Code: |
2009-09-07 12:17:30.169525 3716 RecoverableException BIP2934E: Error detected whilst executing the function or procedure ''ProducePkg''.
The message broker detected an error whilst executing the function or procedure ''ProducePkg''. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error. |
Code: |
2009-09-07 12:17:30.169534 3716 RecoverableException BIP2488E: ('.CBL_TO_XML_TRANSFORM.ProducePkg', '812.13') Error detected whilst executing the SQL statement ''IF TRIMBOTH(BOTH FROM RefInfo.MR46TR_PERSON_RESIDENCE_INFO.MR46TR_HOUSE_NUMBER) <> ' ' THEN... END IF;''.
The message broker detected an error whilst executing the given statement. An exception has been thrown to cut short the SQL program.
See the following messages for details of the error. |
Code: |
2009-09-07 12:17:30.169731 3716 RecoverableException BIP2334W: Unable to resolve union for the '1' child of element ''(0x01000013:Name+):MR46TR_PERSON_RESIDENCE_INFO''. Additional diagnostic information is '9be0520'
An incoming message contained a union which was neither resolved by the message's tagging nor by the accesses made by SQL statements. Either the message was of an unexpected type or there is an error in the SQL. See earlier messages for details of the node in which this error occurred and the action taken as a result.
Check that the incoming messages are of the correct type and that the logic of the SQL of the node in which the error occurred |
Code: |
2009-09-07 12:17:31.298082 3716 UserTrace BIP2631I: Backed out message being propagated to failure terminal; node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.MYINPUTQUEUE'.
Node 'WESPAK_CBL_TO_XML_TRANSFORM_REPLY_MSGFLOW.MYINPUTQUEUE' has received a message which has previously been backed out because of a processing error in the message flow. The MQMD 'backoutCount' of the message exceeds (or equals) the 'backoutThreshold' defined for the WebSphere MQ input queue. The message broker is propagating the message to the failure terminal of the node.
Examine the other messages and the message flow to determine why the message is being backed out. Correct this situation if possible. Perform any local error recovery processing required. |
END Trace:
I am really wondering where this TRIMBOTH has come into picture when I have just TRIM(..) ...
As soon as my cursor comes onto the DECALRE statement and when I try to 'step into' the code, it just raises an exception.
Would it be possible for you to explain me the reason why I am getting the exception I posted, based on the info I have provided?
Thanks in advance.
Thanks
Last edited by mqxplorer on Mon Sep 07, 2009 11:11 am; edited 1 time in total |
|
Back to top |
|
 |
kimbert |
Posted: Mon Sep 07, 2009 10:56 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Polite request: Please use [code] tags when you post source code or trace output. It makes it *so* much more readable for the rest of us.
You should be able to edit that post and add the tags now... |
|
Back to top |
|
 |
mqxplorer |
Posted: Mon Sep 07, 2009 11:14 am Post subject: |
|
|
 Master
Joined: 22 Jun 2009 Posts: 206
|
Hi Kimbert,
Thanks for your suggestion. I followed your suggestion and edited my post. Is this OK?
Thanks |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Sep 07, 2009 1:33 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
mqxplorer wrote: |
SET COUNTER= 1;
WHILE COUNTER <= InputRoot.MRM.MT568KK_MR46TR_CNT DO
DECLARE RefInfo REFERENCE TO InputRoot.MRM.MR46TR_PERSON_INFO[COUNTER].MR46TR_PERSON_INFORMATION;
IF TRIM (RefInfo.MR46TR_PERSON_RESIDENCE_INFO.MR46TR_HOUSE_NUMBER) <> ' ' THEN
Do some operations.. END IF; |
Not a good use of the reference... Let me show you a better one...
Code: |
SET COUNTER= 1;
Declare RefInfo Reference to InputRoot.MRM.MR46TR_PERSON_INFO[COUNTER].MR46TR_PERSON_INFORMATION;
WHILE (COUNTER <= InputRoot.MRM.MT568KK_MR46TR_CNT and Lastmove(RefInfo)) DO
IF TRIM (RefInfo.MR46TR_PERSON_RESIDENCE_INFO.MR46TR_HOUSE_NUMBER) <> ' ' THEN
Do some operations.. END IF;
MOVE RefInfo next sibling keep type name;
SET counter = counter + 1;
ENDWHILE |
Note that it also checks the value of lastmove(RefInfo) for each loop including the first one and last one.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
kimbert |
Posted: Mon Sep 07, 2009 1:56 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Much nicer - thanks for that. |
|
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
|
|
|
|