Nepoužívat rozhraní UserTransaction z objektů typu bean CMT

Specifikace Java EE označuje, že objekty typu bean CMT nemusí přistupovat k objektu UserTransaction. Server WebLogic však podporuje vyhledání UserTransaction.

Toto pravidlo označí následující typ kódu:

Vyhledání UserTransaction serveru WebLogic
< span class="Code"> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("javax.transaction.UserTransaction");

nebo

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

Přístup k UserTransaction není v objektu bean, kde je označen, povolen. Vaše řešení závisí na tom, co se kód pokouší provést s UserTransaction. Zkontrolujte použití UserTransaction, abyste určili, jak se kód musí změnit, nebo zda lze odkaz odebrat.

Alternativy k UserTransaction zahrnují použití UOWManager. Vyhledávání pro tohoto správce také používá vyhledání v rozhraní JNDI, například:

UOWManager Lookup

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

Jiný přístup může být pro použití rozhraní SessionSynchronization, které vám umožní přístup k metodám afterBegin, beforeCompletion a afterCompletion. Metoda beforeCompletion vám poskytne příležitost vrátit se k předchozí verzi transakce v případě, že nastane chyba.