1.Client, Node server, Master server등을 2 Phase Commit(2PC)으로 수행시킬 때 client에서 tpcommit()을 수행하면
- Node server에 xa_prepare() 수행하도록, Master server에 xa_prepare() 수행하도록 call하고,
- Node server에 xa_commit() 수행하도록, Master server에 xa_commit() 수행하도록 call하여 xa_prepare(), xa_commit() 모두 OK이면 2PC 수행 !
=> 여기서 xa_prepare()는
1 Phase commit으로서, RDB의 변경된 Records를 commit시키는 단계이며 이 때는 commit 혹은 rollback 상태로 남아있게 됨.
또한 xa_commit()은
2 Phase commit으로서, RDB의 변경된 Records의 Lock을 해제시키는 단계임.
2.만약에 Node/Master server에서 xa_prepare()는 OK이고, Node server에서는 xa_commit() OK이지만 Master server에서 xa_commit() NOK여서 transaction이 pending되어있는 상태로 있을 때
ORA-2049: time-out: distributed transaction waiting for lock
ORA-1591: lock held by in-doubt distributed transaction ID 라는 ORACLE ERROR 발생.
=> 해결하기 위해서는
- TMS_ORACLE7을 2개에서 3 ~ 5개로 늘려서 booting시키고,
- “ubbconfig” 화일의 OPENINFO에서 SesTm=60 이상으로 설정. (client에서 tpbegin의 time-out 보다는 큰값을 설정).
- “$ORACLE_HOME/dbs/initORACLE7.ora” 화일에 정의되어 있는 process 수를 증가시킴.
3.발생원인
TMS_ORACLE7 및DB를 사용하는 server들은 booting시 각각 ORACLE session을 2개 사용하는데 ($ sqlplus sys/manager에서 SQL> select sid,process,username from v$session; 으로 확인 가능. 또한 “xa_NULL092595.log” 화일에서 xaostart에서 xaoend까지가 한개의 ORACLE session을 의미함)
다수의 client에서 많은 Transaction을 발생시키면 ORACLE session이 증가한다. 이 session은 tpcommit() 수행시 release되어야 하는데 ORACLE내에서 session 확보 측면에서 계속 가지고 있음 이런 상태가 계속되면 어느 순간에 “XAER_NOTA” 라는 에러가 발생되고, ORA-2049, ORA-1591 에러가 발생되어 서비스가 중단 됨 !
-> 정상적인 경우 AP 서버당 Oracle Session 2개가 Connection을 위하여 생성되며, Transaction 발생시 1개의 Session이 추가된다. 만약 여러 클라이언트에서 tpbegin() 한 후 tpcommit()을 하지 않은 Transaction이 발생하면 그 수 만큼 Session이 추가로 발생한다.
tpcommit()을 하면 추가된 Session은 모두 Release되고 1개의 Session은 Cache State로 남아 있는다.
이는 다음 Transaction 발생시 빨리 처리하기 위한 것 임
ORACLE에서 session의 수를 변경하기 위한 parameter는 “$ORACLE_HOME/dbs/initORACLE7.ora” 화일에 process로 정의되어 있음.
이 값은 실질적인 process 수 * 1.1 + 5 이상을 설정함.
'▶ Tuxedo > 기술자료' 카테고리의 다른 글
모 Site에서 발생한 문제 (0) | 2012.02.29 |
---|---|
모 Site에서 발생한 문제 (0) | 2012.02.29 |
Miracle9000 (SUN 호환기종)에서 작업중 발생한 문제 (0) | 2012.02.29 |
모 site에서 발생된 현상 (SEQUENT OS : Dynix 4.1, ORACLE 7.2.2) (0) | 2012.02.29 |
ORACLE 사용하여 TUXEDO server를 booting시킬 때 XA 관련 에러메세지가 발생하면 (0) | 2012.02.29 |