- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想将单个队列连接到多个队列管理器(至少 2 qmgrs)。假设我有 qmgrA 和 qmgrB
作为队列管理器,并且它连接到 queueName
。我将向连接到 qmgrA 的 queueName 发送一条消息 “Hello”,并在 qmgrB 上发送另一条消息 “World”。所以假设 queueName 包含 "Hello" 和 "World"。
问题是如何同时获取这些消息?您能否给我一个示例代码片段/片段,让我至少大致了解如何开始使用该设计进行编码。
Note: *I am asking for this because for example the
qmgrA
got disconnected/down for unknown reason, atleastqmgrB
is still active and will get messages onqueueName
even thoughqmgrA
is disconnected.By the way, I'm using Websphere MQ v7 C++.
提前致谢! :)
最佳答案
问题似乎是在问如何做 IBM MQ 不做的事情。 QMgrs 不“连接”到队列,而是托管它们。除了在抽象的 JMS 意义上,应用程序不会“连接”到队列。他们连接到 QMgrs,然后打开队列。但是,描述的保持 MQ 高可用性的要求可以通过 MQ 集群、硬件集群、多实例 QMgrs、共享队列(仅在 z/OS 上)或这些的某种组合来满足。
您示例中的两个队列管理器各自托管一个 queueName
的本地拷贝。以下是关于在这种情况下如何分发消息的几种情况。
PUT
消息
qmgrA
的应用程序放入 queueName
的消息默认情况下会导致消息登陆该队列的本地实例。 qmgrA
、qmgrB
和 qmgrC
在集群中,并且 qmgrC
不托管本地队列的实例,放入该队列名称的消息将在 qmgrA
和 qmgrB
上的实例之间循环。GET
消息
qmgrA
上登陆 queueName
的消息只能由连接到 qmgrA
的应用程序从该队列中检索。 qmgrB
上登陆 queueName
的消息只能由连接到 qmgrB
的应用程序从该队列中检索。 qmgrC
的应用程序无法从 qmgrA
或 qmgrB
上托管的队列中检索消息。 MQ 高可用性
可以通过多种方式实现使队列高度可用的要求。其中一些提供了 MQ 提供的服务的可恢复性。其中一些提供了将在飞行中滞留的消息的可恢复性。除了读书topology design section在手册中,请参阅 MQ HA presentation来自 IBM Interconnect 2015。
关于c++ - 将单个队列连接到多个 qmgr C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29473257/
我有一个虚拟 ip,它指向 2 个分别具有 qmgrs qm1 和 qm2 的服务器。我需要一个 qmgr 别名将其提供给另一个应用程序,以便他们可以使用 qmgr 别名调用虚拟 ip,并且 qmgr
我想将单个队列连接到多个队列管理器(至少 2 qmgrs)。假设我有 qmgrA 和 qmgrB 作为队列管理器,并且它连接到 queueName。我将向连接到 qmgrA 的 queueName 发
我是一名优秀的程序员,十分优秀!