기술 정보
home
채널 소개
home

서비스 운영 중 ALTER 문 실행 시 JDBC-12033 에러 발생

문서 유형
장애 해결
분야
모니터링/점검
키워드
lock
적용 제품 버전
7FS02PS
오류 코드
12033
12034

현상

서비스 운영 중 alter 문 수행 시, ‘JDBC-12033:Lock acquisition failed in NOWAIT mode’ 에러가 발생합니다.

원인

DDL 수행 시 DML X lock 적용 안되는 경우 JDBC-12033 에러가 발생하며 wait를 진행하지 않습니다.

해결

Table에 대한 lock을 설정해 alter문을 수행하도록 합니다.
참고
현재 상황에서는 먼저 lock 적용 트랜잭션이 대기 중인 것으로 보이므로 blocking 해소를 위해 commit/rollback 가이드를 제공합니다.
Session 1
Session 2
create table test01 (id number);
insert into test01 values (1);
Lock table test01 in exclusive mode wait 10; → insert가 commit 되기 전까지 10초간 wait. 10초가 지나면 time out으로 lock 설정안되고 ‘12034’ 에러 발생 (TBR-12034: Lock acquisition timed out in WAIT mode.) → 다른 세션이 table lock 설정되어 있으면 Lock획득불가
commit;
Locked.
SQL> alter table test01 add id2 number; Table 'TEST01' altered. → DDL의 경우, 자동으로 commit 되므로 별도의 commit 수행 불필요
SQL> commit; Commit completed.
SQL> insert into test01 values (2, 1) 1 row inserted.
SQL> commit; Commit completed.
SQL> select * from test01; ID ID2 1 2 1 2 rows selected.
Lock 설정된 session이 끊어지면 Lock도 자동 해제