您的位置:首页 > 其它

EJB事务简介

2014-07-31 11:54 49 查看
EJB事务属性可以具有以下几个值:

Required

RequiresNew

Mandatory

NotSupported

Supports

Never


Required

如果运行事务中的客户调用企业bean的方法,则方法运行于客户的事务中。如果客户没有关联到事务中,容器会在运行入方法之前启动一个新的事务。

Required属性是CMT中企业bean所有的事务属性中隐含的事务属性。一般除非你需要重载其他的事务属性,否则不需要指定Required属性。因为事务属性是声明性的,你可以随后很简单地更改它。


RequiresNew

如果客户端运行在事务里,并且调用了企业bean的方法,容器就会执行下列步骤:

1,挂起客户端事务

2,启动一个新的事务

3,委派这个方法的调用

4,在方法结束后重新恢复客户断事务

如果客户端没有关联到一个事务中,容器就会在运行这个方法之前的启动一个新的事务。

如果你想确保这个方法总是运行在一个新的事务中,你就可以用
RequiresNew属性。


Mandatory

如果运行于事务中的客户调用了企业bean的方法,方法在客户的事务中执行。如果客户没有关联到事务中,容器就会抛出
TransactionRequiredException。


如果企业bean方法必须用客户事务则采用Mandatory属性。


NotSupported

如果运行在一个事务里的客户调用了企业bean的方法,容器会在调用之前中止客户事务。在调用结束后,容器会恢复客户事务。

如果客户没有关联到一个事务中,容器不会在运行到方法前启动一个新的事务。

NotSupported属性标识不需要事务的方法。因为事务会带来更高的性能支出,所以这个属性可以提高性能。


Supports

如果运行在事务中的客户调用了企业bean方法,这个方法运行于客户事务中。如果客户没有关联到事务中,容器不会在运行这个方法之前启动一个新的事务。

因为方法的事务行为是多变的,所以你要小心使用
Supports属性。


Never

如果运行在事务中的方法调用了企业bean的方法,容器会抛出
RemoteException。如果客户没有关联到事务,则容器不会在运行入方法之前启动一个新的事务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: