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 » Parser Exception when using RCD node in MB5.0

Post new topic  Reply to topic Goto page 1, 2  Next
 Parser Exception when using RCD node in MB5.0 « View previous topic :: View next topic » 
Author Message
srikanth av
PostPosted: Wed Jul 19, 2006 3:11 am    Post subject: Parser Exception when using RCD node in MB5.0 Reply with quote

Apprentice

Joined: 30 Jun 2005
Posts: 37

Hi,
My environment is MB v5.0,Window 2000,MQ 5.3

In a flow i am using ResetContentDescriptor node which sets the MRM domain properties for output message for which the current domain is XMLNS.In RCD node i am resetting domain,message set,message type and also message format.

Here i am getting parser exception like this.

ImbRecoverable Exception caught from Worker ->parseNext

Can anyone suggest where i am going wrong and how to rectify this problem.

Thanks in advance.
_________________
a v srikanth
Back to top
View user's profile Send private message Send e-mail
shalabh1976
PostPosted: Wed Jul 19, 2006 3:40 am    Post subject: Reply with quote

Partisan

Joined: 18 Jul 2002
Posts: 381
Location: Gurgaon, India

Are you sure that the input message is in a format that can be parsed by the MRM parser ?
Have you checked the InputExceptionList ?
_________________
Shalabh
IBM Cert. WMB V6.0
IBM Cert. MQ V5.3 App. Prog.
IBM Cert. DB2 9 DB Associate
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
srikanth av
PostPosted: Wed Jul 19, 2006 3:52 am    Post subject: Reply with quote

Apprentice

Joined: 30 Jun 2005
Posts: 37

I am sure the input message can be parsed by MRM parser.
Actually i am able to see the "ImbRecoverable Exception caught from Worker ->parseNext " exception in the body of the message under MRM domain when i debug and at this moment i don't see any Exceptionlist populating and control is going to subflow which is throwing exception finally.

After RCD node i am losing some amount of data in the body of the message due the above exception.
_________________
a v srikanth
Back to top
View user's profile Send private message Send e-mail
jbanoop
PostPosted: Wed Jul 19, 2006 4:05 am    Post subject: Reply with quote

Chevalier

Joined: 17 Sep 2005
Posts: 401
Location: SC

Cofirm that the same can be parsed by MRM for the messageset that you created by testing it on the input node itself.
Set the properties of the input node to parse it at the input node itseld.

If it fails (which i suspect it will) then the issue is with input and/or the message set you have defined.

RCD just changes the values of the 3 fields in MQMD. When the message returns to the flow (from the RCD) the parse happens with the changed values and that is where your code is failing.
Hope it helps,
Anoop
Back to top
View user's profile Send private message Yahoo Messenger
kimbert
PostPosted: Wed Jul 19, 2006 4:43 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

jbanoop is correct - you are definitely getting a parsing error. MRM parsing exceptions always come in groups of three, but you have only quoted the final one. I suggest that you take a user trace of the parse - then you will see the other two parsing exceptions, and you will get a better idea of what gone wrong.
Back to top
View user's profile Send private message
srikanth av
PostPosted: Wed Jul 19, 2006 6:47 am    Post subject: Reply with quote

Apprentice

Joined: 30 Jun 2005
Posts: 37

Hi,
As you said i have developed a flow with MRM as domain in MQInput node,Compute node,MQOutput node and tested the flow.

I am getting the same parser exception as above in the message body under MRM domain but i don't see exceptionList populating and also i am able to see the entire message in the output queue.

So why i am getting the parser exception when i debug.Can anyone throw some light on this!!!
_________________
a v srikanth
Back to top
View user's profile Send private message Send e-mail
jbanoop
PostPosted: Wed Jul 19, 2006 9:37 am    Post subject: Reply with quote

Chevalier

Joined: 17 Sep 2005
Posts: 401
Location: SC

srikanth av: What you are observing is correct.

And i suspect that becuase of the parse error, the output node is bypassing any reparsing it would do and dumping the message out.

Kimbert: How is it that the message is allowed to pass through the input node (with validation turned on and failure behaviour set to exeption and parse timing immediate) with the parsing error ?
Yes It would throw an exception when the message body is tried to be accessed but shouldnt it just go to the failure terminal ?
Is it to enable partially parsed messages to be processed ? :-/

Regards,
Anoop
Back to top
View user's profile Send private message Yahoo Messenger
shrek
PostPosted: Thu Jul 20, 2006 3:44 am    Post subject: Reply with quote

Acolyte

Joined: 19 Feb 2005
Posts: 61
Location: Gudivada,India

