使用IIB 10和MQ 9。 问题是,当您添加mqrfh2标头时,其部分会出现在正文中:
SET OutputRoot.MQMD.CodedCharSetId = InputRoot.Properties.CodedCharSetId;
SET OutputRoot.MQMD.Format = 'MQRFH2';
SET OutputRoot.MQMD.Version = MQMD_VERSION_2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQRFH2';
SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = MQRFH_VERSION_2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = InputRoot.Properties.CodedCharSetId;
SET OutputRoot.MQRFH2.usr.errorDescription = FIELDVALUE(Environment.Variables.exceptionMsg);
答案 0 :(得分:3)
我认为您需要阅读documentation以获取MQRFH2消息。 MQRFH2消息的所有文件夹和头均在MQ消息正文中。如果接收方应用程序无法处理MQRFH2消息,则将其视为JMS消息或具有命名属性的纯消息。
如果您不知道:
MQRFH2消息== JMS消息==具有命名属性(即消息属性)的纯消息
已更新:
我刚刚注意到这一行:
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQRFH2';
这可能是您的问题。您正在将MQRFH2消息嵌入MQRFH2消息中。更改为以下内容:
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR ';
这表示MQRFH2消息的消息数据将被视为字符串数据(即JMSTextMessage)。