下午好,
我正在使用Unix机器工作。 我有两个XML文件,需要将它们加载到队列中。这两个文件应该被“考虑”为一条MQ消息。
首先,我尝试将文件串联在一起,并使用
ma01_q -o QueueName -m ManagerQueue -F Filename;
但是,邮件的接收者未能成功区分两个文件。他向我提供了十六进制消息中应有的部分内容:
...
A GRP 000...
A MSQ 1
...
A MSF 8
...
The content of the first file in hexadecimal
...
A GRP 000...
A MSQ 2
...
A MSF 24
...
The content of the second file in hexadecimal
因此,根据他的说法,我应该使用GroupId和MsgSeqNumber参数。对于第一个文件:
对于第二个文件:
这将为每个文件自动生成一个“ GroupID ”和“ MsgSeqNumber ”。使用标志“ MQMF_LAST_MSG_IN_GROUP ”将确保消息组被“关闭”。
这两个文件均为一条消息,但是使用MQ“消息分组”分组在一起。
是否可以使用ma01_q或qload在UNIX上执行此操作?
ma01和qload都不支持创建消息组。
你可以使用支持包ih03中的mqput2程序。mqput2程序可以使用文件中提供的MQMD标头。因此,你需要将MQMD添加到文件中,并带有所需的消息组和序列号详细信息,然后使用mqput2将文件放入队列中。
但是我认为最好编写自己的程序来做到这一点。