EJB-Transaktionen in lokalen Methodenaufrufen

In den folgenden Einstellungen funktioniert Methode B führen in eine (neue) Transaktion?

Einer EJB werden, zwei Methoden, Methode A und Methode B

public class MyEJB implements SessionBean
    public void methodA() {
       doImportantStuff();
       methodB();
       doMoreImportantStuff();
    }

    public void methodB() {
       doDatabaseThing();
    }
}

Den EJB-container verwaltet werden, mit methodB in requires_new Transaktion und Methode Ein in der gewünschten Transaktion. also:

<container-transaction id="MethodTransaction_1178709616940">
  <method id="MethodElement_1178709616955">
    <ejb-name>MyName</ejb-name>
    <method-name>*</method-name>
  <trans-attribute>Required</trans-attribute>
  </method>
  <method id="MethodElement_1178709616971">
    <ejb-name>MyName</ejb-name>
    <method-name>methodB</method-name>
  </method>
  <trans-attribute>RequiresNew</trans-attribute>
</container-transaction>

Lassen Sie uns nun einen anderen EJB-Aufruf methodA mit einem EJB-Methodenaufruf.
methodA jetzt läuft in einer Transaktion. Wird der nachfolgende Aufruf von methodB von methodA laufen in der gleichen Transaktion, oder läuft es in einer neuen Transaktion?
(denke, dass es auf den tatsächlichen code hier. Es gibt keine explizite ejb-Aufruf Methode B)

InformationsquelleAutor der Frage | 2009-01-09

Schreibe einen Kommentar