异步EJB 3.1方法和事务

时间:2011-10-05 10:07:31

标签: java java-ee ejb-3.1

我编写了一个小测试来使用@Asynchronous注释来理解EJB3.1中的异步行为。看来:

如果方法与调用者存在于同一个bean中,

  1. 呼叫不再是异步的。
  2. 如果异步方法中的事务被回滚,则调用者事务被标记为回滚;它可能是1的副作用。
  3. 但是,如果异步方法存在于另一个bean中,则行为是预期的,即调用是异步的,调用者事务是独立的(异步方法对事务具有REQUIRES_NEW行为)。这对我来说很困惑,因为在这两种情况下行为都不一样。请有人澄清一下吗?

    P.S。环境EJB 3.1,JBoss 6

1 个答案:

答案 0 :(得分:5)

使用this关键字而不是使用SessionContext#getBusinessObject(class)来调用该方法会导致该问题。 (区别在于here

相关问题