远程,本地和别名队列之间有什么区别

时间:2016-09-16 07:24:52

标签: ibm-mq

有人可以通过示例帮助理解这3个队列的基本知识。当我们使用全部3个

4 个答案:

答案 0 :(得分:4)

简单地说,队列管理器只在该队列管理器上的本地或传输队列上托管消息。如果您想要转到另一个队列管理器,您可以使用定义告诉队列管理器“放置”'正在运行,如何将消息路由到目标队列管理器 - 然而这最终会在传输队列上发送一条消息,然后将其拾取并沿着通道向该目的地发送。别名队列只是为另一个队列使用不同名称的机会。远程队列是一个队列管理器上的定义,其中包含有关应将消息路由到何处的信息。

MQ文档: https://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.explorer.doc/e_queues.htm

另一种描述: https://www.scribd.com/doc/44887119/Different-Types-Queues-in-Websphere-MQ

答案 1 :(得分:4)

也许是一个更简单的解释:将本地队列视为队列管理器上存在的队列,您可以将PUT和GET消息从本地队列中删除。远程队列就像指向另一个队列管理器上的队列的指针,该队列管理器通常位于不同的主机上。因此,消息可以PUT到它(它们通常会到达该远程主机的本地队列),但是您无法从远程队列中获取消息。

答案 2 :(得分:1)

如果程序由程序所连接的队列管理器拥有,则程序将其称为本地队列;如果队列由不同的队列管理器拥有,则该队列称为远程队列。这两种类型的队列之间的重要区别在于,您只能从本地队列获取消息。 (您可以在两种类型的队列上放置消息。)

参考文献:

  1. https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.0.1/com.ibm.mq.csqzal.doc/fg10950_.htm

  2. https://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.explorer.doc/e_queues.htm

答案 3 :(得分:0)

连接到托管队列的本地QueueManager的应用程序,以便该队列将成为该应用程序的本地队列。连接到QueueManager的应用程序,该QueueManager位于远程并且托管该队列将远程队列的队列。我们应该始终记住,我们始终从本地队列中读取消息。放在远程队列上的消息将通过本地队列中定义的对象通过通道和传输队列路由到本地队列。