分享

JTA入门

 instl 2014-01-08
JTA入门 2013-07-08 22:30:27

分类: Java

1.概述
      Spring 通过AOP技术可以让我们在脱离EJB的情况下享受声明式事务的丰盛大餐,脱离Java EE应用服务器使用声明式事务的道路已经畅通无阻。但是很大部分人都还认为脱离Java EE应用服务器就无法使用JTA事务,这是一个误解。其实,通过配合使用ObjectWeb的JOTM开源项目,不需要Java EE应用服务器,Spring也可以提供JTA事务。 
    正因为AOP让Spring拥有了脱离EJB容器的声明式事务能力,而JOTM让我们在脱离Java EE应用服务器下拥有JTA事务能力。所以,人们将AOP和JOTM称为Java软件开发的两个圣杯。 

     JTA事务的使用方法有:Spring中直接集成JOTM提供JTA事务管理将JOTM集成到Tomcat中,Spring通过引用Tomcat JNDI数据源提供JTA事务管理、引用其它功能完善JavaEE应用服务器所提供的JTA事务管理。 

JTA的实现框架有

GeronimoTM/Jencks  官方文档比较少,不适合学习和维护。
SimpleJTA 没有实现JTS (Java Transaction Service)而且不是活跃的。
Atomikos  是一个另人钦佩的产品。有丰富的文档,而且有很好的支持。
JBossTS  是一个应用在JBOSS服务器上的,肯定是一个成熟的产品,也有好的支持,详细信息可以看这里:http://www./news  /thread.tss?thread_id=37941

最常见的二个如下:
JOTM
    JOTM(Java Open Transaction Manager)是ObjectWeb的一个开源JTA实现,它本身也是开源应用程序服务器JOnAS(Java Open Application Server)的一部分,为其提供JTA分布式事务的功能。
    存在的问题:使用中不能自动rollback,无论什么情况都commit。

Atomikos
    大家推荐最多的。和JOTM相比Atomikos Transactions Essentials更加稳定,它原来是商业项目,现在开源了。象mysql一样卖服务支持的。而且论坛页比较活跃,有问题很快可以解决。 

演示代码
spring+atomikos+JTA完整例子,适合初学者
http://www./pdw2009/archive/2013/03/22/202725.html

spring 3.0.5 + jotm+spring mvc
http://fenglingcorp./blog/957952

spring+mybatis+Atomikos+SqlSessionDaoSupport,适合用于项目开发
http://blog.csdn.net/taxuexunmei414923794/article/details/7673246

spring3+ATOMIKOS3.7+hibernate3.2,代码中没有任何事务,值得参考
http://www./j2ee/spring/jta-spring-atomikos/

参考文献
1. JTA事务管理(一).http://mavin.zhou.blog.163.com/blog/static/114522435200971822334475/



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多