Я знаю, что есть много вопросов о message driven beans
и транзакциях, однако я не смог найти ответ (как я думаю) должен быть распространенным сценарием.
У меня есть служба, которую можно вызвать для отправки электронных писем. Когда он вызывается, он создает запись электронной почты в таблице, а затем отправляет идентификатор в ActiveMQ
для обработки. Пока все хорошо, однако очередь выбирает идентификатор и пытается отправить электронное письмо до того, как транзакция будет зафиксирована, а электронное письмо не находится в базе данных.
Сама услуга является транзакционной, но она также может быть частью более крупной транзакции.
Каков наилучший способ справиться с этим сценарием? В настоящее время я использую Thread.sleep в Consumer
, который работает; однако это кажется грязным ...
(Я не использую Spring)
@Observes
TransactionPhase... JavaEE). - person StuPointerException   schedule 23.02.2016