|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Parsing "On Demand" and "Immediate" |
« View previous topic :: View next topic » |
Author |
Message
|
mqxplorer |
Posted: Mon Oct 04, 2010 7:05 am Post subject: Parsing "On Demand" and "Immediate" |
|
|
 Master
Joined: 22 Jun 2009 Posts: 206
|
Hi,
I have a question regarding setting 'Parse Timing' to 'On Demand' and 'Immediate'. As far as I understood.. if we set the Parse Timing to 'Immediate' the parser parses the whole message. I am not sure how the parser parses the message, if we set the Parse Timing to 'On Demand'. Does it parse partially ?? If so to what extent (which elements) it parses? It would be really helpful to me, if someone can throw some light on this...
Thanks in advance
Thanks
mqxplorer |
|
Back to top |
|
 |
kimbert |
Posted: Mon Oct 04, 2010 7:09 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
|
Back to top |
|
 |
WMBDEV1 |
Posted: Mon Oct 04, 2010 7:10 am Post subject: Re: Parsing "On Demand" and "Immediate" |
|
|
Sentinel
Joined: 05 Mar 2009 Posts: 888 Location: UK
|
mqxplorer wrote: |
if we set the Parse Timing to 'On Demand'. Does it parse partially ??
|
Yes, it parses the message tree up the point thats needed (e.g. up to the element that you reference) but not after it. |
|
Back to top |
|
 |
WMBDEV1 |
Posted: Mon Oct 04, 2010 7:12 am Post subject: |
|
|
Sentinel
Joined: 05 Mar 2009 Posts: 888 Location: UK
|
Drat.... beaten again (for the second time today!)  |
|
Back to top |
|
 |
mqxplorer |
Posted: Mon Oct 04, 2010 9:26 am Post subject: |
|
|
 Master
Joined: 22 Jun 2009 Posts: 206
|
Hi Kimbert and WMBDEV1,
Thanks for your responses and clarifications....
Thanks
mqxplorer |
|
Back to top |
|
 |
mqxplorer |
Posted: Tue Jul 19, 2011 1:43 pm Post subject: |
|
|
 Master
