EJB事务简介

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。如果客户没有关联到事务,则容器不会在运行入方法之前启动一个新的事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值