gpt4 book ai didi

c++ - 将单个队列连接到多个 qmgr C++

转载 作者:搜寻专家 更新时间:2023-10-31 01:01:15 28 4
gpt4 key购买 nike

我想将单个队列连接到多个队列管理器(至少 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, atleast qmgrB is still active and will get messages on queueName even though qmgrA 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 的消息默认情况下会导致消息登陆该队列的本地实例。
  • 当有一个本地实例和一个至少包含一个其他实例的 MQ 集群时,可以配置 QMgr 以允许消息转到非本地实例。
  • qmgrAqmgrBqmgrC 在集群中,并且 qmgrC 不托管本地队列的实例,放入该队列名称的消息将在 qmgrAqmgrB 上的实例之间循环。

GET消息

  • qmgrA 上登陆 queueName 的消息只能由连接到 qmgrA 的应用程序从该队列中检索。
  • qmgrB 上登陆 queueName 的消息只能由连接到 qmgrB 的应用程序从该队列中检索。
  • 连接到 qmgrC 的应用程序无法从 qmgrAqmgrB 上托管的队列中检索消息。

MQ 高可用性
可以通过多种方式实现使队列高度可用的要求。其中一些提供了 MQ 提供的服务的可恢复性。其中一些提供了将在飞行中滞留的消息的可恢复性。除了读书topology design section在手册中,请参阅 MQ HA presentation来自 IBM Interconnect 2015。

关于c++ - 将单个队列连接到多个 qmgr C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29473257/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com