Папка usr идет в теле сообщения - PullRequest
0 голосов
/ 13 мая 2019

Использование IIB 10 и MQ 9. Проблема в том, что при добавлении заголовка mqrfh2 его часть появляется в теле:

RFHUtil screenshot

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

1 Ответ

3 голосов
/ 13 мая 2019

Я думаю, вам нужно прочитать документацию для сообщения 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).

...