Komponentengesteuerte Transaktionen verwenden

Sie können eine Session-Bean, ein Servlet oder eine Application-Client-Komponente für die Verwendung komponentengesteuerter Transaktionen und die direkte Verwaltung der eigenen Transaktionen aktivieren, die sonst vom Container verwaltet werden.

Informationen zu diesem Vorgang

Anmerkung: Entity-Beans können keine Transaktionen verwalten (und deshalb keine Bean-gesteuerten Transaktionen verwenden).

Gehen Sie wie folgt vor, um eine Session-Bean, ein Servlet oder eine Application-Client-Komponente für die Verwendung komponentengesteuerter Transaktionen zu aktivieren:

Vorgehensweise

  1. Für Session-Beans setzen Sie das Attribut Transaktionstyp im Komponentenimplementierungsdeskriptor auf Bean. Verwenden Sie dazu die Beschreibung im Artikel Transaktionsattribute konfigurieren.
  2. Aktivieren Sie für Anwendungsclientkomponenten die Unterstützung für Transaktionsabgrenzung, indem Sie das Attribut JTA-Abgrenzung zulassen im Komponentenimplementierungsdeskriptor gemäß der Beschreibung im Artikel Transaktionsattribute konfigurieren setzen.
  3. Schreiben Sie den Komponentencode so, dass die Bean Transaktionen aktiv verwalten kann.

    Für Session-Bean mit Statusaufzeichnung (Stateful-Session-Beans) muss eine Transaktion, die in einer bestimmten Methode gestartet wurde, nicht abgeschlossen (d. h. festgeschrieben oder zurückgesetzt) sein, damit die Methode beendet werden kann. Die Transaktion kann zu einem späteren Zeitpunkt, z. B. in einem nachfolgenden Aufruf derselben Methode oder einer anderen Methode, abgeschlossen werden. Im Hinblick auf das Debugging und die Verwaltung wird jedoch empfohlen, eine Anwendung so aufzubauen, dass Transaktionen in einem Methodenaufruf gestartet und beendet werden.

    Der folgende Codeauszug zeigt den Standardcode, der erforderlich ist, um ein Objekt anzufordern, das den Transaktionskontext kapselt.
    • Durch den Aufruf einer Lookup-Operation für java:comp/UserTransaction wird ein Objekt javax.transaction.UserTransaction erstellt.
    • Das Objekt UserTransaction wird verwendet, um bei Bedarf die Grenzen einer Transaktion mit Transaktionsmethoden wie begin und commit zu kennzeichnen. Wenn eine Anwendungskomponente eine Transaktion startet, muss sie diese Transaktion auch beenden. Dies geschieht entweder durch Aufrufen der Methode commit oder der Methode rollback.
    . ..
    import javax.transaction.*;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    ...
        public float doSomething(long arg1)throws NamingException {
            InitialContext initCtx = new InitialContext();
            UserTransaction userTran = (UserTransaction)initCtx.lookup(
               "java:comp/UserTransaction");
            ...
            //userTran-Objekt für den Aufruf von Transaktionsmethoden verwenden
            userTran.begin ();
            //und die Transaktion ausführen
            ...
            userTran.commit ();
            ...
        }
        ...
    }

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjta_usebmt
Dateiname:tjta_usebmt.html