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

时间:2017-07-21 09:17:17

标签: ibm-mq

问题

是否可以将MQ消息从一个队列管理器/队列复制到另一个队列管理器/队列?

方案

我有一个“PROD”队列管理器,当它在队列上收到消息时,我想将消息“复制”到“TEST”队列管理器上的队列中。

要求

  • 原始邮件必须保留在PROD队列中才能正常处理。
  • 这必须是一个自动化过程(一天中的大量消息)。我不能干预消息的消息。
  • 如果可能的话,我希望通过一些本机MQ功能而不是ad hoc程序/脚本来实现它。
  • 复制必须尽可能接近实时
  • 必须使用MQ版本是7.0.2.1(!)。这不能改变。
  • 必须在Red Hat Enterprise Linux Server版本5.11(Tikanga)上运行。再说一次,不能改变。

我不是MQ专家所以请小言辞

提前致谢

2 个答案:

答案 0 :(得分:1)

您需要的只是mqadmin员工和technote

答案 1 :(得分:1)

gouda指出的technote的唯一问题是MQ将修改/更改每个复制消息的MsgId和CorrelId。

如果MsgId和/或CorrelId字段很重要,那么唯一的另一个选项是复制消息的MQ API Exit。您可能需要MQ Message Replication等商业产品。

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

有许多工具可以将PROD消息卸载到文件中,然后您可以将文件移动到TEST环境,然后将消息加载到TEST队列中。以下是可以执行此操作的MQ tools列表。您应该尝试的两个工具是:MQ Batch Toolkit和QLoad。

就个人而言,我会创建一个计划任务(CRONTAB),每晚午夜运行以关闭消息,我会将文件名包括日期和时间。该脚本的最后几个步骤是压缩/压缩文件并删除原始文件(因为您卸载的数据可能非常庞大)。

因此,只要您想要特定日期的PROD消息,只需将文件复制到TEST服务器并解压缩/解压缩并将其加载到队列中。