Posted: Fri Mar 20, 2009 6:51 am Post subject: Updates to MQRFH2 Header from ComputeNode are ignored
Newbie
Joined: 18 Mar 2009 Posts: 6
I have the following ESQL in a Compute Node to add the MQRFH2 Header, and set the properties so that a JMS client will interpret the message as JMSText.
Code:
CREATE PROCEDURE AddMQRFH2Header()
BEGIN
IF NOT EXISTS(OutputRoot.MQRFH2[]) THEN
CREATE NEXTSIBLING OF OutputRoot.MQMD DOMAIN 'MQRFH2';
SET OutputRoot.MQMD.Format = MQFMT_RF_HEADER_2;
END IF;
SET OutputRoot.MQRFH2.(MQRFH2.Field)StrucId = MQRFH_STRUC_ID;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = MQRFH_VERSION_2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Struclength = MQRFH_STRUC_LENGTH_FIXED_2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Encoding = MQENC_NATIVE;
SET OutputRoot.MQRFH2.(MQRFH2.Field)CodedCharSetId = MQCCSI_INHERIT;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = MQFMT_STRING ;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Flags = MQRFH_NONE;
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;
SET OutputRoot.MQRFH2.mcd.Msd = 'jms_text';
SET OutputRoot.MQRFH2.mcd.Set = '';
SET OutputRoot.MQRFH2.mcd.Type = '';
SET OutputRoot.MQRFH2.mcd.Fmt = '';
END;
When I inspect the Message tree after exitting the Compute node, the MQRFH2 header has been added, but some of my SETs have been ignored.
Code:
MQRFH2
StrucId:CHARACTER:RFH
Version:INTEGER:2
Struclength:INTEGER:36
Encoding:INTEGER:546
CodedCharSetId:INTEGER:-2
Format:CHARACTER:MQSTR
Flags:INTEGER:0
NameValueCCSID:INTEGER:1208
mcd
Msd
CHARACTER:xmlnsc
Set
CHARACTER:PIMR Service Message Set
Type
CHARACTER:{http://www.iqsolutions.com/PIMR-Service}:PIMRServiceCall
Fmt
CHARACTER:XML1
If an MQRFH2 header is present in an output message tree, an <mcd> folder is always added and populated. This is so that the MQRFH2 header accurately reflects the message template of the message. The <mcd> folder must not be removed from the MQRFH2 folder. If it is deleted - for example, by a Compute node - it is automatically added and populated again on exit from the node.
You can achieve what you want by putting an RCD node after the compute, specifying jms_text in the message domain field and ticking the "Reset Message Domain" box.
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