ibm-mq - 是否可以设置 IBM MQ 接收器通道来接收来自两个不同队列管理器的消息
问题描述
是否可以设置 IBM MQ 接收器通道来接收来自两个不同队列管理器的消息,发送器通道名称相同。我正在研究客户希望有两个队列管理器(A 和 B)能够将消息发送到同一个目标队列管理器(C)的情况。A 和 B 在没有共享存储的主动/被动集群设置中设置。
解决方案
不仅可以设置 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)
推荐阅读
- python - 在 Python 中使用 GPIOZero 打开和关闭 OpenCV 窗口
- javascript - Selenium 测试:使用 Webauthn 进行身份验证
- python - 摆脱日志消息中的字符串填充
- python - 如何使用嵌入预测下一个单词
- c++ - 为什么非 const 引用不能初始化为不同类型的对象?
- azure-devops - 如何通过 API 修改 Azure Pipeline 的服务端点?
- javascript - 我的 javascript 代码没有链接到 dom
- typescript - 如何在打字稿中创建不可分配的数字?
- html - 在 React 应用程序中添加/删除类后 SVG 消失
- reactjs - 语法错误 - React js Render 中的条件语句