在J2EE的海洋里,事务的处理小编认为一般有两种模式,一种是依赖特定事务资源的事务处理和另外一种是依赖容器的参数化事务管理。下面小编分别说下,希望能够带给大家帮助。
1. 依赖特定事务资源的事务处理
织梦好,好织梦
这是应用开发中最常见的模式,即通过特定资源提供的事务机制进行事务管理。
织梦好,好织梦
如通过JDBC、JTA 的rollback、commit方法;Hibernate Transaction 的
rollback、commit方法等。这种方法大家已经相当熟悉。 本文来自织梦
2. 依赖容器的参数化事务管理 织梦内容管理系统
通过容器提供的集约式参数化事务机制,实现事务的外部管理,如EJB 中的事 织梦好,好织梦
务管理模式。
如,下面的EJB事务定义中,将SessionBean MySession的doService方
法定义为Required。 织梦内容管理系统
也就是说,当MySession.doServer 方法被某个线程调用时,容器将此线程 织梦好,好织梦
纳入事务管理容器,方法调用过程中如果发生异常,当前事务将被容器自动回
dedecms.com
滚,如果方法正常结束,则容器将自动提交当前事务。 copyright dedecms
<container-transaction >
<method >
<ejb-name>MySession</ejb-name> dedecms.com
<method-intf>Remote</method-intf>
织梦内容管理系统
<method-name>doService</method-name>
dedecms.com
<method-params> 内容来自dedecms
<method-param>java.lang.String</method-param> 织梦好,好织梦
</method-params>
</method> copyright dedecms
<trans-attribute>Required</trans-attribute>
</container-transaction>
dedecms.com
容器管理的参数化事务为程序开发提供了相当的灵活性,同时因为将事务委
织梦内容管理系统
托给容器进行管理,应用逻辑中无需再编写事务代码,大大节省了代码量(特 本文来自织梦
别是针对需要同时操作多个事务资源的应用),从而提高了生产率。 织梦好,好织梦
然而,使用EJB 事务管理的代价相当高昂,撇开EJB 容器不菲的价格,EJB 内容来自dedecms
的学习成本,部署、迁移、维护难度,以及容器本身带来的性能开销(这往往
copyright dedecms
意味着需要更高的硬件配置)都给我们带来了相当的困惑。此时事务管理所带 本文来自织梦
来的优势往往还不能抵消上面这些负面影响。
copyright dedecms







