Atomikos vs JOTM vs Bitronix vs?

我是JTA新手,它是基础交易经理。 任何人都可以解释每个这样的利弊吗? 随意添加我没有在标题中列出的其他人。

另外,不要主要的应用程序服务器(WebSphere,JBoss,Glassfish)有自己的符合JTA的事务pipe理器吗? 在那些环境中,你还会使用这些第三方实现吗?

我是JTA新手,它是基础交易经理。 任何人都可以解释每个这样的利弊吗? 随意添加我没有在标题中列出的其他人。

我知道的独立事务pipe理器包括Bitronix , SimpleJTA , Tyrex (死?), JOTM (用于Jonas), GeronimoTM / Jencks (Geronimo中使用), JBossTS (JBoss中使用)和Atomikos 。

我从来没有广泛地testing过它们(如果你必须select一个,你将不得不这样做),所以我不能提供详尽的优点/缺点(那需要一些工作)。 但是这里有一些链接:

  • 用于独立Java应用程序的事务pipe理器 (利用优点/缺点覆盖其中的一些)
  • O(pen)S(ource)JTA交易经理
  • Re:[xmlblaster-devel] JTA合规性

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

  • 我见过很多关于JOTM的抱怨。
  • 我认为GeronimoTM / Jencks缺乏文档。
  • SimpleJTA不实现JTS并且不活动。
  • Bitronix是体面的文件,但不提供支持。
  • Atomikos是一个令人印象深刻的产品,有据可查,并提供支持。
  • JBossTS aka ArjunaTS绝对是一个成熟的产品(请参阅收购的一些历史公告 ),并提供支持。

就我个人而言,如果我不得不selectAtomikos和JBossTS,我会select一个硬核。

另外,不要主要的应用程序服务器(WebSphere,JBoss,Glassfish)有自己的符合JTA的事务pipe理器吗?

当然,他们这样做,JTA是Java EE规范的一部分,Java EE服务器必须支持它。

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

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

我用Jettytesting了Atomikos和JOTM。 Atomikos工作得很好,我完全推荐它。 我做了例如自动化unit testing来testing我的应用程序中的分布式事务,这些testing工作正常。

就JOTM而言,我相当肯定它至less有时会伪造两阶段提交协议。 我有一个closures两阶段提交function的PostgreSQL数据库,JOTM能够像我有真正的分布式事务一样工作。 真正的事务pipe理器(例如在GlassFish中实现的pipe理器)在这种情况下报告了错误。

我在应用程序中使用了JPA2和Hibernate 4。