我有一個任務需要完成,這涉及到在我的EJB事務回滾的情況下回滾對非事務數據庫的更改。攔截EJB事務回滾
該項目採用容器管理的事務和業務邏輯涉及到自己調用其他EJB方法的EJB方法調用,因此交易跨越邊界的方法,並涉及多個EJB。
的EJB事務回滾工作正常,但我需要能夠檢測到它已經發生,然後將試圖回滾其他非交易數據庫的方法滅火。
我想知道如何使用攔截器,但似乎我只能截取特定的方法調用,或一個特定的EJB生命週期事件。這對我的目的來說還不夠。我需要攔截事務回滾事件。這可能嗎?我吠叫錯了樹嗎?也許還有另一種方法可以更好地適合我的目的。
我看到了相關的問題,但它並沒有真正幫助我,因爲我有許多切入點,許多嵌套的方法和我不能只截取一個方法。
EJB Interceptors and transaction lifecycle OR how to intercept a commit/failure event?
感謝@jhyot,我想這可能是要走的路,因爲它是我可以看到,以確保業務方法完成,交易是在它已經通過或失敗狀態的唯一途徑。我在未來看到很多重構:) – Matt