首页 > 解决方案 > 是否可以设置 IBM MQ 接收器通道来接收来自两个不同队列管理器的消息

问题描述

是否可以设置 IBM MQ 接收器通道来接收来自两个不同队列管理器的消息,发送器通道名称相同。我正在研究客户希望有两个队列管理器(A 和 B)能够将消息发送到同一个目标队列管理器(C)的情况。A 和 B 在没有共享存储的主动/被动集群设置中设置。

标签: ibm-mq

解决方案


不仅可以设置 IBM MQ Receiver 通道来接收来自两个不同队列管理器的消息,而且建议这样做。

例如,在 QM3(接收队列管理器)上进行以下定义:

DEFINE CHANNEL(TO.QM3) CHLTYPE(RCVR) TRPTYPE(TCP)

然后在 QM1 和 QM2 上进行以下定义:

DEFINE CHANNEL(TO.QM3) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('qm3-host-name(qm3-port)') XMITQ(QM3)
DEFINE QLOCAL(QM3) USAGE(XMITQ)

这样做不会导致序列号问题,因为每个正在运行的接收器通道实例的状态都与通道名称和合作伙伴队列管理器名称无关,因此会有以下状态:-

  • 渠道:来自合作伙伴 QMgr QM1 的 TO.QM3
  • 渠道:来自合作伙伴 QMgr QM2 的 TO.QM3

两个通道实例可以非常愉快地同时运行,而不会相互干扰。

您可以通过在接收队列管理器 QM3 上发出以下命令来查看此状态:-

DISPLAY CHSTATUS(TO.QM3)

推荐阅读