Java EE 스펙은 CMT(Container-Managed Transaction) Bean이 UserTransaction 오브젝트에 액세스하지 못할 수도 있다는 것을 표시합니다. 하지만, WebLogic은 UserTransaction 검색을 지원합니다.
이 규칙은 다음의 코드 유형을 플래그 지정합니다.
WebLogic UserTransaction 검색
< span class="Code"> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("weblogic.transaction.UserTransaction");
플래그 지정되는 Bean에서는 UserTransaction 액세스가 허용되지 않습니다. 코드가 UserTransaction으로 어떤 작업을 시도하는지에 따라 솔루션이 달라집니다. 코드를 변경해야 하는 방법 또는 참조를 제거할 수 있는지 여부를 판별하려면 UserTransaction 사용을 검사하십시오.
UserTransaction의 대안으로는 UOWManager를 사용하는 방법이 있습니다. 이 관리자의 검색도 JNDI 검색을 사용합니다. 예를 들어, 다음과 같습니다.
UOWManager 검색다른 방법은 SessionSynchronization 인터페이스를 사용하는 것이며 이를 사용하면 afterBegin, beforeCompletion 및 afterCompletion 메소드에 액세스할 수 있습니다. beforeCompletion 메소드를 사용하면, 오류 발생 시 트랜잭션의 이전 버전으로 되돌릴 수 있습니다.