【问题标题】:Atomikos vs JOTM vs Bitronix vs? [closed]Atomikos vs JOTM vs Bitronix vs? [关闭]
【发布时间】:2010-06-04 22:30:49
【问题描述】:

我是 JTA 的新手,它是底层事务管理器。任何人都可以解释每一个的优点/缺点吗?随意添加我未在标题中列出的其他内容。

另外,主要的应用服务器(WebSphere、JBoss、Glassfish)难道没有自己的符合 JTA 的事务管理器吗?在那些环境中,您还会使用这些第三方实现吗?

【问题讨论】:

    标签: java transactions jakarta-ee jta


    【解决方案1】:

    我是 JTA 的新手,它是底层事务管理器。任何人都可以解释每一个的优点/缺点吗?随意添加我未在标题中列出的其他内容。

    我知道的独立事务管理器包括 BitronixSimpleJTATyrex(已死?)、JOTM(用于 Jonas)、GeronimoTM/Jencks(用于 Geronimo)、JBossTS(在 JBoss 中使用)和Atomikos

    我从未对它们进行过广泛的测试(如果你必须选择一个,这就是你必须做的),所以我无法提供详尽的优缺点(这需要一些工作)。但这里有一些链接:

    以防万一,这是我非常个人的观点:

    • 我看到很多关于 JOTM 的投诉。
    • 我认为 GeronimoTM/Jencks 缺乏文档。
    • SimpleJTA 没有实现 JTS 并且处于非活动状态。
    • Bitronix 是不错的文档,但不提供支持。
    • Atomikos 是一款令人印象深刻的产品,有据可查并提供支持。
    • JBossTS aka ArjunaTS 绝对是一个成熟的产品(有关一些历史,请参阅announcement of the acquisition)并且确实提供支持。

    就我个人而言,如果我必须选择其中一个,我会将 Atomikos 和 JBossTS 列入候选名单并进行硬核测试。

    另外,主要的应用服务器(WebSphere、JBoss、Glassfish)难道没有自己的符合 JTA 的事务管理器吗?

    当然可以,JTA 是 Java EE 规范的一部分,Java EE 服务器必须支持它。

    在那些环境中,您还会使用这些第三方实现吗?

    不,我会使用提供的事务管理器(为了简单、支持等)。

    【讨论】:

    • 感谢您提供这个有用的答案。有时,主要出于测试和演示目的,我们的应用程序需要在 Jetty 或 Tomcat 中运行。 Atomikos 和 JBossTS 还能在这些环境中工作吗?事实上,这就是这些第三方事务管理器的原因吗?在成熟的应用服务器之外获得良好的事务支持?
    • @HDave:当您需要全局事务支持(即,当您处理多个事务资源时)并且您的环境不为此提供支持(例如,独立应用程序)时,独立事务管理器很有用,一个servlet容器)。在这样的环境中,我会使用 Spring 来简化配置(JBossTS 和 Atomikos 也适合)。
    • Jencks 实际上是一个使用 GeronimoTM 作为 JTA 事务管理器的 JCA 容器...
    【解决方案2】:

    我已经使用 Jetty 测试了 Atomikos 和 JOTM。 Atomikos 工作得很好,我完全推荐它。我做了例如用于在我的应用程序中测试分布式事务的自动化单元测试,这些测试运行良好。

    就 JOTM 而言,我很确定它至少有时会伪造 2 阶段提交协议。我有一个关闭了两阶段提交功能的 PostgreSQL 数据库,并且 JOTM 能够像我有真正的分布式事务一样工作。真正的事务管理器(例如 GlassFish 中实现的)在这种情况下会报告错误。

    如果重要的话,我在我的应用程序中使用了 JPA2 和 Hibernate 4。

    【讨论】:

    • 关于 JTOM 如何伪造两阶段提交协议的有趣评论。随 WebLogic 提供的 JTA 管理器/驱动程序也执行相同的操作。最好让他们在使用不支持它的数据库(或关闭它)时伪造它。
    • 通常您可以在 XA 事务中拥有一个非 XA 资源。如果您的事务管理器识别出这种情况,它将在 XA 资源上调用 prepare(),如果成功,它可以在事务中涉及的所有资源(包括非 XA 资源)上调用 commit()。
    • 是的,他们称之为决定性投票。非 XA 资源决定是否一切正常
    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 2012-08-07
    • 2023-04-09
    • 2011-07-08
    • 2013-03-13
    • 2016-09-19
    • 2010-09-27
    相关资源
    最近更新 更多