Author |
Message
|
paldebojyoti |
Posted: Tue Oct 26, 2004 5:44 am Post subject: PROPAGATE problem |
|
|
Novice
Joined: 04 Aug 2004 Posts: 10
|
Hi,
I am facing a problem in WMQI 2.1. I have to generate a no. of output messages from one input message. So in esql I am using command PROPAGATE, but my input message goes to failure queue giving the error:
ParserException BIP5354E: MTI internal error: diagnostic information 'parseRightSibling called before RefreshElementFromBitstream'.
An internal software error has occurred in the Message Translation Interface Parser. The diagnostic information associated with this message is: 'parseRightSibling called before RefreshElementFromBitstream'.
But when I am not using PROPAGATE only one message is generated instead of many and goes to the output queue.
Can anyone help me to get rid of this problem.
Regards,
Debojyoti Pal |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Oct 26, 2004 5:45 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Are you including 'return false' at the end of your ESQL?
Can we see your ESQL? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
paldebojyoti |
Posted: Tue Oct 26, 2004 5:49 am Post subject: PROPAGATE problem |
|
|
Novice
Joined: 04 Aug 2004 Posts: 10
|
Hi Jeff,
Thanks for your prompt reply.
Yes I have included return false at the last of ESQL.
Actually my esql code is so big, it is difficult to post.
Regards,
Debojyoti |
|
Back to top |
|
 |
RocknRambo |
Posted: Tue Oct 26, 2004 8:15 am Post subject: |
|
|
Partisan
Joined: 24 Sep 2003 Posts: 355
|
couple of things to be taken care when using PROPAGATE Statement, probably u wud hav done...but a cheklist.. cud solve the pblm
* OutputRoot = InputRoot
* OutputRoot = NULL;
* Return FALSE
-RR |
|
Back to top |
|
 |
djeripo |
Posted: Tue Oct 26, 2004 8:18 am Post subject: |
|
|
 Master
Joined: 25 Jan 2004 Posts: 225
|
Tell me these,
Are you using while loop and CARDINALITY to segregate small chunks of messages from one big message you get in the InputQueue?
If at all you are using PROPAGATE,
When you propagate the message, the OutputRoot tree is returned completely empty.You have to recopy the message headers(MQMD) ,Properties each time after propagate.
This can be acheived with the following lines of code set in the begining of the while loop.
Something like this,
DECLARE J INT;
SET J = 1;
WHILE J <= CARDINALITY("InputBody"."RECORD_ELEMENT"[])
Do
SET OutputRoot.Properties = NULL;
SET OutputRoot.Properties = InputRoot.Properties;
SET OutputRoot.MQMD = NULL;
SET OutputRoot.MQMD = InputRoot.MQMD;
/* If your output is MRM */
SET OutputRoot.Properties.MessageSet = 'whatever';
SET OutputRoot.Properties.MessageType = 'whatever';
SET OutputRoot.Propeties.MessageFormat = 'CWF'; (For instance)
------ Your Code ---------
PROPAGATE;
SET J = J+1;
END WHILE;
RETURN FALSE; |
|
Back to top |
|
 |
JT |
Posted: Tue Oct 26, 2004 8:38 am Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
|
Back to top |
|
 |
paldebojyoti |
Posted: Wed Oct 27, 2004 9:12 pm Post subject: |
|
|
Novice
Joined: 04 Aug 2004 Posts: 10
|
Hi ,
Thank you everybody, It's working.
Regards,
Debojyoti |
|
Back to top |
|
 |
|