Atomikos vs JOTM vs Bitronix vs?[已关闭]
我是JTA的新手,它是底层事务经理。任何人都可以解释其中每一种的优缺点吗?随意添加我没有在标题中列出的其他人。
另外,主要的应用程序服务器(WebSphere,JBoss,Glassfish)不是有自己的JTA兼容的事务管理器吗?在这些环境中,是否仍会使用这些第三方实现?
我是JTA的新手,它是底层事务经理。任何人都可以解释其中每一种的优缺点吗?随意添加我没有在标题中列出的其他人。
另外,主要的应用程序服务器(WebSphere,JBoss,Glassfish)不是有自己的JTA兼容的事务管理器吗?在这些环境中,是否仍会使用这些第三方实现?
我是JTA的新手,它是底层事务经理。任何人都可以解释其中每一种的优缺点吗?随意添加我没有在标题中列出的其他人。
我所知道的独立事务管理器包括Bitronix,SimpleJTA,Tyrex(死?),JOTM(用于Jonas),GeronimoTM / Jencks(用于Geronimo),JBossTS(用于JBoss)和Atomikos。
我从来没有广泛地测试过它们(如果你必须选择一个,这就是你必须做的),所以我不能提供详尽的优点/缺点(这需要一些工作)。但这里有一些链接:
为了以防万一,这是我的个人观点:
就我个人而言,我会将Atomikos和JBossTS列入候选名单,如果我必须选择一个,我会测试它们的硬核。
另外,主要的应用程序服务器(WebSphere,JBoss,Glassfish)不是有自己的JTA兼容的事务管理器吗?
当然可以,JTA是Java EE规范的一部分,Java EE服务器必须支持它。
在这些环境中,是否仍会使用这些第三方实现?
不,我会使用提供的事务管理器(为了简单,支持等)。
我已经用Jetty测试了Atomikos和JOTM。Atomikos工作得很好,我完全推荐它。例如,我进行了自动化单元测试,用于测试应用程序中的分布式事务,这些测试工作正常。
就JOTM而言,我很确定它至少有时会伪造2阶段提交协议。我有一个关闭了2阶段提交功能的PostgreSQL数据库,JOTM能够像我拥有真正的分布式事务一样工作。在这种情况下,真正的事务管理器(例如在GlassFish中实现的事务管理器)报告了错误。
如果重要的话,我在我的应用程序中将JPA2与Hibernate 4一起使用。