首页 > 解决方案 > 将消息发送到队列管理器上的本地队列,该队列管理器位于另一个队列管理器的前面

问题描述

需要有关以下情况的建议(供我个人学习):

设置如下:QM1 -> QM2 -> QM3

QM1 - 1 个别名队列(将消息放入远程队列)、1 个远程队列(发往 QM2 的本地队列)、1 个传输队列(发往 QM2)和 1 个发件人通道到 QM2 QREMOTE DEFN,如下所示:

DEFINE QREMOTE('QM1.RQ1') RQMNAME('QM2') RNAME('QM2.LQ1') XMITQ('QM2') DEFPSIST(YES)

QM2 - 1 个本地队列(从 QM1 接收消息)、1 个传输队列(到 QM3)、1 个来自 QM1 的接收器通道和 1 个到 QM3 的发送器通道

QM3 - 1 个本地队列(用于接收消息)和 1 个接收器通道(在 QM2 和 QM3 之间)

注意:QM1和QM2是连通的,QM2和QM3是连通的,但是从QM1到QM3的消息需要经过QM2才能到达QM3上的本地队列。

问题:在不修改QM2和QM3的任何设置的情况下,在QM1上配置什么才能将消息从QM1发送到QM3的本地队列?

标签: ibm-mq

解决方案


如下更改您的 QREMOTE:-

ALTER QREMOTE('QM1.RQ1') RQMNAME('QM3') RNAME('QM3.LQ1') XMITQ('QM2') 

如您所见,放入此队列的消息仍然在QM2传输队列中,当它被 SDR/RCVR 通道移动到 QM2 时,RCVR 通道将对 queue=QM3.LQ1 在 qmgr= 上执行 MQPUT QM3 然后这将解析要放置到QM3传输队列的消息,下一个 SDR/RCVR 通道会将其移动到 QM3。


推荐阅读