【问题标题】:What is the difference between JCA JMS and Plain JMSJCA JMS 和普通 JMS 有什么区别
【发布时间】:2019-05-08 02:54:08
【问题描述】:

我是 JMS 的新手。我试图了解 JCA JMS(Java 连接器体系结构)和普通 JMS 之间的区别。我试图通过网络找到它,但我没有找到任何令人满意的东西。我们可以使用 WebLogic 和 JBoss 都支持的 JCA JMS 编写代码吗?

【问题讨论】:

    标签: jms jca


    【解决方案1】:

    从 API 的角度来看,“JCA JMS”和“Plain JMS”之间没有区别。不同之处在于它们的行为方式。与普通 JMS 连接工厂相比,基于 JCA 的 JMS 连接工厂有两大优势:

    • Pooled - 一般而言,当从基于 JCA 的 JMS 连接工厂“创建”连接时,会从池中取出底层物理连接,而当连接“关闭”时,底层物理连接是回到了游泳池。这消除了实际创建和销毁物理连接的性能损失,允许以通常被视为反模式的方式编写客户端(例如,为每条发送的消息“创建”和“关闭”连接)。
    • 自动登记到 JTA 事务中 - 大多数情况下,在 Java EE 应用程序服务器中运行并使用 JMS 消息的应用程序是通过 MDB 进行的。默认情况下,MDB 中消息的使用(即onMessage 的执行)发生在 JTA 事务中。如果在 MDB 的处理过程中使用了基于 JCA 的 JMS 连接工厂(例如发送消息),则 JCA 逻辑将自动将会话加入 JTA 事务,以便消息的消费和消息的发送是原子操作(假设基于 JCA 的连接工厂支持 XA)。

    我希望您可以编写在 WebLogic 和 JBoss AS 中表现相同的应用程序代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 2013-06-24
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 2020-09-22
      相关资源
      最近更新 更多