首页 > 解决方案 > IBM MQ 消息复制到新队列

问题描述

我需要在特定时间段内将消息从一个队列实时复制到另一个队列。我们该如何配置呢?使用 IBM MQ 可以进行手动切换。用例就像..我的主队列连接到主应用程序。当主要应用程序出现故障时,我需要使用辅助队列通过辅助应用程序处理数据。一旦主应用程序启动,它就会从主队列中挑选数据并重新处理它。

所以这里 MQ 交换机应该在停机时将数据从主队列复制/复制到辅助队列。以便辅助应用程序可以进行处理。

我浏览了文档并了解可以进行复制,但不确定如何在特定时期内使用手动开关(ON / OFF)。

感谢你的帮助。

标签: ibm-mqmq

解决方案


您要求的是 MQ 了解您的应用程序基础架构。那是不可能的。

解决方案#1:

为什么不将所有消息复制/复制到辅助队列,然后让辅助应用程序仅在主队列的 IPPROCS 为零时处理消息。一旦主队列的 IPPROCS 不为零,则丢弃辅助队列中的消息。

解决方案#2:

创建第三个应用程序来监控主队列的 IPPROCS。当它为零时,开始将消息复制到辅助队列。注意:当第三个应用程序打开主队列时,IPPROCS 将为 1。因此,当主队列的 IPPROCS 为 2(或更大)时,停止复制消息并关闭主队列。

解决方案#3:

将涉及第 3 方解决方案。您可以使用MQ 消息复制(MQMR) 将主队列中的消息复制/复制到辅助队列。根据需要配置 MQMR,但将其设置为非活动状态。当主应用程序关闭/离线时,立即将 MQMR 更改为活动状态。当主应用程序启动并再次运行时,将 MQMR 切换回非活动状态。

解决方案4:

该解决方案是解决方案#1 和#3 的组合。使用MQMR 将主队列中的所有消息复制/复制到辅助队列。如果主队列的 IPPROCS 为零,则让您的辅助应用程序仅处理消息。一旦主队列的 IPPROCS 不为零,则丢弃辅助队列中的消息。


推荐阅读