Non utilizzare l'interfaccia UserTransaction da bean CMT

La specifica Java EE indica che i bean CMT (container-managed transaction) potrebbero non accedere all'oggetto UserTransaction. Tuttavia, WebLogic supporta la ricerca UserTransaction.

Questa regola contrassegna il seguente tipo di codice:

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

oppure

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

L'accesso a UserTransaction non è consentito nel bean in cui è contrassegnato. La soluzione dipende dall'operazione che il codice sta provando ad eseguire con UserTransaction. Esaminare l'utilizzo di UserTransaction per determinare il modo in cui è necessario modificare il codice o se è possibile rimuovere il riferimento.

Le alternative a UserTransaction comprendono l'utilizzo di UOWManager. La ricerca di questo gestore utilizza anche una ricerca JNDI; ad esempio:

UOWManager Lookup

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

Un altro approccio potrebbe essere l'utilizzo dell'interfaccia SessionSynchronization, che fornisce l'accesso ai metodi afterBegin, beforeCompletion e afterCompletion. Il metodo beforeCompletion consente di ripristinare la versione precedente della transazione, in caso di errore.