【发布时间】:2017-06-21 16:50:47
【问题描述】:
作为我们应用程序安装的一部分,我需要将一堆 xml 消息放入一个 MQ 队列中。为使其更复杂,消息需要设置 RFH2-header 的 usr-folder。
我发现来自 IBM RFHUtil 的mqput2.exe 是完成这项任务的理想工具。不幸的是,我无法进行 usr 文件夹的设置,文档太模糊了。我究竟做错了什么?或者,是否有其他可用的命令行工具效果更好?
我的道具。 mqput2 的文件如下所示:
[header]
.....
*
* message type
*
* Allowed values for message type
* 1 - request
* 2 - reply
* 4 - report
* 8 - datagram
* 112 - MQE fields from MQE
* 113 - MQE fields
* 65536 to 999,999,999 - user
msgtype=8
.....
*
* rfh usage
* rfh = N for No rfh
* rfh = A for Automatic (look for RFH at beginning of data file)
* rfh = 1 or V1 for Version 1 rfh from parameters in parm file
* rfh = 2 or V2 for Version 2 rfh from parameters in parm file
* rfh = X for special V2 rfh with fixed portion only and format=xml
*
* only first character checked, except for V when second character is also checked
*
rfh=X
<usr>
<NotificationType>RDS.Codebook.Changes</NotificationType>
</usr>
.....
[filelist]
file1.xml
mqput2 只是忽略 <usr> 部分,并且不将其包含在消息中。我也尝试过rfh=A 并将<usr> 部分放在file1.xml 文件的开头,但随后出现MQPUT 错误reason=2142(无效的MQ 标头结构)。
【问题讨论】:
-
rfh=2 应该是正确的
-
rfh=2 不允许添加 usr 参数,至少根据文档:“如果指定了特定文件夹中的单个字段...此技术不能用于 pscr 或usr 文件夹...”(来自 RFHUtil 的 ih03.doc,第 88 页)。无论如何,更改为 rfh=2 后,我得到原因代码 2142。
-
查看第82页和第83页:“如果RFH参数设置为值2,那么该实用程序将构建一个RFH标头并在写入消息时将其插入数据之前。 RFH 标头中的文件夹可以指定为单个字段或 XML 格式的文本块。"
标签: ibm-mq