我对JTA和它的底层事务管理器是个新手。有没有人能解释一下每种方法的优缺点?请随意添加我在标题中没有列出的其他内容。
另外,主要的应用服务器(WebSphere、JBoss、Glassfish)不是都有自己的兼容JTA的事务管理器吗?在这些环境中,您还会使用这些第三方实现吗?
发布于 2010-06-05 07:30:18
我对JTA和它的底层事务管理器还很陌生。有没有人能解释一下每种方法的优缺点?请随意添加我在标题中没有列出的其他内容。
据我所知,独立的事务管理器包括Bitronix、SimpleJTA、Tyrex (dead?)、JOTM (在Jonas中使用)、GeronimoTM/Jencks (在Geronimo中使用)、JBossTS (在JBoss中使用)和Atomikos。
我从来没有广泛地测试过它们(如果你必须选择一个,这是你必须做的),所以我不能提供详尽的优缺点(这将需要一些工作)。但这里有一些链接:
覆盖其中的一些
以防万一,这是我个人的观点:
我已经看到很多关于JOTM的抱怨。我认为GeronimoTM/Jencks缺乏documentation.
就我个人而言,我会将Atomikos和JBossTS列入候选名单,如果必须选择一个的话,我会对它们进行硬核测试。
此外,主要的应用服务器(WebSphere、JBoss、Glassfish)不是都有自己的
兼容事务管理器吗?
当然,JTA是Java规范的一部分,Java服务器必须支持它。
在这些环境中,您还会使用这些第三方实现吗?
不,我将使用提供的事务管理器(为了简单、支持等目的)。
发布于 2012-02-17 05:19:36
我已经用Jetty测试了Atomikos和JOTM。Atomikos运行得很好,我强烈推荐它。例如,我在我的应用程序中进行了自动化的单元测试,以测试分布式事务,这些测试运行良好。
就JOTM而言,我非常确定它至少有时会伪造两阶段提交协议。我有一个关闭了两阶段提交功能的PostgreSQL数据库,并且能够像拥有真正的分布式事务一样工作。真实事务管理器(例如,在GlassFish中实现的事务管理器)在这种情况下报告了一个错误。
如果有必要的话,我在我的应用程序中使用了JPA2和Hibernate 4。
https://stackoverflow.com/questions/2978207
复制相似问题