如何使用EJB事务属性控制事务的作用域 - 编程入门网
如何使用EJB事务属性控制事务的作用域时间:2011-10-16EJB事务属性可以是如下几个值之一: Required,RequiresNew,Mandatory,NotSupported,Supports,Never. 1、Required 如果客户端正运行在某个EJB事务中运行,且调用了EJB中的方法,则该方法在客户端的EJB事务中运行 。如果客户端没有与某个EJB事务相关联,则容器在运行方法前先启动一个新EJB事务。Required属性适合 绝大多数EJB事务,建议把它设置成默认的,至少在开发阶段。EJB事务属性是声明式的,后期也可以很容 易的修改。 2、RequiresNew 如果客户端运行在某个EJB事务中,并且调用了EJB中的方法,则容器将采用如下操作: (1) 挂起客户端EJB事务 (2) 启动一个新EJB事务 (3) 把调用委派给方法 (4) 方法执行完毕之后,回复客户端EJB事务 如果客户端没有与某个EJB事务相关联,则容器在运行方法前先启动一个新EJB事务。如果确保方法始 终在一个新EJB事务中运行,应该使用RequiresNew属性。 3、Mandatory 如果客户端运行在某个EJB事务中且调用了EJB中的方法,则该方法运行在客户端EJB事务中。如果客户 端没有与某个EJB事务相关联,则容器抛出TransactionRequiredException。如果EJB中的方法必须使用客 户端的EJB事务,则应该使用Mandatory属性。 4、NotSupported 如果客户端在某个EJB事务中运行且调用了EJB中的方法,则容器先挂起客户端EJB事务,调用方法结束 之后回复客户端EJB事务。如果客户端没有与某个EJB事务相关联,则容器在运行方法前不启动EJB事务.对 于不需要EJB事务的方法,可以考虑该属性。EJB事务需要一定的开销,NotSupported属性可以提高性能。 5、Supports 如果客户端运行在某个EJB事务中且调用了EJB中的方法,则该方法运行在客户端的EJB事务中。如果客 户端没有与某个EJB事务关联,则容器运行方法前不启动新的EJB事务。 6、Never 如果客户端运行在某个EJB事务中且调用了EJB中的方法,则容器抛出RemoteException异常。如果客户 端没有与某个EJB事务关联,则容器运行方法之前不启动新的EJB事务。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |