如果从EJB 3.0中的会话bean中的方法发生系统异常,会发生什么?

时间:2013-12-30 09:19:12

标签: ejb ejb-3.0

如果会话bean中具有事务属性REQUIRED_NEW的方法发生系统异常,并且此方法由其他事务中运行的其他方法(即REQUIRED)调用,则会发生什么情况。

Transaction

暂停的交易(即必需)是否会回滚?

2 个答案:

答案 0 :(得分:1)

  

如果从EJB 3.0中的会话bean中的方法发生系统异常会发生什么?

这就是ejb3规范所说的:

  

14.2.2系统异常

     

...容器捕获非应用程序异常;记录它;并且,除非bean是消息驱动的bean,否则抛出javax.ejb.EJBException。

     

... bean方法参与的事务将被回滚....

将丢弃bean实例。

  

暂停的交易(即必需)是否会回滚?

在您的情况下,Client方法在不同的事务上下文中运行,因此,如果您抓住了 javax.ejb.EJBException源自目标bean,事务将提交。否则,该事务将被回滚。

答案 1 :(得分:0)

如果你没有在方法A中处理异常,那么异常会抛出更高的回滚和回滚购买的事务。