Can you please post the user trace? Thanks
Back to top
View user's profile Send private message
kimbert
PostPosted: Thu Jul 20, 2006 6:40 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
Kimbert: How is it that the message is allowed to pass through the input node (with validation turned on and failure behaviour set to exeption and parse timing immediate) with the parsing error ?
I don't know. It sounds very strange to me. I'd like to know a little more about the message flow.
srikanth av: Can you cut down the message flow to the bare bones - MQInput node with Parse Timing set to 'Immediate'. Out terminal goes to an output queue, and error terminal to an error queue. Take a user trace of that scenario, and post here.
Back to top
View user's profile Send private message
srikanth av
PostPosted: Thu Jul 20, 2006 9:30 am    Post subject: Error identified in the input message Reply with quote

Apprentice

Joined: 30 Jun 2005
Posts: 37

Hi,
I have identified the error in my input message.In my input message there is a timestamp value which the broker is unable to parse.Actaully in the xml schema the datatype of the value is declared as xs:dateTime,which the broker is unable to parse it to TimeStamp value.

I have modified my MQInput node settings like this Validate "Content and Value ,Failure Action is set to "Local Error Log" and timing "Immediate".Then the it is throwing exception and the trace is like this:
-----------------------------------------------------------------------------------
XML data conversion error.

Error converting characters at position 2761 to logical type 'DateTime' in message 'BizData_Payload'.

Unable to parse value 2006-06-15T09:30:47.0Z using format string yyyy-MM-dd'T'HH:mm:ssZZZ. Error code: 9.

Check and possibly correct the string being passed to the datetime parser.

-----------------------------------------------------------------------------------

Please tell me what is the wrong with the above timestamp String value i am passing to the flow.

I have tried in another like,i have modified my message definition file such that i put xs:String instead of xs:dataTime for timeStamp value.Then it is working.But is there any another solution.

Your suggestions are very appreciated.

Thanks
_________________
a v srikanth
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Thu Jul 20, 2006 11:47 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Your format string is yyyy-MM-dd'T'HH:mm:ssZZZ
Your datetime value is 2006-06-15T09:30:47.0Z
I would try it with a format string something like yyyy-MM-dd'T'HH:mm:ss.SZZZU
I think you have omitted the fractional seconds and the 'Zulu' timezone indicator from your pattern.

See http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ak05616_.htm
Back to top
View user's profile Send private message
srikanth av
PostPosted: Fri Jul 21, 2006 8:06 am    Post subject: Reply with quote

Apprentice

Joined: 30 Jun 2005
Posts: 37

Hi,
Thank you very much Kimbert for your information.

When i tried with "2006-06-15T09:30:47 -05:00" as timestamp value then it is working.That means the above one matches with "yyyy-MM-dd'T'HH:mm:ssZZZ" format string the dateTime parser uses.

I need some more infomation like,is the dateTime parser always uses the above format string or is there any way so that we can specify the format string for the dateTime parser.Because in my task i am getting timestamp values like "2006-06-15T09:30:47.0Z " this one only and the broker need to parse those values.

Can anyone give some more information on this.

Thanks in advance.
_________________
a v srikanth
Back to top
View user's profile Send private message Send e-mail
kspranava
PostPosted: Fri Jul 21, 2006 8:38 am    Post subject: Reply with quote

Centurion

Joined: 27 Apr 2003
Posts: 124

Hi srikanth av,

You can set your own time formats by enabling the option 'Use default time format' and supply a format. This option is available in the physical layer format of the message set.

Thanks,
kspranava.
Back to top
View user's profile Send private message
jbanoop
PostPosted: Sat Jul 22, 2006 12:18 am    Post subject: Reply with quote

Chevalier

Joined: 17 Sep 2005
Posts: 401
Location: SC

Kimbert:
Flow is just an input node (with parser set to XML) connected to output node.
Broker version is
BIP8996I: Version: 500
BIP8997I: Product: WebSphere MQ Integrator
BIP8998I: CMVC Level: S500-CSD05
BIP8999I: Build Type: Production

The user trace follows. Seems both show up similarly.

With proper XML
-----------------

