반응형

select * from qrtz_locks where sched_name = 'schedulerFactory' and lock name = 'TRIGGER_ACCESS' for update

 

쿼츠(Quartz) 스케쥴러를 사용하여 스프링 배치(Spring Batch)를 돌리려고 하는데, 쿼츠(Quartz) 에러가 발생했다. 그 중에서도 에러를 보니 아래와 같이 발생했다.

 

select * from qrtz_locks where sched_name = 'schedulerFactory' and lock name = 'TRIGGER_ACCESS' for update

 

이와 관련하여 stdrowlocksemaphore.java 여기와 관련된 에러도 발생했다.

 

그래서, 위의 문제에서 해당하는 QRTZ_LOCKS 테이블을 확인했다.

SELECT * FROM QRTZ_LOCKS;

 

LOCK_NAME이 TRIGGER_ACCESS다.

의심이 되는 건 2가지다.

중복된 데이터를 CRUD하거나, 다른 서버에서도 중복적으로 쿼츠(Quartz)를 실행하거나.

 

그래서 티베로(TIBERO) DB에서 세션을 확인했다.

그랬더니, 데드락걸린 세션이 몇 개 있었고, 그 세션을 죽이니 정상적으로 작동됐다.

세션을 죽이는 방법은 아래의 링크에서 확인하면 된다.

 

https://yongku.tistory.com/entry/%ED%8B%B0%EB%B2%A0%EB%A1%9CTIBERO-%EB%9D%BD-%ED%95%B4%EC%A0%9C-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

티베로(TIBERO) 락 해제 하는 방법

티베로(TIBERO)에서 락 해제 하는 방법은 아래의 코드처럼 따라하면 된다. 나는 서비스 단에서 데이터를 테이블에 INSERT를 할 때, Exclusive Lock이 걸렸다. 그래서, INSERT 쿼리문에서 더 이상 진행되지

yongku.tistory.com

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