Java Atomikos vs JOTM vs Bitronix vs?

Java Atomikos vs JOTM vs Bitronix vs?,java,transactions,jakarta-ee,jta,Java,Transactions,Jakarta Ee,Jta,我是JTA及其底层事务管理器的新手。有人能解释一下每种方法的优缺点吗?请随意添加标题中未列出的其他内容 另外,主要的应用服务器(WebSphere、JBoss、Glassfish)难道没有自己的符合JTA的事务管理器吗?在这些环境中,您还会使用这些第三方实现吗 我是JTA及其底层事务管理器的新手。有人能解释一下每种方法的优缺点吗?请随意添加标题中未列出的其他内容 我所知道的独立事务管理器包括,(dead?)(用于Jonas),(用于Geronimo),(用于JBoss)和 我从来没有对它们进行过

我是JTA及其底层事务管理器的新手。有人能解释一下每种方法的优缺点吗?请随意添加标题中未列出的其他内容

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

我是JTA及其底层事务管理器的新手。有人能解释一下每种方法的优缺点吗?请随意添加标题中未列出的其他内容

我所知道的独立事务管理器包括,(dead?)(用于Jonas),(用于Geronimo),(用于JBoss)和

我从来没有对它们进行过全面的测试(如果你必须选择一个,你就必须这样做),因此我无法提供详尽的利弊(这需要一些工作)。但这里有一些链接:

  • (用赞成/反对的观点涵盖其中一些)
以防万一,以下是我个人的观点:

  • 我看到很多关于JOTM的抱怨
  • 我认为GeronimoTM/Jencks缺乏文档
  • SimpleJTA不实现JTS,并且不处于活动状态
  • Bitronix是标准的文档,但不提供支持
  • Atomikos是一款令人印象深刻的产品,有很好的文档记录,并提供支持
  • JBossTS又名ArjunaTS绝对是一款成熟的产品(有关一些历史,请参阅),并提供支持
就我个人而言,如果我必须选择Atomikos和JBossTS,我会将它们列入候选名单,并对它们进行测试

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

当然,JTA是JavaEE规范的一部分,JavaEE服务器必须支持它

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


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

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

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


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

感谢您提供了这个有用的答案。有时,出于测试和演示目的,我们的应用程序需要在Jetty或Tomcat中运行。Atomikos和JBosst是否仍能在这些环境中工作?事实上,这些第三方交易经理的原因是什么?要在成熟的应用程序服务器之外获得良好的事务支持?@HDave:当您需要全局事务支持(即,当您处理多个事务资源时)而您的环境不提供此支持(例如,独立应用程序、servlet容器)时,独立事务管理器非常有用。在这样的环境中,我会使用Spring来简化配置(JBossTS和Atomikos也适合)。Jencks实际上是一个JCA容器,使用GeronimoTM作为JTA事务管理器……关于JTOM如何伪造2阶段提交协议的有趣评论。WebLogic提供的JTA管理器/驱动程序也执行相同的操作。最好让他们在出现不支持它(或关闭了它)的数据库时伪造它。通常,在XA事务中可以有一个非XA资源。如果事务管理器认识到这种情况,它将对XA资源调用prepare(),如果成功,它可以对事务中涉及的所有资源(包括非XA资源)调用commit()。是的,他们称之为决定性投票。非XA资源将决定它是否都能正常工作