您有两个系统都使用自己的 WebSphere MQ 队列管理器。对于这个答案,我将它们称为 QM1 和 QM2。您需要进行如下定义才能将它们连接在一起。
在 QM1 上创建这些:
DEFINE QLOCAL(QM2) USAGE(XMITQ) +
DESCR('Transmission queue for messages being delivered to QM2')
DEFINE CHANNEL(TO.QM2) CHLTYPE(SDR) CONNAME('ipaddr-qm2(port-qm2)') XMITQ(QM2) +
DESCR('Sender channel to move messages to QM2')
DEFINE CHANNEL(TO.QM1) CHLTYPE(RCVR) +
DESCR('Receiver channel is receive messages from QM1')
在 QM2 上创建这些:
DEFINE QLOCAL(QM1) USAGE(XMITQ) +
DESCR('Transmission queue for messages being delivered to QM1')
DEFINE CHANNEL(TO.QM1) CHLTYPE(SDR) CONNAME('ipaddr-qm1(port-qm1)') XMITQ(QM1) +
DESCR('Sender channel to move messages to QM1')
DEFINE CHANNEL(TO.QM2) CHLTYPE(RCVR) +
DESCR('Receiver channel is receive messages from QM2')
您还可以考虑创建数字证书并使用各种 SSL/TLS 设置来保护两个队列管理器之间的这些连接。
您大概有一个队列,其中放置了需要移动到其他系统的消息?
如果您将该队列设置为 QREMOTE 而不是 QLOCAL,那么您可以将其通过上述通道汇集到另一个系统。
DEFINE QREMOTE(SEND.TO.QM2) RNAME(Q.ON.QM2) RQMNAME(QM2) XMITQ(QM2)
如果您在 QM1 上的 QLOCAL 上已经有消息需要到达 QM2(反之亦然),那么您将需要一个简单的管道应用程序来从它们当前所在的位置获取它们并将它们放入上面定义的 QREMOTE。像 QLOAD 这样的东西可以做到这一点。