Я использую приложение с транзакциями EJB и CMT.У меня есть EJB (давайте назовем его EJB1) с CMT, определяемым как «require_new» аннотацией, например:
@TransactionAttribute(TransactionAttributeType.REQUIRED)
Поскольку транзакции до сих пор не существует, она ее создает.Теперь этот EJB1 вызывает другой EJB (EJB2).Все, что я нашел в своих исследованиях, - это уникальный способ создания другой транзакции, использующий «require_new», например:
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
. Он работает отлично, новая транзакция создана.Проблема заключается в ситуациях отката: когда EJB2 завершается сбоем, происходит откат транзакции, как и ожидалось.Когда EJB1 дает сбой, все они откатываются, как и ожидалось, но не то, что мне нужно ...
То, что мне нужно, похоже, только вот это отличие: когда EJB1 не работает, он должен быть откат, но я хочу, чтобы EJB2 все ещесовершено, если это не терпит неудачу.
Я сделал меня понятным?Я не хочу, чтобы откат транзакции, когда ее родительский отказ не выполнялся, откатывается каждый.Мне нужна независимая транзакция (например, параллельная) для каждого EJB, который я вызываю из основного EJB.