日期:2014-05-17  浏览次数:20629 次

EJB容器是怎么管理事务的??
RT

------解决方案--------------------
关于ejb的事务类型,以及管理,请建议参考这里的博文专题
------解决方案--------------------
EJB 事务支持 Resource Local 事务和 JTA 事务。

Resource Local 事务就是我们通常所指的 Connection 事务,前提条件是仅有一个数据源。EJB 的容器实现基本上都是采用动态代理进行事务逻辑的横切处理,一般与 ThreadLocal 对象绑定。

JTA 事务应用于分布式事务处理,这种事务光靠 Connection 的 commit 等就无法完成了。支持这种事务需要支持所谓的“两阶段提交”,由 EJB 容器作为两阶段提交的协调者,这种类型的事务很复杂。JTA 事务常用于多个数据源或 JMS 的事务处理。

一个 J2EE 应用服务器的优劣就在于对于事务处理的优劣,之所以会有不要钱开源的 J2EE 应用服务器与收费昂贵的 J2EE 应用服务器主要的区别就在于对于事务的处理能力和性能。

涉及 Java 事务处理的书很少,我只看到过一本 Java Transaction Processing: Design and Implementation,没有中译本: