RFH2 - Какой формат заголовка? - PullRequest
0 голосов
/ 20 апреля 2020

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

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

Спасибо.

1 Ответ

1 голос
/ 20 апреля 2020

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

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

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 в сообщении будет отформатирован, как описано в следующих топиках c:

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" ?>. Поэтому я бы рекомендовал установить в поле «Формат» в RFH2 значение «MQFMT_NONE», чтобы документ XML обрабатывался как двоичные данные и не преобразовывался без необходимости, когда сообщение получено клиент MQ.

...