Я написал небольшой тест для понимания асинхронного поведения в EJB3.1 с использованием аннотации @Asynchronous
. Кажется, что:
Если метод существует в том же компоненте, что и вызывающий объект,
- Вызов больше не асинхронизирован.
- Транзакция вызывающего абонента помечается для отката, если транзакция в асинхронном методе откатывается; это, вероятно, побочный эффект 1.
Однако, если асинхронный метод существует в другом компоненте, поведение ожидается, то есть вызов асинхронный, а транзакция вызывающего абонента независима (асинхронный метод для транзакции имеет поведение REQUIRES_NEW). Это меня озадачивает, потому что в обоих случаях поведение не одинаково. Кто-нибудь, пожалуйста, уточните?
P.S. Environment EJB 3.1, JBoss 6