|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Clues to resolve Exception? |
« View previous topic :: View next topic » |
Author |
Message
|
Wim |
Posted: Tue Mar 18, 2008 8:27 am Post subject: Clues to resolve Exception? |
|
|
Newbie
Joined: 25 Oct 2006 Posts: 9 Location: BE, EU
|
Hi,
I'm getting this exception: "ImbRecoverableException caught from worker->parseNext." when leaving the input node.
I know that this has something to do with the input node not being able to correctly parse my message, propably because the message definition that I'm creating does not correspond exactly with my message.
I'm trying to find out exacly what the parser is doing and why it cannot continue i.e throwing the exception.
I've put a breakpoint just after the input node and ran the message through debug. The result is Properties-MQMD-MQRFH2-MRM, some (correctly parsed) data from my message and the exception. The variable 'ExceptionList' stays empty.
I ran a debug user trace on the flow, but no sign of an exception there.
I've checked the system log, but no clues there either.
I searched these forums and I read multiple times that the user trace should provide more clues, but it doesn't.
Are there other places I could check (traces, logs, ...) to find out what's happening? If not, I'll post more details.
BTW, I use toolkit V.6.0.2.
Thanks
-=Wim=- |
|
Back to top |
|
 |
kimbert |
Posted: Tue Mar 18, 2008 9:29 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
I'm trying to find out exacly what the parser is doing and why it cannot continue i.e throwing the exception. |
User trace. |
|
Back to top |
|
 |
