我有一个任务需要完成,这涉及到在我的EJB事务回滚的情况下回滚对非事务数据库的更改。拦截EJB事务回滚
该项目采用容器管理的事务和业务逻辑涉及到自己调用其他EJB方法的EJB方法调用,因此交易跨越边界的方法,并涉及多个EJB。
的EJB事务回滚工作正常,但我需要能够检测到它已经发生,然后将试图回滚其他非交易数据库的方法灭火。
我想知道如何使用拦截器,但似乎我只能截取特定的方法调用,或一个特定的EJB生命周期事件。这对我的目的来说还不够。我需要拦截事务回滚事件。这可能吗?我吠叫错了树吗?也许还有另一种方法可以更好地适合我的目的。
我看到了相关的问题,但它并没有真正帮助我,因为我有许多切入点,许多嵌套的方法和我不能只截取一个方法。
EJB Interceptors and transaction lifecycle OR how to intercept a commit/failure event?
感谢@jhyot,我想这可能是要走的路,因为它是我可以看到,以确保业务方法完成,交易是在它已经通过或失败状态的唯一途径。我在未来看到很多重构:) – Matt