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
UserTransaction xact = ctx.lookup("javax.transaction.UserTransaction");

o

UserTransaction 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

UOWManager 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.