如何将两个文件发送到具有不同 MsgSeqNumber 的单个 MQ 消息中
How to send two files into a single MQ message with different MsgSeqNumber
下午好,
我在 unix 机器上工作。
我有两个 XML 文件,我需要将它们加载到队列中。这两个文件应该是 'considered' 一条 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。
对于第一个文件:
- 将'MQMF_MSG_IN_GROUP'放入消息描述符的字段MsgFlags。
- 在 MQPUT.
上使用“MQPMO_LOGICAL_ORDER”
- 执行 MQPUT.
第二个文件:
- 将'MQMF_LAST_MSG_IN_GROUP'放入消息描述符的字段MsgFlags。
- 在 MQPUT.
上使用选项“MQPMO_LOGICAL_ORDER”
- 执行 MQPUT.
这将为每个文件自动生成一个“GroupID”和“MsgSeqNumber”。使用标志 'MQMF_LAST_MSG_IN_GROUP' 将确保消息组是 'closed'.
这两个文件各是一条消息,但使用 MQ“消息分组”组合在一起。
是否可以在 unix 上使用 ma01_q 或 qload 来做到这一点?
ma01 和 qload 都不支持创建消息组。
您可以使用支持包 ih03 中的 mqput2 程序。 mqput2 程序可以使用文件中提供的 MQMD 头。因此,您需要将 MQMD 添加到您的文件,以及所需的消息组和序列号详细信息,然后使用 mqput2 将您的文件放入队列。
但我认为最好自己编写程序来完成此操作。
下午好,
我在 unix 机器上工作。 我有两个 XML 文件,我需要将它们加载到队列中。这两个文件应该是 'considered' 一条 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。 对于第一个文件:
- 将'MQMF_MSG_IN_GROUP'放入消息描述符的字段MsgFlags。
- 在 MQPUT. 上使用“MQPMO_LOGICAL_ORDER”
- 执行 MQPUT.
第二个文件:
- 将'MQMF_LAST_MSG_IN_GROUP'放入消息描述符的字段MsgFlags。
- 在 MQPUT. 上使用选项“MQPMO_LOGICAL_ORDER”
- 执行 MQPUT.
这将为每个文件自动生成一个“GroupID”和“MsgSeqNumber”。使用标志 'MQMF_LAST_MSG_IN_GROUP' 将确保消息组是 'closed'.
这两个文件各是一条消息,但使用 MQ“消息分组”组合在一起。
是否可以在 unix 上使用 ma01_q 或 qload 来做到这一点?
ma01 和 qload 都不支持创建消息组。
您可以使用支持包 ih03 中的 mqput2 程序。 mqput2 程序可以使用文件中提供的 MQMD 头。因此,您需要将 MQMD 添加到您的文件,以及所需的消息组和序列号详细信息,然后使用 mqput2 将您的文件放入队列。
但我认为最好自己编写程序来完成此操作。