Ibm mq 从命令行将消息放入MQ队列

Ibm mq 从命令行将消息放入MQ队列,ibm-mq,Ibm Mq,作为应用程序安装的一部分,我需要将一组xml消息放入MQ队列中。为了使其更加复杂,消息需要设置RFH2头的usr文件夹 我发现来自IBMRFHUTIL的mqput2.exe是执行此任务的理想工具。不幸的是,我一直无法使usr文件夹的设置工作,文档太模糊。我做错了什么?或者,是否有其他更好的命令行工具可用 我的道具。mqput2的文件如下所示: [header] ..... * * message type * * Allowed values for message type * 1 - re

作为应用程序安装的一部分,我需要将一组xml消息放入MQ队列中。为了使其更加复杂,消息需要设置RFH2头的usr文件夹

我发现来自IBMRFHUTIL的
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
[标题]
.....
*
*消息类型
*
*允许的消息类型值
*1-请求
*2-答复
*4-报告
*8-数据报
*112-来自MQE的MQE字段
*113-MQE字段
*65536至99999999-用户
msgtype=8
.....
*
*rfh使用
*对于无rfh,rfh=N
*rfh=A表示自动(在数据文件开头查找rfh)
*rfh=1或版本1 rfh的V1来自parm文件中的参数
*对于版本2 rfh,rfh=2或V2,来自parm文件中的参数
*rfh=X表示仅具有固定部分且格式为xml的特殊V2 rfh
*
*仅选中第一个字符,但同时选中第二个字符时V除外
*
rfh=X
RDS.Codebook.Changes
.....
[文件清单]
file1.xml

mqput2
只是忽略
部分,不将其包含在消息中。我还尝试了
rfh=A
并将
部分放在
file1.xml
文件的开头,但随后我得到了MQPUT error
reason=2142
(无效的MQ头结构)。

我将其设置为这种方式,并且工作正常:

[header]
qname=QName
qmgr=QMName
msgcount=1
format= "MQSTR   "
codepage=1208
rfh=2
<usr>
<test>test</test>
</usr>
[filelist]
test.xml
[标题]
qname=qname
qmgr=QMName
msgcount=1
format=“MQSTR”
代码页=1208
rfh=2
测试
[文件清单]
test.xml

作为WMQ8安装的一部分,dmpmqmsg实用程序也可用于从命令行发送消息。可以通过以下方式从包含标头的队列导出消息:

dmpmqmsg -m queue_manager> -I <queue> -f <msg_file> -a
dmpmqmsg-m队列管理器>-I-f-a
然后再次通过提交(我想,请查阅文档)

dmpmqmsg-m队列管理器>-o-f

但是,此实用程序不是WMQ 7.5的一部分。

rfh=2应该是正确的onerfh=2不允许添加usr参数,至少根据文档:“如果指定了特定文件夹中的单个字段……此技术不能用于pscr或usr文件夹…”(RFHUtil的ih03.doc,第88页)。无论如何,在更改为rfh=2后,我得到了原因码2142。请参见第82页和第83页:“如果RFH参数的值设置为2,则实用程序将生成RFH头,并在写入消息时将其插入数据之前。”。RFH头中文件夹的内容可以指定为单个字段或XML格式的文本块。“这很有效,谢谢!不仅rfh必须是2,而且格式必须是MQSTR。这很奇怪,因为从RFHUtil本身来看,必须使用格式MQHRF2,而格式MQSTR不包括RFH头!?!要备份队列中的数据,可以使用IBM提供的。IBM的SupportPac已被撤销,因为在产品的v8中,它已被集成并重命名为dmpmqmsg。对于v8之前的MQ版本,您仍然可以通过上述链接下载MQ03 SupportPac。SupportPac的原始作者现在还维护一个名为“”的程序版本。有关更多信息,请参阅我对帖子“”的回答。是的,他们在您的链接中明确写道“MO03 qload现在(来自MQ v8)是产品的一部分-重命名为dmpmqmsg”。因此
qload
是WMQ 7.5的
dmpmqmsg
的前身。在v8之前,它只是为MQ提供了两种替代方案。
dmpmqmsg -m queue_manager> -o <queue> -f <msg_file>