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.