1. WAS 버전 : WebSphere ND v7.0.0.7
2. OS : All
3. Error 발생 시점 : Oracle RAC 환경에서 DBLink 를 사용하는 부분에서 XA 트랜잭션을 호출할 경우
4. Error message : ORA-24777: 이전이 가능하지 않은 데이터베이스 링크 사용이 허용되지 않습니다.
5. 예상 이유 : Oracle 에서 DBLink 를 사용하면 자체적으로 XA 트랜잭션이 사용된다.
즉, 로컬 오라클 서버가 DBLink 를 통해 원격 서버를 액세스하면 이 액세스는 XA 트랜잭션을 동반하며 트랜잭션에 대한
TM(Transaction Manager)는 로컬 오라클 서버가 된다.
단, 여기서 조건이 하나 붙는데 DBLink 를 사용해서 XA 트랜잭션을 사용할 경우에는 반드시
Oracle 서버가 Dedicated 모드가 아닌 Shared 모드에서만 허용이 된다. 이는 Oracle 공식 문서에서 명시되어 있다.
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28424/adfns_xa.htm#BGBEBBDF
6. 조치 방안 : 이 경우 두가지 조치방안이 있을 수 있다.
1) XA 트랜잭션을 사용하지 말고 Non-XA 트랜잭션을 사용한다.
- 굳이 XA 트랜잭션이 필요하지 않다면 Non-XA 트랜잭션으로 호출하도록 한다.
2) XA 트랜잭션이 호출되는 Oracle 서버의 모드를 Dedicated 모드가 아닌 Shared 모드로 변경한다.
- XA 트랜잭션을 반드시 사용해야 하는 경우에는 Oracle 서버의 모드를 Shared 모드로 변경해야 한다.
'IBM - old > WAS 문제&해결' 카테고리의 다른 글
Windows 서비스로 등록된 WAS 가 시작되지 않을 경우 (0) | 2016.05.06 |
---|---|
EJB 호출시(remote call) stub 관련 ClassCastException (0) | 2016.05.06 |
Windows7에서의 IPv4, IPv6 충돌문제 (0) | 2016.05.06 |
IBMApplicationSession 을 이용 EAR 간의 Session 공유시 NullPointerException (0) | 2016.05.06 |
JMS client 가 Clustering 된 JMS Server 에 접속하여 Connect 를 받아올 때 오랜시간이 걸림 (0) | 2016.05.06 |
댓글