RFH2 - Какой формат заголовка?

Я пытаюсь построить xml сообщение, чтобы внедрить его в IBM MQ.

Используемый формат должен быть RFH2. Вы знаете, есть ли у вас документация по формату (xsd?) шапки?

Спасибо.

1 ответ

RFH2 MQ - это расширяемый заголовок, состоящий из двоичной структуры фиксированного формата, за которой следует переменная часть с синтаксисом, подобным XML.

Структура описана (в общих чертах) в Центре знаний здесь:

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.ref.dev.doc/q099070_.htm

Некоторые клиенты MQ (например, JMS и.NET) автоматически добавляют к отправляемым сообщениям заголовок RFH2. Если вы используете один из этих клиентов, возможно, вам не потребуется кодировать RFH2 самостоятельно - он будет добавлен для вас.

У вас есть дополнительная информация о том, почему приложению нужен заголовок RFH2? RFH2 часто используется для передачи свойств сообщения, поэтому вам нужно будет убедиться, что вы правильно их закодировали, если вы создаете свой собственный RFH2.

Если приложение использует клиент MQ JMS или.NET, то оно будет ожидать, что заголовок RFH2 в сообщении будет отформатирован, как описано в следующем разделе:

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.dev.doc/q032000_.htm

Вы можете найти следующую служебную программу (rfhutil), полезную для понимания заголовка RFH2 и отладки вашего приложения:

https://github.com/ibm-messaging/mq-rfhutil

Обратите внимание, что переменная часть заголовка RFH2 использует синтаксис, подобный XML, но не поддерживает и не понимает всех функций XML, поэтому вам не следует пытаться включить полезную нагрузку XML в переменную часть заголовка RFH2.... Вместо этого XML-документ должен следовать за RFH2 в сообщении.

И последнее, на что следует обратить внимание: MQ может выполнять преобразование кодовых страниц в зависимости от формата и CCSID сообщения, но это редко бывает тем, что вам нужно с XML-документом (который обычно описывает кодировку символов документа, в котором оно декларируется, например: <?xml version="1.0" encoding="UTF-8" standalone="no" ?>. Поэтому я бы рекомендовал вам установить поле Format в RFH2 на "MQFMT_NONE", чтобы документ XML обрабатывался как двоичные данные и не преобразовывался без необходимости, когда сообщение получено клиентом MQ.

Другие вопросы по тегам