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.