如果会话bean中具有事务属性REQUIRED_NEW的方法发生系统异常,并且此方法由其他事务中运行的其他方法(即REQUIRED)调用,则会发生什么情况。
暂停的交易(即必需)是否会回滚?
答案 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中处理异常,那么异常会抛出更高的回滚和回滚购买的事务。