主题消息驱动 Bean 如何在 Websphere 8.5.5 集群环境中运行

How does a Topic Message Driven Bean behave in Websphere 8.5.5 Cluster Environment

我想要的是 运行 一个监听 (Websphere MQ7) 主题的消息驱动 Bean。我想在包含两个集群成员的 Websphere 8.5.5 集群上部署我的应用程序。

如果主题的消息到达,我希望我的两个 MDB 中只有一个获取消息并处理它。

IBM 声明我应该设置相同的 ClientIds 和订阅名称以确保只有一个实例能够处理关于主题的消息: http://www-01.ibm.com/support/docview.wss?uid=swg21442559

第二个 MDB 会收到提到的 MQRC_SUBSCRIPTION_IN_USE 异常,还是集群会注意集群中只有一个 MDB 会使用主题消息?

也许有人可以向我指出定义了此行为的 IBM 文档。

要允许 MDB 的多个并发实例访问 MQ 队列管理器上的同一订阅,您可以在 MDB 的激活规范中启用 "Allow cloned durable subscriptions"。

https://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/umj_pasm.html

运行 这样意味着 MDB 的两个实例都将启动(没有 IN_USE 错误)并且单个订阅的每条消息将由 MDB 的一个实例处理。您将使用它来平衡多个 WAS 服务器之间的消息。

这仅适用于持久订阅。并且仅当 MDB 实例连接到同一个队列管理器时。