EJB的事务处理属性 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- EJB的事务处理属性 (http://www.webasp.net/article/7/6626.htm) |
| -- 作者:未知 -- 发布日期: 2003-07-26 |
| 同事写的,发到这里共享 一个事务处理的属性有:Required,RequiresNew,Mandatory,NotSupported,Supports,Never. 1、Required:当客户端运行一个事务处理并调用EJB的一个方法,这个方法执行客户端的事务处理;当客户端没有启动一个事务处理,则EJB容器在执行这个方法之前启动一个新的事务处理. 2、RequiresNew:当客户端运行一个事务处理并调用EJB的一个方法时,容器管理器做如下操作: (1) 悬挂客户端的事务处理; (2) 开始一个新的事务处理; (3) 调用方法; (4) 当方法结束,恢复客户端的事物处理. 当客户端没有启动一个事务处理,容器管理器在执行这个方法之前启动一个新的事务处理. 3、Mandatory: 当客户端运行一个事务处理并调用EJB的一个方法,这个方法在客户端的事务处理范围内被执行; 当客户端没有启动一个事务处理,容器管理器将会抛错(TransactionRequiredException); 4、NotSupported: 当客户端运行一个事务处理并调用EJB的一个方法,容器管理器在调用方法之前终止客户端的事务处理,当方法执行完,再恢复客户端的事务处理; 当客户端没有启动一个事务处理,容器管理器在调用方法时不启动事务处理. 5、Supports: 当客户端运行一个事务处理并调用EJB的一个方法,在运行方法时执行客户端的事务处理; 当客户端没有启动一个事务处理,容器管理器在调用方法时不启动事务处理. 6、Never: 当客户端运行一个事务处理并调用EJB的一个方法,容器管理器将抛出一个错误(RemoteException); 当客户端没有启动一个事务处理,容器管理器在调用方法时不启动事务处理. 在jbuilder中,缺省是Required; 第一个ejb可以是 Required,这个ejb调用的那个ejb方法如果想在一个 事务上下文中,我觉得可能采用Mandatory,方式比较好。如果它们不在一个事务上下文中,就会抛错(TransactionRequiredException),是一个上下文,就没有问题 |
| webasp.net |