ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Clues to resolve Exception?

Post new topic  Reply to topic
 Clues to resolve Exception? « View previous topic :: View next topic » 
Author Message
Wim
PostPosted: Tue Mar 18, 2008 8:27 am    Post subject: Clues to resolve Exception? Reply with quote

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
View user's profile Send private message
kimbert
PostPosted: Tue Mar 18, 2008 9:29 am    Post subject: Reply with quote

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
View user's profile Send private message
Wim
PostPosted: Tue Mar 18, 2008 11:58 am    Post subject: Reply with quote

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
View user's profile Send private message
jefflowrey
PostPosted: Tue Mar 18, 2008 12:58 pm    Post subject: Reply with quote

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
View user's profile Send private message
Wim
PostPosted: Tue Mar 18, 2008 1:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
kimbert
PostPosted: Tue Mar 18, 2008 2:22 pm    Post subject: Reply with quote

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
View user's profile Send private message
Wim
PostPosted: Wed Mar 19, 2008 6:29 am    Post subject: Reply with quote

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
View user's profile Send private message
kimbert
PostPosted: Wed Mar 19, 2008 12:02 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Clues to resolve Exception?
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.