프로그래밍/database
[Oracle]DB LOCK 확인, 해제하기 - db반응이 없는 경우, db리턴 못함
***bmo***
2023. 4. 28. 14:33
반응형
댓글 삭제하는 기능 어제까지 잘 되다가 갑자기 먹통됐다.
로그를 보면 컨트롤러로 데이터 전달 잘되고 매퍼까지 잘 연결이 됐다.
문제는 뒤에 db다녀와서 리턴값이 찍혀야하는데 db에 연결을 못함..ㅜㅜ
ajax통신은 에러뜨지도 않고 처음보는 현상이라 몇시간을 날렸다.
원인은 공동작업하는 다른 계정에서 해당세션에 커밋을 안해서 사용하는 db계정 테이블에 락이 걸려있어서 그랬다...
락이 걸린 개체 찾기
SELECT A.SID
, A.SERIAL#
, object_name
, A.SID || ', ' || A.SERIAL# AS KILL_TASK
FROM V$SESSION A
INNER JOIN V$LOCK B
ON A.SID = B.SID
INNER JOIN DBA_OBJECTS C
ON B.ID1 = C.OBJECT_ID
WHERE B.TYPE = 'TM';
조회해보니 엄청 걸려있었다...
세션 죽이기
ALTER system kill session 'sid번호, serial번호';
락이 걸려있는지 확인하고 해제해야한다. 커밋을 생활화합시다.....
반응형