如何禁用异常上的EJB计时器超时重试

时间:2016-07-07 16:40:11

标签: java java-ee weblogic-10.x

我在EJB 3.0创建了一个计时器, weblogic 10.3, 并且当在超时方法期间发生异常时,此方法再次执行几次,异常一直发生。我该如何禁用此功能?

1 个答案:

答案 0 :(得分:2)

当RuntimeException通过EJB调用传播回来时,当前事务被标记为回滚。

EJB计时器是事务性的,因此从计时器方法或计时器方法本身的EJB调用抛出的任何RuntimeException都将导致回滚。

因此,为了防止计时器机器重试计时器,必须通过在任何EJB调用或计时器方法本身抛出之前捕获所述RuntimeExceptions来防止调用链中的任何回滚。

消息驱动的bean FWIW中存在同样的问题。