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。