消息中的文件夹 usr body

Folder usr coming in the message body

使用 IIB 10 和 MQ 9。 问题是,当您添加 mqrfh2 header 时,它的部分出现在 body 中:

    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);

我认为您需要阅读 documentation 以获得 MQRFH2 消息。 MQRFH2 消息的所有文件夹和 header 都在 MQ 消息 body 中。如果接收应用程序无法处理 MQRFH2 消息,则将其视为 JMS 消息或具有命名属性的普通消息。

万一你不知道:

MQRFH2 消息 == JMS 消息 == 具有命名属性(又名消息属性)的普通消息


更新:

我刚刚注意到这一行:

SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQRFH2';

这可能是你的问题。您正在 MQRFH2 消息中嵌入 MQRFH2 消息。更改为以下内容:

SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR   ';

这表示 MQRFH2 消息的消息数据将被视为字符串数据(即 JMSTextMessage)。