将 MQ 消息从一个队列复制到另一个队列

Copy MQ Messages from one Queue to another

问题:

是否可以将 MQ 消息从一个队列 Manager/Queue 复制到另一个队列 Manager/Queue?

场景:

我有一个 "PROD" 队列管理器,当它在其队列上收到消息时,我想 "copy" 将消息发送到 "TEST" 队列管理器上的队列。

要求

我不是 MQ 专家所以请使用小词

提前致谢

您只需要 mqadmin 员工和这个 technote

gouda 指出的 technote 的唯一问题是 MQ 将 modify/changed 复制每条消息的 MsgId 和 CorrelId。

如果 MsgId and/or CorrelId 字段很重要,那么唯一的其他选项是复制消息的 MQ API 出口。您可能需要像 MQ Message Replication.

这样的商业产品

下一个问题是如何将消息从 PROD 队列移动到 TEST 队列?您绝对不想在 PROD 队列管理器和 TEST 队列管理器之间创建通道。

有很多工具可以将 PROD 消息卸载到一个文件中,然后您可以将该文件移动到您的 TEST 环境中,然后将消息加载到 TEST 队列中。这是可以做到的 MQ tools 列表。您应该试用的 2 个工具是:MQ Batch Toolkit 和 QLoad。

就个人而言,我会创建一个计划任务 (CRONTAB) 运行 每晚午夜关闭消息,我会让文件名包含日期和时间。脚本的最后一步是 zip/compress 文件并删除原始文件(因为您卸载的数据可能很大)。

因此,任何时候您需要特定日期的 PROD 消息,只需将文件复制到您的 TEST 服务器,然后 unzip/uncompress 并将其加载到队列中。