WebLogic、WebSphere和JBoss这些Web应用服务器都自带事务管理器,而Tomcat和tcServer需要额外使用第三方事务管理器。公司选择了AtomikosTransactionEssentials作为JTA/XA提供者,这里列一下当前使用较多的开源事务管理器。
|事务管理器|开源许可证|当前版本|介绍
|—–
|JOTM|BSD样式|2.1.9 (2010-1-14)|JOTM(Java Open TransactionManager)是由ObjectWeb协会开发的功能完整的且资源开放的独立的事务管理器。 它提供了JAVA 应用程序的事务支持,而且与JTA(JAVA事务API)兼容。
JOTM内嵌了一些开源项目。例如CAROL用于事务上下文传播;XAPool是一个XA兼容的JDBC连接池;HOWL是用于事务恢复的日志。
|Bitronix JTA Transaction Manager|LGPL|2.1.4 (2013-9-15)|Bitronix Transaction Manager (BTM)是JTA 1.1 API的一个简单但完整的实现。
|SimpleJTA|Apache 2.0|2.02 (2007-4-10)|SimpleJTA实现了一个单独的JTA兼容事务处理器,仅支持Oracle 9i和ApacheDerby数据库,不支持JTS。
|Atomikos TransactionsEssentials|Apache 2.0|3.9.0.M1 (2013-6-8)|Atomikos分两个:一个是开源的TransactionEssentials,一个是商业的ExtremeTransactions。(功能对比)
Atomikos TransactionsEssentials是对JDBC/XA池,JMS/XA池和JTA/XA提供基本支持的开源事务处理系统。
|Narayana(JBossTS)|LGPL v2.1|5.0.0.M6 (2013-10-11)|Narayana(JBossTS)前身是最初纽卡斯尔大学在1986到1995开发的Arjuna系统,后由JBoss从Arjuna和HP手中收购并开源的。
它支持下列事务处理协议标准:JTA、JTS、Web服务事务、REST事务、STM、XATMI/TX
Stack Overflow有一篇文章对上面的一些事务管理器进行了对比:
- JOTM 用户抱怨的比较多
- GeronimoTM/Jencks(Jencks是Apache Geronimo中使用的JCA容器,并使用ApacheGeronimo的事务管理器) 缺乏文档。
- SimpleJTA 没有实现JTS (Java Transaction Service)而且不是活跃的。
- Bitronix 有不错的文档但是不提供技术支持。
- Atomikos 是一个另人钦佩的产品。有丰富的文档,而且提供技术支持。
- JBossTS 从收购通告可见肯定是一个成熟的产品,而且提供技术支持。