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 IndexWebSphere Message Broker (ACE) SupportParserException BIP5288E

Post new topicReply to topic
ParserException BIP5288E View previous topic :: View next topic
Author Message
peteredm
PostPosted: Fri Jul 24, 2009 12:12 am Post subject: ParserException BIP5288E Reply with quote

Newbie

Joined: 23 Jul 2009
Posts: 4

Receiving messages via an MQ transmission queue from a windows box onto a linux box. I have a message flow with an MQInput node where the message domain is set to MRM, message set set to the relervant one (HL7) and parsing set to on demand, this is then followed by a trace node to file and with pattern ${Root} which will require the message to be parsed and dump it out so I can check.

I get the following output in a debug level user trace which shows it’s an MRM Parsing error and the trace node output ends “MRM = (“.

Quote:
UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Input_Queue'.
2009-07-23 12:46:06.448582~06179248 UserTrace BIP6060I: Parser type ''Properties'' created on behalf of node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Input_Queue' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2009-07-23 12:46:06.448631~06179248 UserTrace BIP6061I: Parser type ''MQMD'' created on behalf of node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Input_Queue' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value ''MQHMD'' from previous parser.
2009-07-23 12:46:06.448721~06179248 UserTrace BIP6061I: Parser type ''MRM'' created on behalf of node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Input_Queue' to handle portion of incoming message of length '621' bytes beginning at offset '364'. Parser type selected based on value ''MRM'' from previous parser.
2009-07-23 12:46:06.448787~06179248 UserTrace BIP2539I: Node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Trace_a': Evaluating expression ''Root'' at ('', '2.3'). This resolved to ''Root''. The result was ''ROW... Root Element Type=16777216 NameSpace='' Name='Root' Value=NULL''.
2009-07-23 12:46:06.452025~29264304 UserTrace BIP2233I: Invoking user-defined extension 'Run'(-1271701956, 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A').
About to invoke the specified user-defined extension with the specified parameters.
No user action required.
2009-07-23 12:46:06.457005~06179248 Error BIP2628E: Exception condition detected on input node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Input_Queue'.
The input node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Input_Queue' 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-07-23 12:46:06.457024~06179248 RecoverableException BIP2230E: Error detected whilst processing a message in node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Trace_a'.
The message broker detected an error whilst processing a message in node 'HL7Outbound_ICW_ToCaMIS_T_MQ.pers_op_sf1_NoChangesToMsg.Trace_a'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2009-07-23 12:46:06.457032~06179248 ParserException BIP5285E: Message Translation Interface Parsing Errors have occurred: Message Set Name : ''HL7v1'' Message Set Level : '1' Message Format : ''HL7'' Message Type Path : ''HL7''
Review further error messages for an indication to the cause of the errors.
2009-07-23 12:46:06.457039~06179248 ParserException BIP5421S: Tagged/Delimited String Format (TDS) parsing error Current message : ''HL7'' Path to current element : ''/HL7'' Offset from start of message : 620
See following errors for more details.
2009-07-23 12:46:06.457046~06179248 ParserException BIP5288E: MRM parsing error. Message bit stream larger than expected.
The bit stream of the message being parsed by the MRM parser is larger than expected for a message of this message type.
The message bit stream has been incorrectly constructed, or the logical model is incorrect.
Ensure that the message is correctly packaged.
Ensure that the message properties are correct.
Ensure that the logical model for this message type is complete (the message set and message type should be quoted in previous messages).



The really strange thing is if I browse the message in MQ explorer and copy out the message from properties, data then place it back on the MQ Queue which feeds the message flow it works and the trace node is able to dump out all the MRM data.


Even more strange is that when I visual debug in the broker it recovers from the exception and the trace node output is complete for MRM


In trying to fix I noticed the CCSID’s are different the windows box is 850 and the linux 1208 so I preceded this test flow with one that updates the MQMD and Properties value of this, also tried another flow with MQInput message domain set to BLOB to compare the hex text of the same message against the success and fail versions… but there the same. Had thought the carriage returns which the message set uses were not carriage returns but in both they are “0d”.

From this test BLOB domain flow I can see only a few differences which look trivial these are
Properties.CreationTime and ReplyIdentifier, MQMD.MsgId, CorrelId, UserIdentifier, AccountingToken, PutApplType, PutApplName, PutDate and PutTime.

Now out of ideas on this so if any of you have any thoughts be super to hear, Thanks
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Jul 24, 2009 8:18 am Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

The data is larger than it should be.

Best bet is to enable user trace at debug level.

Probably there's an extra carriage return at the end of the message.

Look at the raw bytes of the message that fails.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Sat Jul 25, 2009 1:32 am Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Also be aware of the multibyte charset features.
Make sure the elements with a character value have set a value of character or string in your message set and not byte...

i.e. if you send a multi-byte character and count it as one you would have 2 or more bytes busting the total length of the message... This is why you need to make sure MRM treats your strings as a char array and not a byte array...

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexWebSphere Message Broker (ACE) SupportParserException BIP5288E
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.