title: Asynchronous EJB 3.1 methods and Transactions
body: <p>I wrote a small test to understand asynchronized behavior in EJB3.1 using <code>@Asynchronous</code> annotation. It seems that: </p>
  
  <p>If the method exist in the same bean as the caller, </p>
  
  <ol>
  <li>Call is no longer asynchronized.  </li>
  <li>The caller transaction is marked for roll back, if the transaction in the asynchronous method is rolled back; its probably the side effect of 1.</li>
  </ol>
  
  <p>However, if the asynchronous method exists in another bean, the behavior is expected i.e. call is asynchronous and the caller transaction is independent (async method have REQUIRES_NEW behavior for transaction). This is puzzling for me, as why the behavior is not the same in both cases. Would someone please clarify?</p>
  
  <p><em>P.S. Environment EJB 3.1, JBoss 6</em></p>