Author |
Message
|
RaviKrG |
Posted: Wed Feb 18, 2009 1:13 pm Post subject: Parsing Error |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Hi I have a flow as MQInput Node --> Compute Node --> MQOutput Node
The flow does a job of converting the xml msg to a csv format data with some modifications(ie csv data with header).
The output data is formed from the attribute values of the tags in the xml incoming message. Also the output does contain a header which I am creating in the esql.
MQInput node :
----------------
Message Domain : MRM
Message Set : MessageData
Message Type : OutputFile
ESQL:
-------
SET OutputRoot.Properties.MessageFormat = 'Text1' ;
The problem is msg goes to backout queue with an exception as
Writing errors have occurred. Message set name:MessageData Message format: Text1 Message type path: /OutputFile : BRK.58dd6a5b-1f01-0000-0080-ac35573246f4: /build/S610_P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbParser.cpp: 1866: MtiImbParser::refreshBitStreamFromElements - 9 par: ComIbmMQInputNode:
When I could not get the issue tried with the debugger and I got "parser exception error" but during debugging in the output section I get the headers data but not the output data. i read at some place that parser error are hidden by debugger.
So I tried with the trace and I got this error in the user trace
ParserException BIP5286E: Writing errors have occurred. Message set name: 'MessageData' Message format: 'Text1' Mess
age type path: '/OutputFile'
ParserException BIP5447S: Tagged/Delimited String Format (TDS) writing error while writing message ''/OutputFile/Heade
rRow/ColumnList/ColumnName(1 of unbounded)''
ParserException BIP5436S: Data length error: Element name: 'ColumnName' Element type: 'String' Expected data length
: 0 'Characters' Actual data length: 11 'Characters' Data: 'exstudentid'
I can under stand by the above exception that the incoming data has 11 characters but the expected is 0. But this is not a tagged fixed length messageset.
If the above info is enough for any update please let me know issue here do I need to set the length of the field ColumnName here. |
|
Back to top |
|
 |
kimbert |
Posted: Wed Feb 18, 2009 1:49 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Hi RaviKrG,
Quote: |
When I could not get the issue tried with the debugger and I got "parser exception error" but during debugging in the output section I get the headers data but not the output data. i read at some place that parser error are hidden by debugger.
So I tried with the trace and I got this error in the user trace |
Wow. Just 'Wow'. Thank you for being the first person on this forum to
a) read previous posts
b) follow the advice
c) post all the required information at the first attempt
My first guess that you have accidentally configured the complex type which contains 'ColumnName' to be a Fixed Length or Tagged Fixed Length type.
Have you actually opened the definition of 'ColumnName' in the message definition file editor and checked? |
|
Back to top |
|
 |
RaviKrG |
Posted: Wed Feb 18, 2009 2:06 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Thanks kimbert well that was your post where you have said that parsing errors are hidden during debugging (if i remeber correctly)
well regarding this even i feel that there is some problem in my message set.
Let me tell something about that may be I will get the problem here:
OutPut -> HR -> CL -> CN
OutPut -> DR-> D -> CD
OutPut is global ele with comp type
HR, DR, CL and D are Local element with comp type
CN, CD are global ele with string type
and I have made CN and CD as a ele ref of CL and D respectively.
Now on checking the fixed/non fixed lenght:
I checked the property of OutPut,HR.DR,CL,CN,CD in the value field it is set to Default. also the Glo ele CN and CD has in phy representation as leng as Zero. |
|
Back to top |
|
 |
kimbert |
Posted: Wed Feb 18, 2009 2:39 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Took me a while to work out that
Quote: |
OutPut -> HR -> CL -> CN |
means
Quote: |
OutputRoot.HeaderRecord.ColumnList.ColumnName |
You are describing the structure of your message set, not your output message tree. So OutputRoot has no meaning in this context. That probably sounds picky, but it pays to think accurately about these concepts.
Quote: |
and I have made CN and CD as a ele ref of CL and D respectively. |
What you mean is
Quote: |
I have added ColumnName and ColumnDxxx as element references under the complex type of ColumnList and DXXX respectively |
Note the words in bold. It is the parent complex type, not the parent element, which sets the Data Element Separation for ColumnName.
So...please do the following
- open the message definition file
- find ColumnName
- navigate to the complex type or group which contains ColumnName
- select physical format 'Text1' in the tree view on the left
- Note the 'Data Element Separation' setting
I would not be surprised if it was set to the default value of 'Fixed Length' |
|
Back to top |
|
 |
RaviKrG |
Posted: Wed Feb 18, 2009 3:00 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Sorry Kimbert for my encrypted language there. I was just trying to give you an idea for my message set, I will surely remeber that this will cause even more problem for the other person to understand.
Thanks it was the same thing what you said and that was corrected but now in my output I only get the headers and no data is there.
My output data should look like
field1,field2,field3,field4,...........(12 fields)
VALUE1,123,A001,1234500.78,20080209.......(12 fields)
VALUE1,187,A0451,1234544.78,20080209.......(12 fields)
VALUE1,1345,A0145,1452345.78,20080209.......(12 fields)
but in my out put I am getting only the headers as
field1,field2,field3,field4,...........(12 fields)
No exception or any logs written here. |
|
Back to top |
|
 |
