RFH2-标头的格式是什么?

问题描述 投票:0回答:1

我尝试构建一个xml消息以将其注入到IBM MQ中。

要使用的格式应为RFH2。您知道吗,您是否有关于标题格式(xsd?)的任何文档?

谢谢。

ibm-mq rfh2
1个回答
0
投票

MQ的RFH2是可扩展标头,由固定格式的二进制结构和紧随其后的可变部分组成,这些可变部分具有类似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文档通常这样描述它自己的声明的字符编码,如下所示: :)。因此,我建议您将RFH2中的“格式”字段设置为“ MQFMT_NONE”,以便当MQ客户端收到消息时,将XML文档视为二进制数据,而不进行不必要的转换。

© www.soinside.com 2019 - 2024. All rights reserved.