Java 如何在异常情况下禁用EJB计时器超时重试

Java 如何在异常情况下禁用EJB计时器超时重试,java,jakarta-ee,weblogic-10.x,Java,Jakarta Ee,Weblogic 10.x,我在EJB3.0中创建了一个计时器, weblogic 10.3, 当超时方法期间发生异常时,此方法将再次执行多次,并且异常始终会发生。如何禁用此功能 只要运行时异常通过EJB调用传播回来,当前事务就会标记为回滚 EJB计时器是事务性的,因此从计时器方法或计时器方法本身的EJB调用引发的任何RuntimeException都将导致回滚 因此,为了防止计时器机器重试计时器,必须在从任何EJB调用或计时器方法本身抛出运行时异常之前捕获所述运行时异常,从而防止计时器方法调用链中的任何回滚 消息驱动be

我在EJB3.0中创建了一个计时器,
weblogic 10.3

当超时方法期间发生异常时,此方法将再次执行多次,并且异常始终会发生。如何禁用此功能

只要运行时异常通过EJB调用传播回来,当前事务就会标记为回滚

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

因此,为了防止计时器机器重试计时器,必须在从任何EJB调用或计时器方法本身抛出运行时异常之前捕获所述运行时异常,从而防止计时器方法调用链中的任何回滚


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

我认为这个链接解决了您的问题@AlexanderPetrov这不是同一个问题,这个问题中的问题是由于持久性,而我遇到的问题是由于在异常后重试。或者,从计时器调用的EJB方法可能被标记为与事务隔离(
@RequiresNew
)或仅从计时器调用的EJB方法中引发已检查的异常。容器将忽略计时器调用的EJB引发的已检查异常。