【问题标题】:Copy MQ Messages from one Queue to another将 MQ 消息从一个队列复制到另一个队列
【发布时间】:2017-07-21 09:17:16
【问题描述】:

问题

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

场景

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

要求

  • 原始消息必须留在 PROD 队列中才能正常处理。
  • 这必须是一个自动化的过程(一天中有很多消息)。我无法逐条消息地进行干预。
  • 如果可能的话,我希望通过一些本机 MQ 功能而不是临时程序/脚本来实现这一点。
  • 复制必须尽可能接近实时
  • 必须使用 MQ 版本为 7.0.2.1(!)。这无法更改。
  • 必须在 Red Hat Enterprise Linux Server 5.11 (Tikanga) 上运行。同样,无法更改。

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

提前致谢

【问题讨论】:

    标签: ibm-mq


    【解决方案1】:

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

    如果 MsgId 和/或 CorrelId 字段很重要,那么唯一的其他选项是复制消息的 MQ API 出口。您可能需要像 MQ Message Replication 这样的商业产品。

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

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

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

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

    【讨论】:

    • 您说“您绝对不想在 PROD 队列管理器和 TEST 队列管理器之间创建通道。”。这是出于“MQ 原因”还是出于良好实践,即保持 PROD 数据孤立?谢谢
    • 最佳实践 & 它将避免发生简单的事故。潘多拉的盒子——你只是不想打开它,因为可能/将会发生坏事。
    【解决方案2】:

    您所需要的只是 mqadmin 员工和technote

    【讨论】:

    • 谢谢,我今天会复习一下
    猜你喜欢
    • 2014-04-13
    • 2011-03-15
    • 2022-06-20
    • 2022-08-19
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多