|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
IIB10 - Could not create parser |
« View previous topic :: View next topic » |
Author |
Message
|
Harsha_AS |
Posted: Thu Feb 28, 2019 6:35 pm Post subject: IIB10 - Could not create parser |
|
|
Apprentice
Joined: 04 Dec 2011 Posts: 26
|
I am getting "Could not create parser" when I am trying to delete the previous tree (DELETE FIELD previousRecord;). Below is the Code snippet. Could someone please let me know if I am doing anything wrong here.
Code: |
DECLARE inCCSID, inEncoding INT;
DECLARE inSet, inType, inFormat CHAR;
SET inCCSID = InputRoot.Properties.CodedCharSetId;
SET inEncoding = InputRoot.Properties.Encoding;
DECLARE msgBitstream BLOB ASBITSTREAM(InputBody, inEncoding, inCCSID);
CREATE FIELD Environment.Variables;
CREATE LASTCHILD OF Environment.Variables DOMAIN('JSON') PARSE(msgBitstream, inEncoding, inCCSID);
DECLARE currentRecord REFERENCE TO Environment.Variables.JSON.Data.responseDetails.Item[1];
DECLARE previousRecord REFERENCE TO Environment.Variables.JSON.Data.responseDetails.Item[1];
WHILE LASTMOVE(currentRecord) DO
SET queryValue = currentRecord.queryValue;
SET triggerTypeId = currentRecord.triggerTypeId;
PASSTHRU ('INSERT INTO ABC.DEF_GHI_JKL (APP_CODE, ACCT_ID, TRIGGER_TYPE_ID) VALUES ('''||'RTP'||''','''||queryValue||''','''||triggerTypeId ||''')');
MOVE previousRecord TO currentRecord;
MOVE currentRecord NEXTSIBLING NAME 'Item';
[b]DELETE FIELD previousRecord;[/b]
END WHILE; |
|
|
Back to top |
|
 |
rekarm01 |
Posted: Fri Mar 01, 2019 9:57 am Post subject: Re: IIB10 - Could not create parser |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
Harsha_AS wrote: |
Could someone please let me know if I am doing anything wrong here. |
For one thing, if the code were well-formatted, then [code] tags would make it easier to read.
Harsha_AS wrote: |
I am getting "Could not create parser" when I am trying to delete the previous tree (DELETE FIELD previousRecord;). |
A usertrace should provide a more complete error message. Does setting the field to NULL instead work any better?
Code: |
SET previousRecord = NULL; |
|
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Mar 01, 2019 8:56 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Have you considered that when running the DELETE FIELD in the snippet below
Code: |
MOVE previousRecord TO currentRecord;
MOVE currentRecord NEXTSIBLING NAME 'Item';
[b]DELETE FIELD previousRecord;[/b]
END WHILE; |
that you might be trying to delete the currentRecord because the MOVE NEXT SIBLING failed??  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Harsha_AS |
Posted: Sat Mar 02, 2019 4:41 pm Post subject: |
|
|
Apprentice
Joined: 04 Dec 2011 Posts: 26
|
I ran the user trace and I see the below details. (The integration node is not capable of handling a message of data type ''''. )
NO, MOVE NEXT SIBLING is not failing. What I am suspecting is we cannot delete a FIELD when we are dealing with JSON message format. This will only work when we are dealing with XML or DFDL formats.
Inputs and help will be appreciated.
2019-03-02 19:28:06.697884 30094 >> SqlStatementGroup::execute file:/build/S1000_slot1/S1000_P/src/DataFlowEngine/ImbRdl/ImbRdlStatementGroup.cpp line:792 message:2488.BIPmsgs 'Error detected, rethrowing' , '.insertRecordsToDB.Main', '69.4', 'WHILE LASTMOVE(currentRecord) DO ... END WHILE;',
2019-03-02 19:28:06.697884 30094 >> RecoverableException BIP2488E: ('.insertRecordsToDB.Main', '69.4') Error detected whilst executing the SQL statement ''WHILE LASTMOVE(currentRecord) DO ... END WHILE;''.
The integration node 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.
2019-03-02 19:28:06.697888 30094 >> ImbMessageGroup::createParser file:/build/S1000_slot1/S1000_P/src/DataFlowEngine/MessageServices/ImbMessageGroup.cpp line:201 message:2310.BIPmsgs 'Could not create parser' , '',
2019-03-02 19:28:06.697888 30094 >> RecoverableException BIP2310E: The integration node is not capable of handling a message of data type ''''.
The integration node received a message that requires the handling of data of type '''', but the integration node does not have the capability to handle data of this type.
Check both the message being sent to the integration node and the configuration data for the node. References to the unsupported data type must be removed if the message is to be processed by the integration node. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Mar 03, 2019 10:40 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Harsha_AS wrote: |
I ran the user trace and I see the below details. (The integration node is not capable of handling a message of data type ''''. )
NO, MOVE NEXT SIBLING is not failing. What I am suspecting is we cannot delete a FIELD when we are dealing with JSON message format. This will only work when we are dealing with XML or DFDL formats.
Inputs and help will be appreciated.
2019-03-02 19:28:06.697884 30094 >> SqlStatementGroup::execute file:/build/S1000_slot1/S1000_P/src/DataFlowEngine/ImbRdl/ImbRdlStatementGroup.cpp line:792 message:2488.BIPmsgs 'Error detected, rethrowing' , '.insertRecordsToDB.Main', '69.4', 'WHILE LASTMOVE(currentRecord) DO ... END WHILE;',
2019-03-02 19:28:06.697884 30094 >> RecoverableException BIP2488E: ('.insertRecordsToDB.Main', '69.4') Error detected whilst executing the SQL statement ''WHILE LASTMOVE(currentRecord) DO ... END WHILE;''.
The integration node 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.
2019-03-02 19:28:06.697888 30094 >> ImbMessageGroup::createParser file:/build/S1000_slot1/S1000_P/src/DataFlowEngine/MessageServices/ImbMessageGroup.cpp line:201 message:2310.BIPmsgs 'Could not create parser' , '',
2019-03-02 19:28:06.697888 30094 >> RecoverableException BIP2310E: The integration node is not capable of handling a message of data type ''''.
The integration node received a message that requires the handling of data of type '''', but the integration node does not have the capability to handle data of this type.
Check both the message being sent to the integration node and the configuration data for the node. References to the unsupported data type must be removed if the message is to be processed by the integration node. |
Your error points to your while loop.
In your while loop you move to the next sibling and something blows up in that loop. You need to look at all the siblings and find out which one is blowing up and why. It looks like this might be related to your data?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
rekarm01 |
Posted: Sun Mar 03, 2019 12:12 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
Harsha_AS wrote: |
I ran the user trace and I see the below details. (The integration node is not capable of handling a message of data type ''''. ) |
It looks like the message flow could not even enter the while loop for some reason. It could help to also see the portion of usertrace leading up to the while loop (starting at least from the "CREATE LASTCHILD statement ... "). It might also help to comment out the while loop, and add a Trace node to parse the Environment.Variables subtree; that would either confirm or rule out a problem with the while loop itself.
The CREATE statement looks ok as-is, but the parentheses in the DOMAIN clause aren't necessary; more explicit NAME and PARSE clauses are also unnecessary, but shouldn't hurt either:
Code: |
CREATE LASTCHILD OF Environment.Variables DOMAIN 'JSON' NAME 'JSON' PARSE(msgBitstream ENCODING inEncoding CCSID inCCSID); |
|
|
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
|
|
|
|