használjon UserTransaction felületet a CMT komponensekből

A Java EE előírás jelzi, hogy a konténer által kezelt tranzakció (CMT) típusú komponensek esetleg nem tudnak hozzáférni a UserTransaction objektumhoz. A WebLogic rendszer azonban támogatja a UserTransaction kikeresés használatát.

Ez a szabály a következő típusú kódot látja el jelzővel:

UserTransaction WebLogic kikeresés
class="Code"> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("javax.transaction.UserTransaction");

vagy

class="Code"> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("weblogic.transaction.UserTransaction");

A UserTransaction objektum elérése a komponensben nem engedélyezett, ha az jelzővel van ellátva. Az alkalmazandó megoldás attól függ, hogy a kód mit próbál tenni a UserTransaction objektummal. Vizsgálja meg a UserTransaction objektum használatát annak megállapításához, hogy miként kell módosítani a kódot, vagy eltávolítható-e a hivatkozás.

A UserTransaction objektum alternatívái közé tartozik például az UOWManager objektum használata. Ezen kezelő kikeresése szintén JNDI kikeresést alkalmaz, például:

UOWManager kikeresés

< span class="Code"> < "JavaType"> UOWManager < /span> uowMgr = ctx.lookup(" java:comp/websphere/UOWManager ");

Újabb megközelítést jelenthet a SessionSynchronization felület használata, mely az afterBegin, beforeCompletion és afterCompletion metódushoz ad hozzáférést. A beforeCompletion metódus lehetőséget ad arra, hogy hiba esetén visszatérjen a tranzakció előző változatához.