Joined: 22 Jun 2009 Posts: 206
|
I am back with my favorite topic 'Message validation'... I am facing some unsual behavior with message validation on my local machine and in DEV.
I have a message flow which does a mapping from one xml schema to the other. There is an invalid XML character (Unicode: 0x0) in one of the elements of the incoming xml message.
The behavior of the flow on my local machine which is a windows machine is as explained below:
It receives the message and throws an exception when the mapping for the element with invalid xml character happens and the message rolls back to the error queue. Below is the part of the user trace.
Code: |
Timestamps are formatted in local time, 240 minutes before GMT.
Trace written by version 7001; formatter version 7001 (build S700-FP01)
2011-07-19 09:26:34.841651 7484 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU'.
2011-07-19 09:26:34.855167 7484 UserTrace BIP6060I: Parser type ''Properties'' created on behalf of node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2011-07-19 09:26:34.855213 7484 UserTrace BIP6061I: Parser type ''MQMD'' created on behalf of node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value ''MQHMD'' from previous parser.
2011-07-19 09:26:34.855297 7484 UserTrace BIP6061I: Parser type ''XMLNSC'' created on behalf of node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU' to handle portion of incoming message of length '2272' bytes beginning at offset '364'. Parser type selected based on value ''XMLNSC'' from previous parser.
2011-07-19 09:26:34.855342 7484 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns12 NAMESPACE 'http://schools.nyc.gov/DOE.Services.Common/v1_1';'' at ('Interface.ns12', '1.1').
2011-07-19 09:26:34.855365 7484 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns22 NAMESPACE 'http://schools.nyc.gov/DOE.Services.StudentInfo/v1_1';'' at ('Interface.ns22', '1.1').
2011-07-19 09:26:34.855384 7484 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns NAMESPACE 'http://schools.nyc.gov/DOE.Services.SESIS/v1_0';'' at ('Interface.ns', '1.1').
2011-07-19 09:26:34.855438 7484 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns7 NAMESPACE 'http://schools.nyc.gov/DOE.Services.StudentInfo/v1_1';'' at ('Interface.ns7', '1.1').
------ executes some more statements and finallay throws the exception...
2011-07-19 09:26:34.878849 7484 UserTrace BIP2539I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Evaluating expression ''InHedRef.eventType'' at ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '29.8'). This resolved to ''InHedRef.eventType''. The result was '''ADDRESS'''.
2011-07-19 09:26:34.878875 7484 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''SET OutMsgRef.ns:ADDR.addrChgFlg = InMsgRef.studentAddressList.studentAddress.addressChange;'' at ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '41.4').
2011-07-19 09:26:34.879688 7484 UserTrace BIP5004E: An XML parsing error ''An invalid XML character (Unicode: 0x0) was found in the element content of the document.'' occurred on line 1 column 1128 when parsing element ''/Root/XMLNSC/http://schools.nyc.gov/DOE.Services.Common/v1_1:DataUpdateEvent/eventBody/http://schools.nyc.gov/DOE.Services.StudentInfo/v1_1:Student/studentAddressList/studentAddress/address/apartmentNumber''.
Internal error codes are '1502' and '2'.
This error was reported by the generic XML parser, and is usually the result of a badly formed XML message.
Check that the input XML message is a well-formed XML message that adheres to the XML specification. The line number and column number that are quoted in the message give the position where the parser discovered the problem. However, the actual error might be earlier in the message.
Other possible causes are:
1. A character that is not supported by XML occurs in the instance message data.
XML supports only a subset of control characters; therefore, ensure that no unsupported characters, such as X'00', appear in the document.
2. The Coded Character Set ID that is defined in the message header does not reflect the contents of the instance message.
If the XML document has an XML prologue, the WebSphere MQ CodedCharSetId should be consistent with the XML Encoding field.
3. A reserved XML character appears in the instance message data.
Characters that might be recognized as XML markup - for example, < and & - should be replaced with the corresponding XML entities - < and &.
2011-07-19 09:26:34.934906 7484 UserTrace BIP2231E: Error detected whilst processing a message in node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU'.
The message broker detected an error whilst processing a message in node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU'. The message has been augmented with an exception list and has been propagated to the node's failure terminal for further processing.
See the following messages for details of the error.
2011-07-19 09:26:34.934932 7484 RecoverableException BIP2230E: Error detected whilst processing a message in node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping'.
The message broker detected an error whilst processing a message in node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2011-07-19 09:26:34.934951 7484 RecoverableException BIP2488E: ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '41.4') Error detected whilst executing the SQL statement ''SET OutMsgRef.ns:ADDR.addrChgFlg = InMsgRef.studentAddressList.studentAddress.addressChange;''.
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.
2011-07-19 09:26:34.934959 7484 RecoverableException BIP2498E: ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '41.40') : An error occurred when navigating to path element '4' of the field reference at the given location.
Further messages are generated that provide details of the error.
Correct the syntax of your ESQL expression in node ''Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main'', around line and column ''41.40'', then redeploy the message flow.
2011-07-19 09:26:34.934974 7484 ParserException BIP5009E: XML Parsing Errors have occurred.
Errors have occurred during parsing of XML.
Review further error messages for an indication to the cause of the errors.
2011-07-19 09:26:34.934989 7484 ParserException BIP5004E: An XML parsing error ''An invalid XML character (Unicode: 0x0) was found in the element content of the document.'' occurred on line 1 column 1128 when parsing element ''/Root/XMLNSC/http://schools.nyc.gov/DOE.Services.Common/v1_1:DataUpdateEvent/eventBody/http://schools.nyc.gov/DOE.Services.StudentInfo/v1_1:Student/studentAddressList/studentAddress/address/apartmentNumber''.
Internal error codes are '1502' and '2'.
This error was reported by the generic XML parser, and is usually the result of a badly formed XML message.
Check that the input XML message is a well-formed XML message that adheres to the XML specification. The line number and column number that are quoted in the message give the position where the parser discovered the problem. However, the actual error might be earlier in the message.
Other possible causes are:
1. A character that is not supported by XML occurs in the instance message data.
XML supports only a subset of control characters; therefore, ensure that no unsupported characters, such as X'00', appear in the document.
2. The Coded Character Set ID that is defined in the message header does not reflect the contents of the instance message.
If the XML document has an XML prologue, the WebSphere MQ CodedCharSetId should be consistent with the XML Encoding field.
3. A reserved XML character appears in the instance message data.
Characters that might be recognized as XML markup - for example, < and & - should be replaced with the corresponding XML entities - < and &.
2011-07-19 09:26:34.935203 7484 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.setPriority': Executing statement ''DEC |
This is an expected behavior. However, the same flow behaves differently in DEV which is a linux box.
The behavior on the DEV machine is...
It says exceptions occurred, however, the mapping of all the elements occur and a fragmented resultant message is put to the consumer queue which should not happen..
below is the part of the user trace in DEV.
Code: |
Timestamps are formatted in local time, 240 minutes before GMT.
Trace written by version ; formatter version 7001 (build S700-FP01)
2011-07-19 16:10:45.417424 27 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU'.
2011-07-19 16:10:45.417560 27 UserTrace BIP6060I: Parser type ''Properties'' created on behalf of node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2011-07-19 16:10:45.417588 27 UserTrace BIP6061I: Parser type ''MQMD'' created on behalf of node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU' to handle portion of incoming message of length '364' bytes beginning at offset '0'. Parser type selected based on value ''MQHMD'' from previous parser.
2011-07-19 16:10:45.417648 27 UserTrace BIP6061I: Parser type ''XMLNSC'' created on behalf of node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_GBO_SESISODS_ROU' to handle portion of incoming message of length '2272' bytes beginning at offset '364'. Parser type selected based on value ''XMLNSC'' from previous parser.
2011-07-19 16:10:45.419488 27 UserTrace BIP5004E: An XML parsing error ''An invalid XML character (Unicode: 0x0) was found in the element content of the document.'' occurred on line 1 column 1128 when parsing element ''/Root/XMLNSC/http://schools.nyc.gov/DOE.Services.Common/v1_1:DataUpdateEvent/eventBody/http://schools.nyc.gov/DOE.Services.StudentInfo/v1_1:Student/studentAddressList/studentAddress/address/apartmentNumber''. Internal error codes are '1502' and '2'.
This error was reported by the generic XML parser, and is usually the result of a badly formed XML message.
Check that the input XML message is a well-formed XML message that adheres to the XML specification. The line number and column number that are quoted in the message give the position where the parser discovered the problem. However, the actual error might be earlier in the message.
Other possible causes are:
1. A character that is not supported by XML occurs in the instance message data.
XML supports only a subset of control characters; therefore, ensure that no unsupported characters, such as X'00', appear in the document.
2. The Coded Character Set ID that is defined in the message header does not reflect the contents of the instance message.
If the XML document has an XML prologue, the WebSphere MQ CodedCharSetId should be consistent with the XML Encoding field.
3. A reserved XML character appears in the instance message data.
Characters that might be recognized as XML markup - for example, < and & - should be replaced with the corresponding XML entities - < and &.
2011-07-19 16:10:45.421068 27 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns12 NAMESPACE 'http://schools.nyc.gov/DOE.Services.Common/v1_1';'' at ('Interface.ns12', '1.1').
2011-07-19 16:10:45.422628 27 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns22 NAMESPACE 'http://schools.nyc.gov/DOE.Services.StudentInfo/v1_1';'' at ('Interface.ns22', '1.1').
2011-07-19 16:10:45.422648 27 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns NAMESPACE 'http://schools.nyc.gov/DOE.Services.SESIS/v1_0';'' at ('Interface.ns', '1.1').
2011-07-19 16:10:45.422660 27 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns7 NAMESPACE 'http://schools.nyc.gov/DOE.Services.StudentInfo/v1_1';'' at ('Interface.ns7', '1.1').
2011-07-19 16:10:45.422676 27 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns17 NAMESPACE 'http://localhost/STARSDataServices/StarsServiceHub.asmx';'' at ('Interface.ns17', '1.1').
2011-07-19 16:10:45.422688 27 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns8 NAMESPACE 'https://ats.nycboe.net/STARSDataServices/StarsServiceHub.asmx';'' at ('Interface.ns8', '1.1').
2011-07-19 16:10:45.422704 27 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''DECLARE ns1 NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';'' at ('Interface.ns1', '1.1').
-- executes some more statements and maps the element with the issue as below
entAddressList.studentAddress.address.apartmentNumber;'' at ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '48.4').
2011-07-19 16:10:45.425160 27 UserTrace BIP2539I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Evaluating expression ''InMsgRef.studentAddressList.studentAddress.address.apartmentNumber'' at ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '48.41'). This resolved to ''InMsgRef.studentAddressList.studentAddress.address.apartmentNumber''. The result was ''ROW... Root Element Type=0 NameSpace='' Name='apartmentNumber' Value=NULL''.
2011-07-19 16:10:45.425180 27 UserTrace BIP2568I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Copying sub-tree from ''InMsgRef.studentAddressList.studentAddress.address.apartmentNumber'' to ''OutMsgRef.ns:ADDR.resAbflrNum''.
2011-07-19 16:10:45.425204 27 UserTrace BIP2537I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Executing statement ''SET OutMsgRef.ns:ADDR.resBoro = InMsgRef.studentAddressList.studentAddress.address.borough;'' at ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '49.4').
2011-07-19 16:10:45.425216 27 UserTrace BIP2543I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '49.38') : Failed to navigate to path element number '5' because it does not exist.
2011-07-19 16:10:45.425236 27 UserTrace BIP2539I: Node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.GBO_To_SESIS_ASBO_Mapping': Evaluating expression ''InMsgRef.studentAddressList.studentAddress.address.borough'' at ('Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO_Mapping.Main', '49.38'). This resolved to ''InMsgRef.studentAddressList.studentAddress.address.borough''. The result was ''EMPTY ROW''.
-- maps the elements below the problem element and puts the fragmented message in the consumer queue...
2011-07-19 16:10:45.437408 27 UserTrace BIP2638I: The MQ output node 'Interface.MF_StudentUpdate_GBO_To_SESIS_ASBO.STDNTUPD_ASBO_SESISODS_PUB' attempted to write a message to queue ''STDNTUPD_ASBO_SESISODS_PUB'' connected to queue manager ''''. The MQCC was '0' and the MQRC was '0'. |
Broker version in Local is:
Code: |
BIPmsgs en_US
Console OEM CP=437, ICU CCSID=5348
Default codepage=ibm-5348_P100-1997, in ascii=ibm-5348_P100-1997
JAVA console codepage name=cp437
BIP8996I: Version: 7001
BIP8997I: Product: WebSphere Message Broker
BIP8998I: CMVC Level: S700-FP01
BIP8999I: Build Type: Production
BIP8071I: Successful command completion. |
and DEV is:
Code: |
BIPmsgs en_US
Console CCSID=1208, ICU CCSID=1208
Default codepage=UTF-8, in ascii=UTF-8
JAVA console codepage name=UTF-8
BIP8996I: Version: 7001
BIP8997I: Product: WebSphere Message Broker
BIP8998I: CMVC Level: S700-FP01
BIP8999I: Build Type: Production
|
I have been trying to understand why it is behaving differently on my machine and in DEV .. both have the same broker runtime installation...
have not got any solution yet ...
The validation is set to None on the MQInput node.
I am thinking of opening a PMR with IBM. I would like to know, if anybody has any suggestions before approaching IBM.
Thanks
mqxplorer |
|
Back to top |
|
 |
mqxplorer |
Posted: Wed Jul 20, 2011 5:11 am Post subject: |
|
|
 Master
Joined: 22 Jun 2009 Posts: 206
|
Does anybody have any suggestions for this?
Thanks
mqxplorer |
|
Back to top |
|
 |
kimbert |
Posted: Wed Jul 20, 2011 5:27 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Check that all of the settings are the same on the Linux box. I remember that parser exceptions were being trapped when monitoring was enabled in some versions, so might be worth checking that. |
|
Back to top |
|
 |
mqxplorer |
Posted: Wed Jul 20, 2011 11:13 am Post subject: |
|
|
 Master
Joined: 22 Jun 2009 Posts: 206
|
Hi Kimbert,
Thanks for your response...
Quote: |
I remember that parser exceptions were being trapped when monitoring was enabled in some versions, so might be worth checking that. |
Actually, 'enable monitoring' is the reason for this issue...
I have enabled flow monitoring for my flow in DEV which was not the case in my machine(local). I have disabled the flow monitoring in DEV and run the trace. I got the trace what I was expecting and the message rolls abck to the error queue without sending the fragmented message to the consumer.
Now I am very clear why I have seen this strange behavior. However, I guess this is bug in the product. We must have the flow monitoring enabled for all our flows. When we enable the flow monitoring for the flow, fragmented message being sent to the consumer queue with mapping happening for the other elements (other than the troubled elements) in the message. This is not correct. The message should roll back to the error queue attached the catch terminal of the flow which is happening when the flow monitoring is disabled.
I guess, I have to open a PMR. As you said you remember this happened with some versions. Somebody must have already opened a PMR with IBM regarding this issue. Would it be possible for you to provide the APAR number for this fix so that we can provide it to IBM while openeing PMR? This can be possible that IBM included the fix in the FP02/03. We are on FP01.
Thanks
mqxplorer |
|
Back to top |
|
 |
kimbert |
Posted: Wed Jul 20, 2011 12:12 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Actually, 'enable monitoring' is the reason for this issue...
I have enabled flow monitoring for my flow in DEV which was not the case in my machine(local). I have disabled the flow monitoring in DEV and run the trace. I got the trace what I was expecting and the message rolls abck to the error queue without sending the fragmented message to the consumer.
Now I am very clear why I have seen this strange behavior. However, I guess this is bug in the product |
Don't raise a PMR yet. First, check that you have applied the latest fix pack - I seem to remember that this was discovered quite a while ago, and a fix was made available. Either way, it's a known problem.
If you do raise a PMR, *please* reference this thread to avoid wasted time at your end and ours. |
|
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
|
|
|
|