Author |
Message
|
earrieta |
Posted: Fri Jun 20, 2008 8:10 am Post subject: Message Id not in CWF File |
|
|
Newbie
Joined: 20 Jun 2008 Posts: 9
|
I want to change the data type of an XML message to CWF, but I get the following error message
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp'
(0x03000000):Line = 894
(0x03000000):Function = 'ImbMqOutputNode::evaluate'
(0x03000000):Type = 'ComIbmMQOutputNode'
(0x03000000):Name = 'dddd#FCMComposite_1_2'
(0x03000000):Label = 'dddd.MQOutput'
(0x03000000):Catalog = 'BIPv610'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x03000000):Text = 'Caught exception and rethrowing'
(0x01000000):ParserException = (
(0x03000000):File = 'F:\build\S610_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbParser.cpp'
(0x03000000):Line = 1865
(0x03000000):Function = 'MtiImbParser::refreshBitStreamFromElements - 9 par'
(0x03000000):Type = 'ComIbmMQInputNode'
(0x03000000):Name = 'dddd#FCMComposite_1_1'
(0x03000000):Label = 'dddd.MQInput'
(0x03000000):Catalog = 'BIPv610'
(0x03000000):Severity = 3
(0x03000000):Number = 5286
(0x03000000):Text = 'ImbRecoverableException caught from worker when attempting to write out the bitstream.'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'yyy_cwf'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '1'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'Binary1'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '/BROKER_LEGACY'
)
(0x01000000):ParserException = (
(0x03000000):File = 'F:\build\S610_P\src\cpi\pwf\cwf\cwfworker.cpp'
(0x03000000):Line = 428
(0x03000000):Function = 'CWFWorker::write'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv610'
(0x03000000):Severity = 3
(0x03000000):Number = 5167
(0x03000000):Text = 'CWF General Error'
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '0'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'CWFWorker::write'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'UNDEFINED'
)
(0x01000000):ParserException = (
(0x03000000):File = 'F:\build\S610_P\src\cpi\pwf\cwf\cwfworker.cpp'
(0x03000000):Line = 414
(0x03000000):Function = 'CWFWorker::write'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv610'
(0x03000000):Severity = 3
(0x03000000):Number = 5180
(0x03000000):Text = 'Message Id not in CWF File'
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '0'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'CWFWorker::write'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'JS121M8002001'
)
)
)
) |
|
Back to top |
|
 |
Gaya3 |
Posted: Fri Jun 20, 2008 11:04 pm Post subject: |
|
|
 Jedi
Joined: 12 Sep 2006 Posts: 2493 Location: Boston, US
|
|
Back to top |
|
 |
earrieta |
Posted: Mon Jun 23, 2008 11:46 am Post subject: Message Id not in CWF File |
|
|
Newbie
Joined: 20 Jun 2008 Posts: 9
|
Grand Master this is the code esql
CREATE COMPUTE MODULE ggg_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
CALL CopyMessageHeaders();
CALL CopyEntireMessage();
RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
DECLARE I INTEGER 1;
DECLARE J INTEGER;
SET J = CARDINALITY(InputRoot.*[]);
WHILE I < J DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I = I + 1;
END WHILE;
END;
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET OutputRoot = InputRoot;
SET OutputRoot.XML = null;
-- Set the format to be sent to the backend
-- reply application
-- SET OutputRoot.MQMD.CorrelId = InputRoot.MQMD.MsgId;
SET OutputRoot.Properties.MessageType = 'BROKER_LEGACY';
SET OutputRoot.Properties.MessageSet = 'KDL3G6S002001';
SET OutputRoot.Properties.MessageFormat = 'Binary1';
END;
END MODULE; |
|
Back to top |
|
 |
earrieta |
Posted: Mon Jun 23, 2008 12:01 pm Post subject: Message Id not in CWF File |
|
|
Newbie
Joined: 20 Jun 2008 Posts: 9
|
Grand Master i'm using MBT6.1 |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Jun 23, 2008 3:03 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'UNDEFINED'
)
(0x03000000):Text = 'Message Id not in CWF File'
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '0'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'CWFWorker::write'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'JS121M8002001'
) |
So you are passing a 'Message Id' field with value 'JS121M8002001' to the output stream but the field has not been defined as part of the output message....  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Gaya3 |
Posted: Tue Jun 24, 2008 12:03 am Post subject: Re: Message Id not in CWF File |
|
|
 Jedi
Joined: 12 Sep 2006 Posts: 2493 Location: Boston, US
|
earrieta wrote: |
CREATE PROCEDURE CopyEntireMessage() BEGIN
SET OutputRoot = InputRoot;
SET OutputRoot.XML = null;-- Set the format to be sent to the backend
-- reply application
--SET OutputRoot.MQMD.CorrelId = InputRoot.MQMD.MsgId;
SET OutputRoot.Properties.MessageType = 'BROKER_LEGACY';
SET OutputRoot.Properties.MessageSet = 'KDL3G6S002001';
SET OutputRoot.Properties.MessageFormat = 'Binary1';
END;
END MODULE; |
from your code, i really confused.
1. What is your input message format?
2. What about your output message format?
3. Why you have used XML and binary in the ESQL code? _________________ Regards
Gayathri
-----------------------------------------------
Do Something Before you Die |
|
Back to top |
|
 |
sridhsri |
Posted: Fri Jun 27, 2008 2:16 am Post subject: |
|
|
Master
Joined: 19 Jun 2008 Posts: 297
|
I don't think you should be setting
OutputRoot.XML = NULL;
This would mean that you will have no output message.
Typically, you would model the same message set to handle both formats - CWF and XML. If that is the case, you should only write the
OutputRoot.Properties.MessageType = 'MSG'
OutputRoot.Properties.MessageFormat ='XML1';
OutputRoot.Properties.MessageSet = 'MSGSET';
If you have two message sets, you should not copy
OutputRoot = InputRoot;
The purpose would be lost. You want to create a new message. I suggest that you use a mapping node or write ESQL to map each element in InputRoot to its corresponding element in the output. |
|
Back to top |
|
 |
|