浏览 1165 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-04
1.什么是事务
为了保证数据的一致性 begin transaction debit checking account credit saving account update history log end trasaction 其中任意的三个操作要么都执行,要么都不执行,否则就不能保证数据的一致性。 2.容器管理的事务 在容器管理的enterprise bean, EJB 容器设置事务的边界。容器管理的事务可以被 用到任何类型的bean(session bean,entity bean,message-driven bean)。容器管理事务 可以简化开发,开发中无需明确包含开启事务和关闭事务代码。 容器事务在bean方法调用前开启,在bean方法结束前结束。一个方法是不能嵌套事务和 包含多个事务。 不是所有的bean方法都要求是事务管理的,在部署bean时我们可以通过设置事务的属性 配置哪些方法是不容器事务管理的。 2.1 如果对象A的a方法调用对象B的b方法,如果a方法属于事务,那么b方法是再开启个新事务 还是在原来的事务中呢?这个依赖于对象B的事务属性设置。 Required : 当一个方法被客户调用,这个客户在事务中运行,那么这个方法也在事务 中运行,否则容器会在这个方法运行前启动事务。 RequiredNew : 容器会始终为这个方法开启一个新的事务,如果客户端是在事务中,那 么容器会悬挂客户端的事务执行,开启一个新的事务为这个方法,等结束后再继续客户端的 事务运行。 Mandatory:bean的方法必须在客户端的事务中运行,否则容器会抛出异常。 NotSupported :如果客户端在事务中运行时调用bean的方法,容器会悬挂事务的执行, 等bean方法执行完后再继续刚才的事务。 Supports : 如果客户端是在事务中运行时调用bean的方法,那么这个方法也在事务中运行, 如果客户端没有在事务中运行,那么容器也不会开启一个事务。 Never :bean的方法不能在事务中运行,否则会抛出异常。<!----> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |