Author |
Message
|
mmarq |
Posted: Thu Nov 14, 2002 1:53 pm Post subject: OutputRoot.MRM will not go to Output queue |
|
|
Acolyte
Joined: 19 Sep 2002 Posts: 74 Location: Newton, MA
|
I have a compute node doing the following:
set OutputRoot.Properties.MessageDomain = 'MRM';
set OutputRoot.Properties.MessageFormat = 'MRM';
-- Place contact admin records into the environment tree
declare aSpace character;
declare CF reference to Environment.Variables.CommonFormat;
-- set contact admin record up as a straight mapping per PA address (up to two), in
-- order that Trillium expects
set "OutputRoot"."MRM"."contact admin"."sourceNm" = CF.contact admin.sourceNm;
set "OutputRoot"."MRM"."contact admin"."key1" = CF.contact admin.key1;
set "OutputRoot"."MRM"."contact admin"."key2" = CF.contact admin.key2;
set "OutputRoot"."MRM"."contact admin"."key3" = CF.contact admin.key3;
set "OutputRoot"."MRM"."contact admin"."key4" = CF.contact admin.key4;
set "OutputRoot"."MRM"."contact admin"."key5" = CF.contact admin.key5;
set "OutputRoot"."MRM"."contact admin"."tinType" = CF.contact admin.tinType;
set "OutputRoot"."MRM"."contact admin"."tin" = CF.contact admin.tin;
set "OutputRoot"."MRM"."contact admin"."naLine1" = CF.contact admin.naLine1;
set "OutputRoot"."MRM"."contact admin"."naLine2" = CF.contact admin.naLine2;
set "OutputRoot"."MRM"."contact admin"."naLine3" = CF.contact admin.naLine3;
set "OutputRoot"."MRM"."contact admin"."naLine4" = CF.contact admin.naLine4;
set "OutputRoot"."MRM"."contact admin"."naLine5" = CF.contact admin.naLine5;
set "OutputRoot"."MRM"."contact admin"."naLine6" = CF.contact admin.naLine6;
set "OutputRoot"."MRM"."contact admin"."naLine7" = CF.contact admin.naLine7;
set "OutputRoot"."MRM"."contact admin"."naLine8" = CF.contact admin.naLine8;
set "OutputRoot"."MRM"."contact admin"."naLine9" = CF.contact admin.naLine9;
set "OutputRoot"."MRM"."contact admin"."naLine10" = CF.contact admin.naLine10;
set "OutputRoot"."MRM"."contact admin"."prefix1" = CF.contact admin.prefix1;
set "OutputRoot"."MRM"."contact admin"."prefix2" = CF.contact admin.prefix2;
set "OutputRoot"."MRM"."contact admin"."generation" = CF.contact admin. generation;
I get the following exception:
Exception Captured:
(
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S210_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x3000000)Line = 536
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmMQOutputNode'
(0x3000000)Name = '8ae90e84-f100-0000-0080-a6bb25bdd760.75097c75-f100-0000-0080-a6bb25bdd760'
(0x3000000)Label = 'CDB.Realtime Update Main.CDB.Trillium Call1.Xmit Rec To Trillum'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)ParserException = (
(0x3000000)File = 'F:\build\S210_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbParser.cpp'
(0x3000000)Line = 1133
(0x3000000)Function = 'MtiImbParser::refreshBitStreamFromElements - 9 par'
(0x3000000)Type = 'ComIbmMQInputNode'
(0x3000000)Name = 'b67349e4-f000-0000-0080-f214b96ba085'
(0x3000000)Label = 'CDB.Realtime Update Main.CLL Key Xmit'
(0x3000000)Text = 'RM Descriptor Not Found.'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 5313
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'rmLoadWorker'
)
)
)
)
I just want what I'm setting up in the OutputRoot to go the the queue specific in the MQOutput node
Thanks,
Melissa _________________ M Marquis |
|
Back to top |
|
 |
kwelch |
Posted: Thu Nov 14, 2002 2:28 pm Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 255
|
Melissa,
Should you have set OutputRoot.Properties.MessageFormat = 'CWF'; instead of set OutputRoot.Properties.MessageFormat = 'MRM'; ?
Did you deploy your messageset?
Karen |
|
Back to top |
|
 |
mmarq |
Posted: Thu Nov 14, 2002 2:45 pm Post subject: Reply |
|
|
Acolyte
Joined: 19 Sep 2002 Posts: 74 Location: Newton, MA
|
Thanks for the reply.
I'd like the output just to go out as a string. How do I do that? _________________ M Marquis |
|
Back to top |
|
 |
