在 JBoss 5.1 上应该使用哪个 JMS ConnectionFactory?

Posted

技术标签:

【中文标题】在 JBoss 5.1 上应该使用哪个 JMS ConnectionFactory?【英文标题】:Which JMS ConnectionFactory shouuld one use on JBoss 5.1? 【发布时间】:2011-04-09 02:13:20 【问题描述】:

我有关于使用 JBoss 5.1 提供的 JMS 的一般性问题。

我在 JBoss 5.1 上部署了我的 Java EE 应用程序(使用 Spring Framework 实现)。该应用程序使用 Spring 来使用来自 JMS 队列 (DefaultMessageListenerContainer) 的消息,并且还使用 Spring 的 JmsTemplate 将消息发送到 JMS 目的地。这里重要的是应用程序使用 2PC(JTA 和 XA)。此外,应用程序中没有 MDB。

查看 JBoss 5.1 配置,JNDI 中有几个可用的 ConnectionFactories:

java:/JmsXA java:/ConnectionFactory java:/XAConnectionFactory java:/ClusteredConnectionFactory java:/ClusteredXAConnectionFactory 连接工厂 XAConnectionFactory 集群连接工厂 ClusteredXAConnectionFactory

我想知道我应该在我的配置中使用哪一个。我一直使用 java:/JmsXA ,但我不太确定这是否是最佳选择,尤其是对于集群环境。

谁能解释一下这个主题?

【问题讨论】:

【参考方案1】:

有趣的是deploy/messaging/jms-ds.xml

java:/JmsXA - “使用它在 bean 中获取交易的 JMS” java:/XAConnectionFactory - "当前指向非集群 ConnectionFactory"

在我看来,java:/JmsXA 绝对是可以使用的。

【讨论】:

deploy/messaging/connection-factories-service.xml 怎么样?列表中还有其余的工厂。并且有一个评论为“支持自动故障转移和已创建连接的负载平衡的集群连接工厂”。不合适吗? @pregzt:不,因为它们不支持 XA。​​ deploy/messaging/connection-factories-service.xml 中称为 ClusteredXAConnectionFactory(或 java:/ClusteredXAConnectionFactory)的工厂怎么样?名称中的 XA 意味着它们具有 XA 功能。它的评论还说:“支持自动故障转移和已创建连接的负载平衡的集群连接工厂。这个工厂不适合 MDB 使用。”鉴于 OP 不使用 MDB,我建议这是首选工厂,尤其是在使用集群的情况下。

以上是关于在 JBoss 5.1 上应该使用哪个 JMS ConnectionFactory?的主要内容,如果未能解决你的问题,请参考以下文章

如何从JBOSS CLI调用JMS临时队列上的操作

JNDI 在 JMS 中使用 JBoss 查找错误

jboss 6远程jms网桥配置不起作用

使用 jboss 的 JMS

如何使用 jboss-cli 在 WildFly 17 中创建 JMS 队列

如何在 JBoss 5 中订购 EJB 和 JMS 队列配置的部署?