락 상태를 확인하거나 Waiting에 빠진 상태를 확인하기 위해 db2top (U옵션) 혹은 db2pd –locks wait 등의 명령어를 통해 확인을 한다.
두 명령어 모두 서버에서만 실행가능한 명령어이기 때문에 사용의 제약이 발생한다. SQL로 실행하여 lock 상태는 다음과 같이 snapshot 함수를 통해 확인 가능하다.
SELECT a.locks_held, a.MEMBER, a.agent_id app_handl, substr(b.appl_name,1,20) app_name, a.APPL_CON_TIME, a.lock_wait_time, substr(b.client_nname,1,20) client_name, b.client_platform FROM SYSIBMADM.SNAPAPPL AS a, SYSIBMADM.APPLICATIONS b WHERE locks_held > 0 AND a.agent_id = b.agent_id order by locks_held desc |
결과 값
LOCKS_HELD MEMBER APP_HANDL APP_NAME APPL_CON_TIME LOCK_WAIT_TIME CLIENT_NAME CLIENT_PLATFORM ------------- ---------- ------------ ----------- ----------------- -------------------- -------------------- --------------- 2 0 80 db2bp 2012-08-24-12.14.15.363344 0 pureScale LINUXX8664 |
App_Handle이 80인 Application이 2개의 lock를 가지고 있음을 확인할 수 있다.
잠금 대기(Lock waiting)에 놓인 테이블을 통하여 어떤 Application에 의해 Lock Chain이 발생했는지 확인 가능하다.
select substr(tabschema,1,8) || '.' || substr(tabname,1,16) tabname, lock_name, substr(lock_object_type,1,12) lock_object_type, req_application_handle, req_member,substr(req_application_name,1,14) req_app_name,hld_member, hld_application_handle, substr(hld_application_name,1,14) hld_app_name, substr(req_stmt_text,1,32) req_stmt, substr(hld_current_stmt_text,1,26) hel_cur_stmt from SYSIBMADM.MON_LOCKWAITS |
결과 값
TABNAME LOCK_NAME LOCK_OBJECT_TYPE REQ_APPLICATION_HANDLE REQ_MEMBER REQ_APP_NAME HLD_MEMBER HLD_APPLICATION_HANDLE HLD_APP_NAME REQ_STMT HEL_CUR_STMT --------- -------------------------------- ---------------- ---------------------- ---------- -------------- ---------- ---------------------- -------------- -------------------------------- -------------------------- INST10 .T1 03000800040000000000000052 ROW 70 0 db2bp 0 60 db2bp delete from t1 |
T1 테이블에 대해서 Lock을 잡고 있는 Application(HLD_APPLICATION_HANDLE) 은 60번이고,
Lock 을 얻고자 요청한 Application(REQ_APPLICATION_HANDLE)은 70번이다.
이 경우 lock chain 현상을 풀고자 60번 Application을 강제로 죽이면 chain현상은 풀리게 된다.
db2 “force application(‘60’)” |
'Note' 카테고리의 다른 글
[개발] DB2 JDBC Driver 버전 (0) | 2012.10.29 |
---|---|
[SQL] rownum 사용 시 주의점 (0) | 2012.10.22 |
[관리] 접속한 Application 개수 및 정보 확인 (0) | 2012.09.10 |
[개발] 오라클 정규식 함수의 이관 (0) | 2012.09.10 |
[SQL] Multi Action Trigger (0) | 2012.05.31 |