Globális tranzakciók támogatásának használata az alkalmazásokban

Az alkalmazások tranzakcióinak kezelésében a J2EE platform mind a programozható, mind a deklarációs tranzakcióelhatárolási megközelítés használatát lehetővé teszi.

A programozható megközelítés az összetevő által felügyelt tranzakció, a deklarációs megközelítés pedig a tároló által felügyelt tranzakció.

Összetevő által felügyelt (vagy komponens által felügyelt) tranzakció

A J2EE alkalmazások a JTA javax.transaction.UserTransaction felületet használják a tranzakció programozható behatárolásához a védett erőforrás adott módosításaira. Az összetevő által felügyelt tranzakciók a kiszolgáló kisalkalmazásban és az EJB környezetben is használhatók. EJB esetében a tranzakció attribútumot a telepítési leíróban TX_BEAN_MANAGED értékre kell állítani.

A tranzakciók normál esetben egy UserTransaction.begin() hívással kezdődnek. Amikor az alkalmazásösszetevő készen áll a módosítások véglegesítésére, akkor egy UserTransaction.commit() hívást indít a módosítások összehangolásához és véglegesítéséhez. Ha az alkalmazásösszetevőnek vissza kell görgetnie a tranzakciót, akkor egy UserTransaction.rollback() hívást indít és minden módosítás visszavonásra kerül. Például:

    // Get felhasználói tranzakció
    javax.transaction.UserTransaction transaction =
    ejbcontext.getUserTransaction();

    // Tranzakció indítása
    transaction.begin();

    // Módosítások végrehajtása a védett erőforrásokon.
    // Például a J2EE/CA CCI Interaction interface használata
    // EIS rendszer(ek) felé a módosítások elküldéséhez
    interaction.execute(interactionSpec, input, output);

    if (/* véglegesítés eldöntése */) {
    // a tranzakció véglegesítése
    transaction.commit();

    } else { /* visszagörgetés eldöntése */
    // a tranzakció visszagörgetése
    transaction.rollback();
    }

Tároló által felügyelt tranzakció

A tároló által felügyelt tranzakciók csak az EJB környezetben használhatók. Az EJB a tároló által felügyelt tranzakciókat a telepítési leíró tranzakció attribútumának segítségével (például a TX_REQUIRED értékkel) határozza meg deklarációs módon. A tároló által felügyelt tranzakciókat az EJB tároló kezeli. A tároló az EJB összetevő nevében meghívja a megfelelő metódusokat (úgymint begin, commit vagy rollback). Ez a deklarációs megközelítés leegyszerűsíti az EJB programhívásokat.

Kapcsolódó olvasmányok: A J2EE architektúráról és a JTA meghatározásokról további információkért lásd: http://java.sun.com/j2ee/docs.html.

Kapcsolódó fogalmak
Globális tranzakciók támogatása kétfázisú véglegesítéssel
Kétfázisú véglegesítés előfeltételei
Kapcsolódó hivatkozás
Kétfázisú véglegesítés környezeti szempontjai

Visszajelzés