Background Image

FORUM

조회 수 56 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Linux 64bit
CUBRID Ver.
9.3 (9.3.9.1202)
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
JAVA (Terastream)


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

 

안녕하세요?
CUBRID 사용 중 LOCK 관련 이슈가 있어 문의드립니다.

현재 애플리케이션 단에서는 정상적으로 트랜잭션이 COMMIT까지 수행된 것이 확인됩니다.

실제로 쿼리 에디터 로그에서도 동일 세션(query_editor_X)에 대해 end_tran COMMIT이 기록되어 있습니다.
그런데 event 로그에서는 동일 세션이 이후에도 계속 blocker로 남아 있으며, 

LOCK을 유지한 상태로 다른 트랜잭션의 LOCK_TIMEOUT을 유발하고 있습니다.

 

정확한 현상은 다음과 같습니다.

  1. 쿼리 에디터 로그에서는 문제 구간 직전까지 일련의 업데이트 쿼리 수행 후 end_tran COMMIT이 정상적으로 기록됨

  2. 그러나 event 로그에서는 동일한 세션이 COMMIT 이후에도 계속 blocker 로 남아 있으며, 시간 경과 후에도 해제되지 않음

  3. 그로 인해 별도의 세션에서 연관 테이블 접근 시 계속해서 LOCK_TIMEOUT이 발생

  4. COMMIT 이후에는 해당 세션에서 추가적인 쓰기 쿼리나 트랜잭션 활동이 없음에도 불구하고 blocker 상태가 유지됨

확인에 필요한 관련 event 로그 및 query_editor 로그 함께 첨부해드립니다.
문제발생 시점 가장 최신 데이터로 이후 찍힌 로그는 없었으며 중간에 생략된 이벤트 또한 동일한 blocker로 인한 timeout 이벤트입니다.
또한 blocker로 나와있는 쿼리는 update/insert select 문입니다.
 
개인정보 등의 이유로 일부 데이터 마스킹, 생략된점 양해 바랍니다.

 

  • ?
    김종무 2025.12.11 15:24

    안녕하세요, 큐브리드를 이용해주셔서 감사합니다.

    첨부해주신 sql.log를 확인해보니 SESSION TIMEOUT 로그는 찍혀있지만, disconnect 로그가 찍혀있지 않은 걸로 확인됩니다.

    cubrid tranlist <db_name> | cubrid tranlist <db_name>@localhost

    위 유틸리티 명령어를 사용하여 현재 트랜잭션 상황을 파악해야지만 보다 더 정확한 답변을 드릴 수 있을 것 같습니다.

    유틸리티 관련하여 메뉴얼 주소 남겨드리겠습니다. 참고하여 사용해주시길 바랍니다.

    https://www.cubrid.org/manual/ko/9.3.0/admin/admin_utils.html?highlight=tranlist#tranlist

    감사합니다.


Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales