* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
|
Linux 64bit |
|
|
9.3 (9.3.9.1202) |
|
|
[도움말]-[버전정보] 확인 |
|
|
JAVA (Terastream) |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
| 에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
| 관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
현재 애플리케이션 단에서는 정상적으로 트랜잭션이 COMMIT까지 수행된 것이 확인됩니다.
실제로 쿼리 에디터 로그에서도 동일 세션(query_editor_X)에 대해 end_tran COMMIT이 기록되어 있습니다.
그런데 event 로그에서는 동일 세션이 이후에도 계속 blocker로 남아 있으며,
LOCK을 유지한 상태로 다른 트랜잭션의 LOCK_TIMEOUT을 유발하고 있습니다.
정확한 현상은 다음과 같습니다.
-
쿼리 에디터 로그에서는 문제 구간 직전까지 일련의 업데이트 쿼리 수행 후
end_tran COMMIT이 정상적으로 기록됨 -
그러나 event 로그에서는 동일한 세션이 COMMIT 이후에도 계속 blocker 로 남아 있으며, 시간 경과 후에도 해제되지 않음
-
그로 인해 별도의 세션에서 연관 테이블 접근 시 계속해서 LOCK_TIMEOUT이 발생
-
COMMIT 이후에는 해당 세션에서 추가적인 쓰기 쿼리나 트랜잭션 활동이 없음에도 불구하고 blocker 상태가 유지됨