Как «сделать что-то» после фиксации транзакции EJB3? - PullRequest
1 голос
/ 21 апреля 2011

Есть ли в EJB3 что-то, что позволяет мне выполнять некоторый код сразу после принятия транзакции (я хочу отправлять сообщения XMPP, чтобы уведомлять внешние устройства об обновлениях)?JTA API и использование моего собственного написанного ресурса XA, но я чувствую, что это не тот инструмент.

Thx

1 Ответ

3 голосов
/ 22 апреля 2011

Создайте сессионный компонент с сохранением состояния, который реализует javax.ejb.SessionSynchronization, и вызовите метод из транзакции. Метод afterCompletion будет вызываться с результатом транзакции.

Обновление: если вы используете EJB 3.1, вы можете аннотировать метод SFSB с помощью @AfterCompletion вместо реализации интерфейса.

...