Author |
Message
|
Nick |
Posted: Wed Mar 07, 2012 8:20 am Post subject: Create new output message using MRM in and MRM out. |
|
|
Newbie
Joined: 07 Mar 2012 Posts: 8
|
I have searched for a simple description of how to accomplish adding a field to an existing MRM message. In the process I have created a second message definition in the same message set with the added field. I am using a compute node to do as follows:
Set OutputRoot = InputRoot;
Set OutputLocalEnvironment = InputLocalEnvironment;
Set OutputExceptionList = InputExceptionList;
Set OutputRoot.Properties.MessageFormat = 'CWF';
Set OutputRoot.Properties.MessageSet = 'N03LEN4002001';
Set OutputRoot.Properties.MessageType = 'brand-vehicle';
IF OutputRoot.MRM.mtype = 'CYCLE' THEN
CREATE FIELD OutputRoot.MRM.brand;
Set OutputRoot.MRM.brand = 'Harley';
PROPAGATE TO TERMINAL 'out1';
END IF;
...
brand-vehicle is the definition file name of the output message definition file.
I am getting errors that have me go in circles.
parsing the input correctly as in:
(0x01000021:Name+):MRM = ( ['mrm' : 0x806e8f0]
(0x0300000B:NameValue+):wheels = '.FOUR' (CHARACTER)
(0x0300000B:NameValue+):seats = '..two' (CHARACTER)
(0x0300000B:NameValue+):engine = 'VTWIN' (CHARACTER)
(0x0300000B:NameValue+):fuel = '93OCT' (CHARACTER)
(0x0300000B:NameValue+):mtype = 'CYCLE' (CHARACTER)
)
)
Error is as follows:
( ['MQROOT' : 0x83ab020]
(0x01000000:Name):RecoverableException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\DataFlowEngine\ImbDataFlowNode.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 957 (INTEGER)
(0x03000000:NameValue):Function = 'ImbDataFlowNode::createExceptionList' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmComputeNode' (CHARACTER)
(0x03000000:NameValue):Name = 'App1Flow#FCMComposite_1_2' (CHARACTER)
(0x03000000:NameValue):Label = 'App1Flow.Compute' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2230 (INTEGER)
(0x03000000:NameValue):Text = 'Node throwing exception' (CHARACTER)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\DataFlowEngine\ImbRdl\ImbRdlStatementGroup.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 602 (INTEGER)
(0x03000000:NameValue):Function = 'SqlStatementGroup::execute' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmComputeNode' (CHARACTER)
(0x03000000:NameValue):Name = 'App1Flow#FCMComposite_1_2' (CHARACTER)
(0x03000000:NameValue):Label = 'App1Flow.Compute' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2488 (INTEGER)
(0x03000000:NameValue):Text = 'Error detected, rethrowing' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '.App1Flow_Compute.Main' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '14.4' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'PROPAGATE TO TERMINAL 'out1' FINALIZE DEFAULT DELETE DEFAULT;' (CHARACTER)
)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 909 (INTEGER)
(0x03000000:NameValue):Function = 'ImbMqOutputNode::evaluate' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmMQOutputNode' (CHARACTER)
(0x03000000:NameValue):Name = 'App1Flow#FCMComposite_1_7' (CHARACTER)
(0x03000000:NameValue):Label = 'App1Flow.BIKES' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2230 (INTEGER)
(0x03000000:NameValue):Text = 'Caught exception and rethrowing' (CHARACTER)
(0x01000000:Name ):ParserException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbParser.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 1866 (INTEGER)
(0x03000000:NameValue):Function = 'MtiImbParser::refreshBitStreamFromElements - 9 par' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmMQInputNode' (CHARACTER)
(0x03000000:NameValue):Name = 'App1Flow#FCMComposite_1_1' (CHARACTER)
(0x03000000:NameValue):Label = 'App1Flow.Q1.IN' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 5286 (INTEGER)
(0x03000000:NameValue):Text = 'ImbRecoverableException caught from worker when attempting to write out the bitstream.' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'App1MessageSet' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 2 (INTEGER)
(0x03000000:NameValue):Text = '1' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'CWF' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '/brand-vehicle' (CHARACTER)
)
(0x01000000:Name ):ParserException = (
(0x03000000:NameValue):File = 'F:\build\S610_P\src\cpi\pwf\cwf\cwfworker.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 723 (INTEGER)
(0x03000000:NameValue):Function = 'CWFWorker::initializeWrite' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPv610' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 5349 (INTEGER)
(0x03000000:NameValue):Text = 'An Attempt was made to parse/write but no descriptor was loaded for the CWF worker' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'CWF' (CHARACTER)
)
)
)
)
)
)
)
I am trying to understand what is meant by 'An Attempt was made to parse/write but no descriptor was loaded for the CWF worker' but can not figure out what descriptor needs to be loaded?
Please advise, thanks |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Mar 07, 2012 8:24 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Did you deploy the message sets? |
|
Back to top |
|
 |
Vitor |
Posted: Wed Mar 07, 2012 8:25 am Post subject: Re: Create new output message using MRM in and MRM out. |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Nick wrote: |
I have searched for a simple description of how to accomplish adding a field to an existing MRM message. In the process I have created a second message definition in the same message set with the added field. |
Why not just add the field to the existing message? Why create a new one?
I suspect the error is because the code is using the message which doesn't contain this new field so fails creating the bitstream when it encounters it. Unless you changed the code as well which is impossible to tell from your post.
Which would be easier to read if the code was in [ c o d e ] tags. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
kimbert |
Posted: Wed Mar 07, 2012 9:08 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
brand-vehicle is the definition file name of the output message definition file |
Then that is probably your problem. The 'messageType' property must be set to the name of a message in the specified message set. |
|
Back to top |
|
 |
Nick |
Posted: Wed Mar 07, 2012 9:12 am Post subject: |
|
|
Newbie
Joined: 07 Mar 2012 Posts: 8
|
Thank you all!!!!
It looks like this issue has been resolved simply by providing the proper definition file name for the output format, it is listed under the "Messages" folder and it had "msg_" in front of the name. Also since the format remained MRM these lines:
Set OutputRoot.Properties.MessageFormat = 'CWF';
Set OutputRoot.Properties.MessageSet = 'N03LEN4002001';
were removed from the ESQL. |
|
Back to top |
|
 |
kimbert |
Posted: Wed Mar 07, 2012 10:37 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
The exception list contains a very short, and not very useful error message.
If you had looked in Windows Event Viewer you would have seen the entire message. It would probably have told you to check the MessageType property.
Quote: |
It looks like this issue has been resolved simply by providing the proper definition file name for the output format |
It's not a file name, as I explained in my previous post. Sloppy terminology leads directly to bad solutions, in my experience. |
|
Back to top |
|
 |
|