SW/Database / / 2025. 5. 15. 22:41

✅ ORA-00071: attempt to destroy lock by a thread that did not create it / 원인과 해결 방법

반응형

ORA-00071: attempt to destroy lock by a thread that did not create it

이 오류는 하나의 스레드가 자신이 생성하지 않은 락을 제거하려고 할 때 발생합니다. 일반적으로 Oracle 내부 구조나 사용자 정의 락 처리 로직에서 나타날 수 있습니다.

 

 

오류 원인

  1. 락을 생성한 세션/스레드와 제거하려는 주체가 일치하지 않음
  2. 사용자 정의 락 관리 로직에서 오류 발생
  3. Oracle 내부에서 다중 스레드/세션 간 자원 충돌 발생

해결 방법

  1. 락 생성과 제거를 동일 세션 또는 동일 트랜잭션 내에서 수행
  2. 락 추적 시:
    SELECT * FROM dba_locks WHERE session_id = (세션 ID);
  3. PL/SQL 프로그래밍 시, DBMS_LOCK 사용 시 주의 필요
  4. 잠금 관련 코드를 트랜잭션 단위로 정리

간단 요약

  • 오류 코드: ORA-00071
  • 오류 요약: 다른 스레드가 만든 락을 제거하려는 시도
  • 주요 원인: 락 생성/제거 주체 불일치
  • 해결 방법: 동일 트랜잭션/세션 내에서 처리, 코드 재검토

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유