2006-07-22 11:07:50.599880 3532 UserTrace BIP2638I: The MQ output node 'ConfigurationMessageFlow.outputNode' attempted to write a message to queue 'SYSTEM.BROKER.UTILITY.44C1C01E02260020' connected to queue manager 'WBRK5_QM'. The MQCC was '0' and the MQRC was '0'.
2006-07-22 11:07:50.599960 3532 UserTrace BIP2622I: Message successfully output by output node 'ConfigurationMessageFlow.outputNode' to queue 'SYSTEM.BROKER.UTILITY.44C1C01E02260020' on queue manager 'WBRK5_QM'.
2006-07-22 11:08:18.207029 2616 UserTrace BIP6060I: Parser type 'Properties' created on behalf of node 'TestFailureBehaviour.TEST.IN' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2006-07-22 11:08:18.207143 2616 UserTrace BIP6061I: Parser type 'MQMD' created on behalf of node 'TestFailureBehaviour.TEST.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.
2006-07-22 11:08:18.207258 2616 UserTrace BIP6061I: Parser type 'XML' created on behalf of node 'TestFailureBehaviour.TEST.IN' to handle portion of incoming message of length '3478' bytes beginning at offset '364'. Parser type selected based on value 'XML' from previous parser.
2006-07-22 11:08:18.207323 2616 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'TestFailureBehaviour.TEST.IN'.
2006-07-22 11:08:35.857528 3532 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'ConfigurationMessageFlow.InputNode'.
2006-07-22 11:08:35.857666 3532 UserTrace BIP6060I: Parser type 'Properties' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2006-07-22 11:08:35.857746 3532 UserTrace BIP6061I: Parser type 'MQMD' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value 'MQHMD' from previous parser.
2006-07-22 11:08:35.857913 3532 UserTrace BIP6061I: Parser type 'XML' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length '228' bytes beginning at offset '364'. Parser type selected based on value 'XML' from previous parser.



With junk (Not XML) (showing parsing errors in the debugger)
-----------------------------------------------------------------------

3532 UserTrace BIP2638I: The MQ output node 'ConfigurationMessageFlow.outputNode' attempted to write a message to queue 'SYSTEM.BROKER.UTILITY.44C1C01E02280020' connected to queue manager 'WBRK5_QM'. The MQCC was '0' and the MQRC was '0'.
2006-07-22 11:10:18.241046 3532 UserTrace BIP2622I: Message successfully output by output node 'ConfigurationMessageFlow.outputNode' to queue 'SYSTEM.BROKER.UTILITY.44C1C01E02280020' on queue manager 'WBRK5_QM'.
2006-07-22 11:10:42.169963 2616 UserTrace BIP6060I: Parser type 'Properties' created on behalf of node 'TestFailureBehaviour.TEST.IN' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2006-07-22 11:10:42.170085 2616 UserTrace BIP6061I: Parser type 'MQMD' created on behalf of node 'TestFailureBehaviour.TEST.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.
2006-07-22 11:10:42.170188 2616 UserTrace BIP6061I: Parser type 'XML' created on behalf of node 'TestFailureBehaviour.TEST.IN' to handle portion of incoming message of length '281' bytes beginning at offset '364'. Parser type selected based on value 'XML' from previous parser.
2006-07-22 11:10:42.170253 2616 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'TestFailureBehaviour.TEST.IN'.
2006-07-22 11:10:46.102745 2616 UserTrace BIP2638I: The MQ output node 'TestFailureBehaviour.TEST.OUT' attempted to write a message to queue 'TEST.OUT' connected to queue manager ''. The MQCC was '0' and the MQRC was '0'.
2006-07-22 11:10:46.102848 2616 UserTrace BIP2622I: Message successfully output by output node 'TestFailureBehaviour.TEST.OUT' to queue 'TEST.OUT' on queue manager ''.
2006-07-22 11:10:51.495876 3532 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'ConfigurationMessageFlow.InputNode'.
2006-07-22 11:10:51.495998 3532 UserTrace BIP6060I: Parser type 'Properties' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2006-07-22 11:10:51.496078 3532 UserTrace BIP6061I: Parser type 'MQMD' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value 'MQHMD' from previous parser.
2006-07-22 11:10:51.496593 3532 UserTrace BIP6061I: Parser type 'XML' created on behalf of node 'ConfigurationMessageFlow.InputNode' to handle portion of incoming message of length '228' bytes beginning at offset '364'. Parser type selected based on value 'XML' from previous parser.



Anoop
Back to top
View user's profile Send private message Yahoo Messenger
kimbert
PostPosted: Sat Jul 22, 2006 12:51 pm    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

OK - that user trace doesn't tell me very much, for the following reasons:
1. No parsing occurred, because message broker never parses unless
a) The message flow accesses a field in the message. ( and even then it stops once the field reference has been resolved )
b) Validation is enabled, and Validation Timing is 'immediate' (v5)
c) Parse Timing is set to 'Immediate' ( v6 only )

2. Even if your message flow did trigger some parsing, the results would not be very helpful because you have changed the domain in the MQInput node from 'MRM' to 'XML'. Was there a reason for this change?

3. The really strange part is that you seem to be getting a parser exception, and yet the message is not going to the failure terminal. Please insert Trace nodes between the out/failure terminals and their MQOutput nodes. Set pattern to '${Root} and Destination to User Trace. ( Sorry for not mentioning about the trace node in my previous post )
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Parser Exception when using RCD node in MB5.0
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.