将消息发送到另一个队列管理器前面的队列管理器上的本地队列

Sending messages to a local queue on a queue manager that is fronted by another queue manager

需要以下场景的建议(供我个人学习):

设置如下: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 的本地队列?

按如下方式更改您的 QREMOTE:-

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

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