MDB 侦听不同数量的 IBM MQ

MDB listening to a varying amount of IBM MQs

这是我的目标:

我有一个消息驱动 Bean (class),我想将其部署到 JBoss EAP 6 服务器。 MDB 应该监听一个或多个外部队列,我将使用相应的 JMS 资源适配器连接到这些队列。我们需要使用 JMS,因为我们需要在队列和数据库连接之间共享事务。

挑战在于我们稍后需要将 MDB 与更多队列挂钩,并且我们需要能够做到这一点,而无需创建新的部署。所以我们仅限于更改配置和重新启动服务器。

这是怎么做到的?

我不相信有任何方法可以做你想做的事,至少不是直接的。在您的例子中,MDB 绑定到单个 JMS 目标。您需要为要从中接收消息的每个 JMS 目标部署一个 new/different MDB。

我建议部署您的 MDB 并让它监听“主”队列,然后您可以将来自您关心的所有其他目标的所有消息集中到这个主队列中。 IBM MQ 可能具有本机执行此操作的功能,或者您可以使用 Apache Camel 之类的功能。