에러 메시지 : sqlstate=40001 reason code 68
=============================
내용 :
현재 작업 단위(UOW)에 오브젝트 사용에 대한 미해결 경합이 발생하여 작업 단위가 롤백되었습니다.
이유 코드는 다음과 같습니다.
- 2
- 교착 상태로 인해 트랜잭션이 롤백되었습니다.
- 68
- 잠금 시간종료로 인해 트랜잭션이 롤백되었습니다.
- 72
- 트랜잭션에 속한 DB2 Data Links Manager 관련 오류로 인해 트랜잭션이 롤백되었습니다.
응용프로그램이 이전의 COMMIT로 롤백되었습니다.
교착 상태 또는 잠금 시간종료를 피하려면, 장시간 실행되는 응용프로그램이나 교착 상태가 발생할 수 있는 응용프로그램에 대해 가능하면 COMMIT 조작을 자주 발행하십시오.
페더레이티드 시스템 사용자: 페더레이티드 서버 또는 데이터 소스에서 교착 상태가 발생할 수 있습니다. 데이터 소스와 잠재적으로는 페더레이티드 시스템 전역에 걸친 교착 상태를 발견하는 메커니즘은 없습니다. 요청에 실패한 데이터 소스를 식별하는 것은 가능합니다. (SQL문 처리에 실패한 데이터 소스를 알아내려면 문제점 해결 안내서를 참조하십시오.)
교착 상태는 대개 정상적이거나 특정 SQL문 조합을 처리하는 동안 예상됩니다. 교착 상태가 발생하는 범위를 피하도록 응용프로그램을 설계하는 것이 바람직합니다.
sqlcode : -911
sqlstate : 40001
=============================
'sqlstate=40001 reason code 68' 메시지가 일어난 내 경우는
데이터를 삭제하고 다시 삽입을 하는 작업 중이였는데,
해당 테이블의 컬럼이 110개정도에 데이터는 20만건이 넘었다.
당연히 시간이 오래걸리는데, 기다리다보니 토드가 뻑나고 응답없음이 뜨는 것이다.
본의 아니게 강제종료가 되었고 다시 해당 테이블을 조회하니 'sqlstate=40001 reason code 68' 메시지가 나왔다.
조회가 되지 않고, 해당 테이블은 데드락이 걸렸다.
여기저기 검색을 해보니 이러한 경우는 (잘 모르겠지만)다시 롤백을 하느라 걸리는 시간 때문에 테이블락이 걸린다고 한다.
긴장하고 또 긴장하고...
약10분이 지나니까 테이블락이 자동으로 풀렸다. (다행이다)
TIP :
이 때, 테이블을 조회할려면 'SELECT * FROM TABLE WITH UR'을 해보자
쿼리의 맨 마지막부분에 'WITH UR'을 입력하면 조회가 가능하다.
출처 : http://www-01.ibm.com/support/knowledgecenter/?lang=ko
'IT 자료' 카테고리의 다른 글
DB2 트랜젝션 로그 확인하기 (0) | 2015.07.23 |
---|---|
DB2 메모리 사용 현황 (0) | 2015.07.21 |
Input not sanitized (0) | 2015.06.16 |
DB2 SQLSTATE=23505 (0) | 2015.06.09 |
마이플랫폼 그리드 양수만 입력 (0) | 2015.05.19 |