주식회사 누리아이티

정보자산의 보안강화를 위한 2차인증 보안SW 및 지문인식 OTP/출입/보안카드 전문기업

▶ Tuxedo/이슈

Oracle7과 Oracle8의 XA 구현 비교

누리아이티 2010. 5. 2. 18:24

이슈 : Oracle7과 Oracle8의 XA 구현 비교
       *----------------------------------------------------------------------------------------------------*
       |              내용                            |     Oracle 7.x         |          Oracle 8.x                    |      비고             |
       |--------------------------------+-------------------+------------------------------+----------------|
       | XA를 통한 사용자??꼭 권한을       | sys.v$xatrans$      | sys.v$xatrans$                       |                        |
       | 부여해야 되는 XA 관련 View        |                            | sys.dba_pending_transactions |                        |
       |--------------------------------+-------------------+------------------------------+----------------|
       | tpopen() 시에 Session 수            | 2 개                     | 1 개                                       | 7.x에서는 처음  |
       |                                                |                            |                                             | SQL을 처리시에 |
       |                                                |                            |                                             | 세션이 추가 됨   |
       |--------------------------------+-------------------+------------------------------+----------------|
       | Oracle Parameter                      |                            |                                              |                       |
       | - Process 수                            | (XA+NXA)서버수*1  | (XA+NXA)서버수*1                  |                       |
       | - Session 수                            | XA서버수*3+a         | XA서버수*1                             |                       |
       |                                                | NXA서버수*1         | NXA서버수*1                          |                       |
       |--------------------------------+-------------------+------------------------------+----------------|
       | OPENINFO에서 SesCashSZ 값    | Default = 20           | 필요없음                                |                        |
       |                                                | Resource가 부족할 | 이유) Session이 1개로 관리됨   |                        |
       |                                                | 경우 Oracle에서     |                                             |                         |
       |                                                | 0으로 설정할 것을   |                                             |                         |
       |                                                | 권장하지만 속도     |                                              |                        |
       |                                                | 저하 유발할 수도    |                                              |                        |
       |                                                | 있다고 함.             |                                              |                        |
       *----------------------------------------------------------------------------------------------------*
 

조치 : DBMS가 Oracle 8.x인 경우 참조/주의해야 할 사항
       1.DB Link를 사용하는 Logic을 XA Interface를 통해서 트랜잭션 제어를 받아야 하는 경우에는 관련된 Oracle
         Instance의 환경을 MTS 방식으로 설정이 되어 있어야 함(Oracle 7.x도 동일함).
       2.Oracle 8.0.4에서는 Oracle child process 메모리 증가, Cursor를 통한 Fetch 중에 다른 서비스를 호출하는 경우
         오류 등 검증 안된 문제점이 있는 것으로 보이므로 고객에 Oracle 8.0.5로 Upgrade할 것을 요청할 것
       3.Oracle 8.x에서는 EXEC SQL... 문을 수행한 후 결과가 실패(sqlca.sqlcode < 0)인 경우 Signal을 발생시키므로
         SQL문 다음에 서비스를 호출하는 경우 플?六?"TPSIGRSTRT"를 설정한 후 서비스 호출을 하여야 함.
         그렇지 않은 경우 서비스 호출 시에 "TPGOTSIG" 오류가 발생함.
       4.Oracle 8.x에서는 Oracle 7.x보다 XA 관련 View(v$xatrans$, dba_pending_transactions)에 대해서 Lock이

          자주 발생하기 때문에 TMS server booting 시에 오랜 시간이 걸려도 start 되지 않는 경우에 view에 Select query를

         보내어서 결과를 Check할 것.
         운영중에 Tuxedo admin이 Kill signal 또는 IPC를 통해 XA 관련 Server process를 비정상적으로 Shutdown 했을 때

         두 View에 Lock 발생빈도가 높은 것으로 보임.