У меня есть задача завершить, что включает в себя откатывание изменений в базу данных без транзакций в случае отката моей транзакции EJB.Перехват транзакции перехвата EJB
Проект использует транзакции, управляемые контейнером, а бизнес-логика включает вызовы методов EJB, которые сами называют другими методами EJB, поэтому транзакция пересекает границы методов и включает в себя несколько EJB.
Откат транзакции EJB работает нормально, но мне нужно уметь обнаружить, что оно произошло, а затем запустить метод, который попытается откат другой не транзакционной базы данных.
Я задавался вопросом об использовании перехватчика, но кажется, что я могу только перехватить конкретный вызов метода или конкретное событие жизненного цикла EJB. Этого недостаточно для моей цели. Мне нужно перехватить событие отката транзакции. Это возможно? Я лаяю неправильное дерево? Возможно, есть другой подход, который лучше подходит моей цели.
Я видел связанный с ним вопрос, но мне это действительно не помогает, поскольку у меня много точек входа, много вложенных методов, и я не могу просто перехватить один метод.
EJB Interceptors and transaction lifecycle OR how to intercept a commit/failure event?
Спасибо @jhyot, я думаю, что это, вероятно, путь, так как это единственный способ убедиться, что бизнес-метод завершен, и транзакция находится в состоянии, в котором оно прошло или прошло неудачно. Я вижу много рефакторинга в будущем :) – Matt