Ibm mq 将消息发送到MQOutput节点

Ibm mq 将消息发送到MQOutput节点,ibm-mq,middleware,messagebroker,Ibm Mq,Middleware,Messagebroker,只想确认MQ向MQOutput节点传递消息的正确方式。最近遇到了一种情况,我感到有点困惑。下面是一个场景 我在Qmgr上有一个本地队列,比如(a),它接收来自应用程序的消息,并有一个与此Qmgr关联的本地代理(a),它部署了一个消息流,它使用此队列中的消息,并将其放到队列管理器(B)上的另一个本地(L.B)队列中 要成功地将消息传递给qmgr(B),我必须 在Qmgr(a)上创建远程队列定义,传输队列名称与远程队列管理器名称匹配,此处(B) MQOutput node值设置为,queue->re

只想确认MQ向MQOutput节点传递消息的正确方式。最近遇到了一种情况,我感到有点困惑。下面是一个场景

我在Qmgr上有一个本地队列,比如(a),它接收来自应用程序的消息,并有一个与此Qmgr关联的本地代理(a),它部署了一个消息流,它使用此队列中的消息,并将其放到队列管理器(B)上的另一个本地(L.B)队列中

要成功地将消息传递给qmgr(B),我必须

  • 在Qmgr(a)上创建远程队列定义,传输队列名称与远程队列管理器名称匹配,此处(B) MQOutput node值设置为,queue->remote queue definition name(A)上的队列->远程队列定义名称和队列管理器值设置为空白

  • 要仅创建与远程队列管理器名称匹配的传输队列,请单击此处(B)。 MQOutput节点值设置为队列->目标本地队列(L.B),队列管理器值设置为(B)

  • 当我执行第一个进程时,注意到消息到达了目的地,当我执行后一个进程时,注意到消息位于本地队列中

    当需要将消息丢弃到“n”个本地队列时,是否需要始终创建“n”个远程队列定义


    请引导我更好地理解这一点。提前感谢各位。

    无需创建n个远程队列定义,MQ乐意接受“队列管理器名称”上标记为“队列名称”的输出

    你在使用方法2时会这么说。您的消息“正在本地队列中”。要解决此问题,您必须检查以下几项

    • 我假设命名队列L.B是在QMgr B上定义的,而不是QMgr A
    • 我假设消息所在的本地队列是传输队列
    • 您是否定义了一个通道,用于从被卡住的传输队列中读取消息
    • 您是否启动了将消息从传输队列移动到QMgr B的通道

    感谢您对这款摩拉格的建议,现在它的图片非常完美。是的,正如您提到的,它正在传输队列中。为此目的创建的通道使用了不同于我预期的XMIT队列。重新打印以使用正确的一个,它现在正在工作。每次我认为远程队列在这里有用处。。最终,您了解了在这种情况下,传递消息不一定需要远程队列。再次感谢。还有@Morag Hughson,如果我知道这是如何工作的,我会非常高兴。我们没有像远程队列定义那样,将本地队列显式指向传输队列。但在这种情况下,MQ是如何从本地队列中挑选MSG到传输队列并将其传递到目的地的呢?再次提前感谢。队列管理器将通过一个名为“队列名称解析”的过程来发现要将消息放置在哪个传输队列上。如果使用QREMOTE对象,它将在其中查找XMITQ,如果直接使用队列名称和队列管理器名称,它将使用相同名称的传输队列。还有相当多的其他案例。请阅读有关“队列名称解析”的内容,谢谢@Morag Hughson