JTA是EJB独有的特性吗

spikeme 09-05-14
    

我觉得JTA是J2EE平台提供的JAVA事务处理接口。没有EJB,一样可以用JTA实现事务处理。只是事务处理代码要自己写。但我的同事说JTA是EJB独有的特性,写进了EJB规范。没有EJB,就不能用JTA。而且还说目前EJB还没有替代品。大家谈论下这个问题。我发现有不少书籍上和社区上都说EJB的使用的几率不高,必须要用EJB的场合很少,一般情况下都可以不用EJB就可以解决问题,而且用了EJB,有些复杂的问题,不一定能解决。

    

xmuzyu
2009-05-14 23:23

>>我的同事说JTA是EJB独有的特性,写进了EJB规范。
JTA是JTA,EJB是EJB(废话呵呵),JTA是关于分布式事务的规范,它只与事务有关系,而事务又会和资源有关系,资源要想能纳入JTA事务管理器的管理,必须有相应的适配器,具体来说:如果资源是数据库就需要支持XA标准的适配器,如果是JMS也要提供相应的适配器。还有很多的开源的JTA实现可以使用。EJB是分布式组件模型,那么既然是分布式组件模型肯定会设计到分布式事务,所以EJB借助JTA实现分布式的事务管理。

Ps:JTA规范好像也就71页,想学习可以看下。