RaviKrG |
Posted: Wed Feb 18, 2009 3:15 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Little strange here for me I got exception in system log as
Error detected whilst executing the SQL statement 'DECLARE delim CHARACTER ',';
The MRM bitstream worker associated with message format '' of message set 'MessageData' is not valid. |
|
Back to top |
|
 |
RaviKrG |
Posted: Wed Feb 18, 2009 3:23 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
The MRM bitstream worker associated with message format '' of message set 'MessageData' is not valid. --> BIP5294E
Error detected whilst executing the SQL statement 'DECLARE delim CHARACTER ','; --> BIP2488E
This error is little strange to me. Any idea on these errors.
Thanks. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Feb 19, 2009 1:34 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Error detected whilst executing the SQL statement 'DECLARE delim CHARACTER ',';
The MRM bitstream worker associated with message format '' of message set 'MessageData' is not valid. |
- You have may have forgotten to set OutputRoot.Properties.MessageFormat.
- Those are two completely separate error messages - that SQL statement would never trigger the MRM error.
- I am slightly concerned that your message flow is declaring a delimiter. If you use the product correctly, that should hardly ever be necessary because the parser handles all that stuff for you.
Quote: |
in my out put I am getting only the headers |
Check the user trace for warnings about self-defining elements ( BIP5493W ). If you find any, correct your output message tree so that it conforms to the logical structure of your message definition. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Feb 19, 2009 2:58 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
My feeling is that this is a repeating element delimiter problem, that the parser is (correctly for how the msg set is built) trying to parse what should be the first field of the data as another instance of the last child of header. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Feb 19, 2009 4:46 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
mqjeff: I doubt it. This is a writing error, not a parsing error  |
|
Back to top |
|
 |
RaviKrG |
Posted: Thu Feb 19, 2009 10:16 am Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
I did take a user trace but there was no warning or any error also all the statements looked to be fine with an exception as
Executing statement ''DECLARE inRef REFERENCE TO InputRoot.XML.Message.Batch.StudId;''...
Failed to navigate to path element number '2' because it does not exist.
Executing statement ''DECLARE studRef REFERENCE TO InputRoot.XML.Message;'' at -----
Failed to navigate to path element number '2' because it does not exist.
I am not sure this relates to the original problem. Also I dont think this relates to any error.
Still digging in to get something . |
|
Back to top |
|
 |
kimbert |
Posted: Thu Feb 19, 2009 10:56 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
You do not need to look for statements like this in order to work out what's missing from the message tree:
Quote: |
Failed to navigate to path element number '2' because it does not exist. |
...just insert a Trace node and set the pattern to '${Root}'. The output goes into the user trace by default.
Also, note that it is your input message tree which has the fields missing. So the problem is with the TDS parsing. The correct solution to that problem is to work out what the TDS parser has been doing wrong, and fix it. Now, I seem to remember something about the TDS parser and user trace...  |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Feb 19, 2009 12:05 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
kimbert wrote: |
So the problem is with the TDS parsing. |
kimbert wrote: |
This is a writing error, not a parsing error |
 |
|
Back to top |
|
 |
kimbert |
Posted: Thu Feb 19, 2009 1:04 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
You win!
...
( this time ). |
|
Back to top |
|
 |
RaviKrG |
Posted: Sun Feb 22, 2009 10:49 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Hi There, When I took a trace as given by kimbert then I got this info as
ParserException BIP5294E: The MRM bitstream worker associated with message format '''' of message set ''ABCD(IBSO4J4002001)'' is not valid.
The required bitstream worker (MRM parser) for message set/message format pair ('ABCD (IBSO4J4002001)', '') is n
ot valid. Although the bit stream worker library has been successfully loaded, it is not valid for the requested message format. It is possible that your ins
tallation is incomplete or has been corrupted.
The bitstream workers are loaded when the message broker starts an execution group (DataFlowEngine instance).
Check the application event viewer (or system log) for error messages when the broker is started or when a message set
is deployed to the broker.
Check that the appropriate bitstream worker library file (dll or shared object) exists in the correct directory and th
at any library paths are valid. On a Windows platform these library files should be located in the <Install Dir>\bin directory. On all other platforms the fi
les should be located in the <Install Dir>/lib directory.
The following list identifies the relationship between an MRM parser and the required library files:
Custom Wire Format (CWF) : 'bipcwfworker.wrk' or 'bipcwfworker64.wrk'
Tagged/Delimited Format (TDS) : 'biptdsworker.wrk' or 'biptdsworker64.wrk'
MRM XML Format : 'bipxmlworker.wrk' or 'bipxmlworker64.wrk'
If the problem cannot be resolved it is recommended that you reinstall the product.
My broker is on solaris so I checked the path given above and found these files (starting with bip)
-rwxr-xr-x 1 bin bin 130064 May 21 2008 bipdbrsmgr64.rmg
-rwxr-xr-x 1 bin bin 100568 May 21 2008 bipdbrsmgr.rmg
-rwxr-xr-x 1 bin bin 71008 May 21 2008 bipfilersmgr.rmg
-rwxr-xr-x 1 bin bin 87096 May 21 2008 bipfilersmgr64.rmg
Can any body tell whats the matter here ( I think in my flow there is a problem with the parsing as given in my previous post that when i check throught the debugger it throws a problem as Message -> MRM -> RM Worker Not Found.) |
|
Back to top |
|
 |
|