我想要的是运行一个消息驱动 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 的激活规范中启用“允许克隆持久订阅”。
像这样运行意味着 MDB 的两个实例都将启动(没有 IN_USE 错误),并且该单个订阅的每条消息将由 MDB 的一个实例处理。您可以使用它来平衡多个 WAS 服务器之间的消息工作负载。
这只适用于持久订阅。并且仅当 MDB 实例连接到同一队列管理器时。
关于websphere - 主题消息驱动 Bean 在 Websphere 8.5.5 集群环境中的行为如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32518707/