6
我使用@Asynchronous
注释编写了一个小测试,以了解EJB3.1中的异步行为。看来:异步EJB 3.1方法和事务
如果该方法在同一个bean作为主叫存在,
- 呼叫不再异步。
- 如果回滚异步方法中的事务,则调用方事务标记为回滚;它可能1.
然而,如果异步方法在另一个bean存在,行为预计即呼叫的副作用是异步的,并且呼叫方的交易是独立的(异步方法具有用于交易REQUIRES_NEW行为)。这令我感到困惑,因为这两种情况下的行为都不一样。有人请澄清?
P.S.环境EJB 3.1,JBoss 6
你是否使用'SessionContext#getBusinessObject(class)'调用方法而不是使用'this'关键字? (差异是解释[这里](http://stackoverflow.com/questions/3381002/how-is-the-return-value-of-sessioncontext-getbusinessobject-different-from-thi/3384128#3384128)) – stratwine
@ stratwine几乎可以肯定的问题,我只是将其转换为答案。 –
@stratwine您是对的,请在回答中写下您的意见,以便我可以接受 – anergy