kwelch |
Posted: Thu Nov 14, 2002 2:59 pm Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 255
|
Based on your code you are using a fixed format defined in the MRM correct? Is this code after other code, as I see you are moving things from the Environment? You have to check environment and message in the advanced tab of the compute node for that too.
I also noticed you didn't specify your messagset. Usually for output that is going to be MRM, you have something like the following in your code:
SET OutputRoot.Properties.MessageSet = 'DPHNBDS08E001';
SET OutputRoot.Properties.MessageType = 'out_msg';
SET OutputRoot.Properties.MessageFormat = 'CWF';
Just some suggestions. I wasn't sure what you meant by just string on the output. Hope this helps.
Karen |
|
Back to top |
|
 |
mmarq |
Posted: Fri Nov 15, 2002 8:24 am Post subject: Reply |
|
|
Acolyte
Joined: 19 Sep 2002 Posts: 74 Location: Newton, MA
|
Thanks for the reply.
I've got the message hitting the queue but it is empty.
I have the compute node passing 'All' in the advanced tab.
I have Copy Entire Message. I know there is data in the Environment.Variables area as I can see it in the trace.
The code looks like:
SET OutputRoot.Properties.MessageSet = 'DR8ES08072001';
SET OutputRoot.Properties.MessageDomain = 'MRM';
SET OutputRoot.Properties.MessageType = 'contact admin';
SET OutputRoot.Properties.MessageFormat = 'CWF';
-- Place contact admin records into the environment tree
declare aSpace character;
declare CF reference to Environment.Variables.CommonFormat;
DECLARE MyOutput REFERENCE TO OutputRoot.MRM;
-- set contact admin record up as a straight mapping per PA address (up to two), in
-- order that Trillium expects
set MyOutput.sourceNm = CF.contact admin.sourceNm;
set MyOutput.key1 = CF.contact admin.key1;
set MyOutput.key2 = CF.contact admin.key2;
set MyOutput.key3 = CF.contact admin.key3;
set MyOutput.key4 = CF.contact admin.key4;
set MyOutput.key5 = CF.contact admin.key5;
set MyOutput.tinType = CF.contact admin.tinType;
set MyOutput.tin = CF.contact admin.tin;
set MyOutput.naLine1 = CF.contact admin.naLine1;
set MyOutput.naLine2 = CF.contact admin.naLine2;
set MyOutput.naLine3 = CF.contact admin.naLine3;
set MyOutput.naLine4 = CF.contact admin.naLine4;
set MyOutput.naLine5 = CF.contact admin.naLine5;
set MyOutput.naLine6 = CF.contact admin.naLine6;
set MyOutput.naLine7 = CF.contact admin.naLine7;
set MyOutput.naLine8 = CF.contact admin.naLine8;
set MyOutput.naLine9 = CF.contact admin.naLine9;
set MyOutput.naLine10 = CF.contact admin.naLine10;
set MyOutput.prefix1 = CF.contact admin.prefix1;
set MyOutput.prefix2 = CF.contact admin.prefix2;
set MyOutput.generation = CF.contact admin. generation;
set MyOutput.suffix1 = CF.contact admin.suffix1;
set MyOutput.suffix2 = CF.contact admin.suffix2;
set MyOutput.suffix3 = CF.contact admin.suffix3;
set MyOutput.fgnAdrInd = CF.contact admin.fgnAdrInd;
set MyOutput.addressType = CF.contact admin.addressType;
set MyOutput.addressID = ' ';
set MyOutput.startDt = CF.contact admin.startDt;
set MyOutput.dob = CF.contact admin.dob;
set MyOutput.dod = CF.contact admin.dod;
set MyOutput.dcsdInd = CF.contact admin.dcsdInd;
set MyOutput.gender = CF.contact admin.gender;
set MyOutput.spousalInd = CF.contact admin.spousalInd;
set MyOutput.lastUpdateDt = CF.contact admin.lastUpdateDt;
set MyOutput.personalTitle = CF.contact admin.personalTitle;
set MyOutput.partyCapacity = CF.contact admin.partyCapacity;
set MyOutput.stateCopyCode = CF.contact admin.stateCopyCode;
set MyOutput.clientStatus = CF.contact admin.clientStatus;
set MyOutput.serviceType = CF.contact admin.serviceType;
set MyOutput.ownershipType = CF.contact admin.ownershipType;
set MyOutput.businessInd = CF.contact admin.businessInd;
set MyOutput.insertDt = CF.contact admin.insertDt;
set MyOutput.tinInvValueInd = CF.contact admin.tinInvValueInd;
set MyOutput.tinInvRangeInd = CF.contact admin.tinInvRangeInd;
set MyOutput.startDtInvInd = CF.contact admin.startDtInvInd;
set MyOutput.dobInvInd = CF.contact admin.dobInvInd;
set MyOutput.dodInvInd = CF.contact admin.dodInvInd;
set MyOutput.lastUpdDtInvInd = CF.contact admin.lastUpdDtInvInd;
set MyOutput.insertDtInvInd = CF.contact admin.insertDtInvInd;
set MyOutput.tinInvFmtInd = CF.contact admin.tinInvFmtInd;
set MyOutput.taxInvTxt = CF.contact admin.taxInvTxt;
set MyOutput.startDtInvTxt = CF.contact admin.startDtInvTxt;
set MyOutput.dobInvTxt = CF.contact admin.dobInvTxt;
set MyOutput.dodInvTxt = CF.contact admin.dodInvTxt;
set MyOutput.lastUpdDateInvTxt = CF.contact admin.lastUpdDateInvTxt;
set MyOutput.insertDateInvTxt = CF.contact admin.insertDateInvTxt;
set MyOutput.tinTxt = CF.contact admin.tinTxt;
set MyOutput.partyType = CF.contact admin.partyType;
set MyOutput.partyID = ' ';
set MyOutput.firstNameChgInd = CF.contact admin.firstNameChgInd;
set MyOutput.MidNameChgInd = CF.contact admin.MidNameChgInd;
set MyOutput.LastNameChgInd = CF.contact admin.LastNameChgInd;
set MyOutput.tinChgInd = CF.contact admin.tinChgInd;
set MyOutput.line3ChgInd = CF.contact admin.line3ChgInd;
set MyOutput.line4ChgInd = CF.contact admin.line4ChgInd;
set MyOutput.line5ChgInd = CF.contact admin.line5ChgInd;
set MyOutput.line6ChgInd = CF.contact admin.line6ChgInd;
set MyOutput.prefix1ChgInd = CF.contact admin.prefix1ChgInd;
set MyOutput.suffix1ChgInd = CF.contact admin.suffix1ChgInd;
set MyOutput.fgnAdrChgInd = CF.contact admin.fgnAdrChgInd;
set MyOutput.addressTypeChgInd = CF.contact admin.addressTypeChgInd;
set MyOutput.dobChgInd = CF.contact admin.dobChgInd;
set MyOutput.dodChgInd = CF.contact admin.dodChgInd;
set MyOutput.genderChgInd = CF.contact admin.genderChgInd;
set MyOutput.spousalChgInd = CF.contact admin.spousalChgInd;
set MyOutput.personalTitleChgInd = CF.contact admin.personalTitleChgInd;
set MyOutput.cityChgInd = CF.contact admin.cityChgInd;
set MyOutput.stateChgInd = CF.contact admin.stateChgInd;
set MyOutput.postalCodeChgInd = CF.contact admin.postalCodeChgInd;
set MyOutput.generationChgInd = CF.contact admin.generationChgInd;
set MyOutput.clientType = CF.contact admin.clientType;
set MyOutput.clientTypeChgInd = CF.contact admin.clientTypeChgInd;
set MyOutput.descChgInd = CF.contact admin.descChgInd;
set MyOutput.addressType2ChgInd = CF.contact admin.addressType2ChgInd;
set MyOutput.addressType2 = CF.contact admin.addressType2;
set MyOutput.miscChgInd1 = CF.contact admin.miscChgInd1;
set MyOutput.miscChgInd2 = CF.contact admin.miscChgInd2;
set MyOutput.miscChgInd3 = CF.contact admin.miscChgInd3;
set MyOutput.miscChgTxt1 = CF.contact admin.miscChgTxt1;
set MyOutput.miscChgTxt2 = CF.contact admin.miscChgTxt2;
set MyOutput.trilliumFlag = 3; -- This is set to scenario 3 as we are only
-- doing adds.
set Environment.Variables.Outbound.contact admin = OutputRoot.MRM;
I never see Environment.Variables.Outbound. It places a message on the queue but it is of zero length. I know I have data in my CF.contact admin area as I see it in the trace file:
(0x1000000)contact admin = (
(0x3000000)key1 = 524720075
(0x3000000)sourceNm = 'P'
(0x3000000)partyID = -1
(0x3000000)partyType = 'P'
(0x3000000)naLine1 = 'MARIA SOPHIA TAYLORS'
(0x3000000)suffix1 = 'NA'
(0x3000000)firstNameChgInd = 'Y'
(0x3000000)MidNameChgInd = 'Y'
(0x3000000)LastNameChgInd = 'Y'
(0x3000000)generation = ''
(0x3000000)generationChgInd = ' '
(0x3000000)personalTitle = ''
(0x3000000)personalTitleChgInd = ' '
(0x3000000)prefix1 = 'NA'
(0x3000000)prefix1ChgInd = 'N'
(0x3000000)suffix1ChgInd = ' '
(0x3000000)dob = DATE '1976-08-01'
(0x3000000)dobChgInd = 'Y'
(0x3000000)dod = DATE '0001-01-01'
(0x3000000)dodChgInd = 'Y'
(0x3000000)dodInvInd = ''
(0x3000000)gender = 'F'
(0x3000000)genderChgInd = 'Y'
(0x3000000)spousalInd = 'S'
(0x3000000)spousalChgInd = 'Y'
(0x3000000)descChgInd = ''
(0x3000000)clientType = ''
(0x3000000)clientTypeChgInd = ''
....
So, I get a message on the queue but no data - any clues?
Thanks,
Melissa _________________ M Marquis |
|
Back to top |
|
 |
kwelch |
Posted: Fri Nov 15, 2002 9:01 am Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 255
|
have you tried it without using references? Just a thought, if you are sure your data is in Environment.Variables try for one field to use the full names and see if it works.
set OutputRoot.MRM.sourceNm = Environment.Variables.CommonFormat.contact admin.sourceNm;
If you are using MRM for your output, I am surprised it would let you Put a no length message! I ususally get errors if I don't format every field defined in the MRM.
Good Luck!
Karen |
|
Back to top |
|
 |
mmarq |
Posted: Fri Nov 15, 2002 10:24 am Post subject: Reply |
|
|
Acolyte
Joined: 19 Sep 2002 Posts: 74 Location: Newton, MA
|
Thanks for all your replies.
If I want my messages to go out as variable length strings - what format should I use and/or specify in OutputRoot.Properties.MessageFormat?
Do I have to use MRM to do this?
THanks,
Melissa _________________ M Marquis |
|
Back to top |
|
 |
kwelch |
Posted: Fri Nov 15, 2002 11:00 am Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 255
|
I am not sure exactly what would be the best format for you to use. Have you looked at Ch. 3 in the Working with Messages Manual? Maybe this will help clear a few things up for you. If not .....post some more detail of what you are trying to do and I will try to help.
Karen |
|
Back to top |
|
 |
mmarq |
Posted: Fri Nov 15, 2002 11:16 am Post subject: Reply |
|
|
Acolyte
Joined: 19 Sep 2002 Posts: 74 Location: Newton, MA
|
Thanks again for the reply.
Yes, I've been pouring through the 'Working with Messages' manual.
Soo, I have the following information set up in my Environment tree that has been through a series of data transformations:
(0x1000000)contact admin = (
(0x3000000)key1 = 524720075
(0x3000000)sourceNm = 'P'
(0x3000000)partyID = -1
(0x3000000)partyType = 'P'
(0x3000000)naLine1 = 'MARIA SOPHIA TAYLORS'
(0x3000000)suffix1 = 'NA'
(0x3000000)firstNameChgInd = 'Y'
(0x3000000)MidNameChgInd = 'Y'
(0x3000000)LastNameChgInd = 'Y'
(0x3000000)dob = DATE '1976-08-01'
...
I want to take that information and send it to an output queue so it will look like:
524720075 -1 P MARIA SOPHIA TAYLORS NA Y Y Y DATE '1976-08-01'
Basically one record in ASCII format on the queue.
In MRM - I get TDF, CWF, XML or PDF. None of those are what I need. Then I have XML, JMS, BLOB - we are not in a JMS env, XML is definitely not it and BLOB is a bunch of bytes.
My basic question I guess is, is there *any* way to put strings out on a queue from MQSI?
Thanks much for your reply. This has really got me going nuts.
-M _________________ M Marquis |
|
Back to top |
|
 |
kwelch |
Posted: Fri Nov 15, 2002 11:41 am Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 255
|
My understanding is it won't be the same elements every time either is that correct? It could be 1 or all or some unknown combination? Why won't tagged delimited work for you? I have not used it but thought maybe it would work for you. |
|
Back to top |
|
 |
mmarq |
Posted: Fri Nov 15, 2002 12:16 pm Post subject: Reply |
|
|
Acolyte
Joined: 19 Sep 2002 Posts: 74 Location: Newton, MA
|
The output data is not tagged or delimited with anything so it does not seem appropriate for use. It is variable length (non-delimeted) data.
I can't believe how hard it is to get a string to write out to an output queue. _________________ M Marquis |
|
Back to top |
|
 |
kirani |
Posted: Sat Nov 16, 2002 10:35 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Melissa,
If you want to output just a string message then use BLOB domain. First create a string data from Environment tree and then use ESQL similar to following:
Code: |
SET OutputRoot."BLOBL"."BLOB" = CAST (stringvar as BLOB CCSID InputRoot.Properties.CodedCharSetId);
|
Make sure you use CAST function to cast numeric fields to string before combining them. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
|