Асинхронные методы и транзакции EJB 3.1

Я написал небольшой тест, чтобы понять асинхронное поведение в EJB3.1, используя аннотацию @Asynchronous . Похоже, что:

Если метод существует в том же bean-компоненте, что и вызывающий,

  1. Call больше не асинхронизируется.
  2. Вызывающая транзакция помечается для отката, если транзакция в асинхронном методе откатывается; это, вероятно, побочный эффект 1.

Однако, если асинхронный метод существует в другом bean-компоненте, поведение ожидается, т.е. вызов является асинхронным, а транзакция вызывающей стороны независима (асинхронный метод имеет поведение REQUIRES_NEW для транзакции). Меня это озадачивает, почему поведение в обоих случаях неодинаково. Кто-нибудь, пожалуйста, поясните?

P.S. Среда EJB 3.1, JBoss 6

6
задан anergy 5 October 2011 в 10:07
поделиться