websphere - 主题消息驱动 Bean 在 Websphere 8.5.5 集群环境中的行为如何

标签 websphere ibm-mq jms-topic

我想要的是运行一个消息驱动 Bean 来监听 (Websphere MQ7) 主题。我想在包含两个集群成员的 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 的激活规范中启用“允许克隆持久订阅”。

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 实例连接到同一队列管理器时。

关于websphere - 主题消息驱动 Bean 在 Websphere 8.5.5 集群环境中的行为如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32518707/

相关文章:

java - 通过 websphere 应用程序服务器管理控制台设置 http 请求 header

java - 我们如何在 Tomcat 和 Websphere 之间做出妥协?

java - Websphere MQ 系列 - MQGMO_WAIT

java - JMS 订阅者在一段时间后停止从主题获取消息

java - JMS - 即使与远程提供程序的连接正常,也无法创建 session 工厂

.net - MQMessage 探索(使用 WebSphere MQ .NET API)

java - Jersey 资源 .class 加载

c++ - Websphere MQ - 获取时出现错误,原因代码为 2042

queue - 如何将 MQ Server 回复消息与正确的请求相匹配

JMS主题订阅Tomee 1.7.1