Wim |
Posted: Tue Mar 18, 2008 11:58 am Post subject: |
|
|
Newbie
Joined: 25 Oct 2006 Posts: 9 Location: BE, EU
|
Hi Kimbert,
Here is the user trace in debug mode:
Code: |
Timestamps are formatted in local time, 60 minutes past GMT.
Trace written by version ; formatter version 6005
2008-03-18 20:48:53.912596 50 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'ORF_OUT_Flow.WIM_IN'.
2008-03-18 20:48:53.914440 50 UserTrace BIP6060I: Parser type ''Properties'' created on behalf of node 'ORF_OUT_Flow.WIM_IN' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2008-03-18 20:48:53.915672 50 UserTrace BIP6061I: Parser type ''MQMD'' created on behalf of node 'ORF_OUT_Flow.WIM_IN' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value ''MQHMD'' from previous parser.
2008-03-18 20:48:53.915912 50 UserTrace BIP6061I: Parser type ''MQRFH2'' created on behalf of node 'ORF_OUT_Flow.WIM_IN' to handle portion of incoming message of length '1324' bytes beginning at offset '364'. Parser type selected based on value ''MQHRF2'' from previous parser.
2008-03-18 20:48:53.917876 50 UserTrace BIP6061I: Parser type ''MRM'' created on behalf of node 'ORF_OUT_Flow.WIM_IN' to handle portion of incoming message of length '4100' bytes beginning at offset '1688'. Parser type selected based on value ''MRM'' from previous parser.
2008-03-18 20:49:01.344632 50 UserTrace BIP2537I: Node 'ORF_OUT_Flow.FilterRecords': Executing statement ''BEGIN ... END;'' at ('.ORF_OUT_Flow_Compute.Main', '2.2').
2008-03-18 20:49:01.344995 50 UserTrace BIP2537I: Node 'ORF_OUT_Flow.FilterRecords': Executing statement ''CopyEntireMessage();'' at ('.ORF_OUT_Flow_Compute.Main', '4.3').
2008-03-18 20:49:01.345136 50 UserTrace BIP2538I: Node 'ORF_OUT_Flow.FilterRecords': Evaluating expression ''CopyEntireMessage()'' at ('.ORF_OUT_Flow_Compute.Main', '4.8').
2008-03-18 20:49:01.345304 50 UserTrace BIP2537I: Node 'ORF_OUT_Flow.FilterRecords': Executing statement ''BEGIN ... END;'' at ('.ORF_OUT_Flow_Compute.CopyEntireMessage', '1.39').
2008-03-18 20:49:01.345370 50 UserTrace BIP2537I: Node 'ORF_OUT_Flow.FilterRecords': Executing statement ''SET OutputRoot = InputRoot;'' at ('.ORF_OUT_Flow_Compute.CopyEntireMessage', '2.3').
2008-03-18 20:49:01.345582 50 UserTrace BIP2539I: Node 'ORF_OUT_Flow.FilterRecords': Evaluating expression ''InputRoot'' at ('.ORF_OUT_Flow_Compute.CopyEntireMessage', '2.20'). This resolved to ''InputRoot''. The result was ''ROW... Root Element Type=16777216 NameSpace='' Name='Root' Value=NULL''.
2008-03-18 20:49:01.345648 50 UserTrace BIP2568I: Node 'ORF_OUT_Flow.FilterRecords': Copying sub-tree from ''InputRoot'' to ''OutputRoot''.
2008-03-18 20:49:01.346447 50 UserTrace BIP2537I: Node 'ORF_OUT_Flow.FilterRecords': Executing statement ''RETURN TRUE;'' at ('.ORF_OUT_Flow_Compute.Main', '6.2').
2008-03-18 20:49:01.346819 50 UserTrace BIP4007I: Message propagated to 'out' terminal of node 'ORF_OUT_Flow.FilterRecords'.
2008-03-18 20:49:01.349510 50 UserTrace BIP2638I: The MQ output node 'ORF_OUT_Flow.WIM_OUT' attempted to write a message to queue ''WIM_OUT'' connected to queue manager ''''. The MQCC was '0' and the MQRC was '0'.
2008-03-18 20:49:01.349592 50 UserTrace BIP2622I: Message successfully output by output node 'ORF_OUT_Flow.WIM_OUT' to queue ''WIM_OUT'' on queue manager ''''.
Threads encountered in this trace:
50
|
regards,
-=Wim=- |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Mar 18, 2008 12:58 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You are using PROPAGATE and forgetting to RETURN FALSE; after your PROPAGATE returns to the ESQL node, thus passing an entirely empty tree to the MQOutput node. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Wim |
Posted: Tue Mar 18, 2008 1:33 pm Post subject: |
|
|
Newbie
Joined: 25 Oct 2006 Posts: 9 Location: BE, EU
|
Hi Jeff,
Quote: |
You are using PROPAGATE and forgetting to RETURN FALSE; after your PROPAGATE returns to the ESQL node, thus passing an entirely empty tree to the MQOutput node. |
The message reaches the MQOutput node unmodified (as I would expect from a flow that consists of an MQInput node, an MQOutput node, and a standard compute node in the middle that only executes "CALL CopyEntireMessage()").
I'm only trying to create and test a MessageSet to parse my message.
The exception occurs BEFORE it even reaches the compute node, i.e. on a breakpoint just after MQInput. From what I can see, this means that the MQInput can only partially parse my message because the MessageSet is not 100% correct. I would like to find out where it goes wrong but in the user trace (see previous reply) I cannot find any reference to an exception. So my question was whether there were other places I could look for clues.
regards,
-=Wim=- |
|
Back to top |
|
 |
kimbert |
Posted: Tue Mar 18, 2008 2:22 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Your message flow is not doing any parsing at all when the debugger is disconnected. That's because 'Parse Timing' is set to its default value 'On Demand' in the input node, You could change it to 'Immediate'. Even better, you could insert a Trace node after the input node with pattern '$Root'. That will force a parse AND alow you to inspect the resulting message tree ( unfiltered by the debugger ) in the user trace, |
|
Back to top |
|
 |
Wim |
Posted: Wed Mar 19, 2008 6:29 am Post subject: |
|
|
Newbie
Joined: 25 Oct 2006 Posts: 9 Location: BE, EU
|
Thanks Kimbert!
The trace node did the trick.
(I did consider adding a trace node but I thought it would be of no use because it would "merely output what I saw in the debugger". I didn't know that a trace node forces parsing... until now )
Thanks again.
-=Wim=- |
|
Back to top |
|
 |
kimbert |
Posted: Wed Mar 19, 2008 12:02 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
I'll give you another good tip:
- The debugger is quick and convenient. Use it until things get difficult.
- From then on, use User Trace and Trace nodes. |
|
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
|
|
|
|