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ó.
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(); }
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.