간헐적으로 cbo 테이블에 업데이트가 안된다는 얘기를 들어서 원인을 추적중인데요.(직접 보진 않았음)
modify 테이블 후 commit work 가 없더라고요.
commit work가 없다고 해서 테이블에 값이 업데이트가 안되는 문제가 있을 수도 있나요??
간헐적으로 cbo 테이블에 업데이트가 안된다는 얘기를 들어서 원인을 추적중인데요.(직접 보진 않았음)
modify 테이블 후 commit work 가 없더라고요.
commit work가 없다고 해서 테이블에 값이 업데이트가 안되는 문제가 있을 수도 있나요??
안녕하세요.
프로그램의 CBO 테이블의 저장 트랜잭션에 있어서 시작과 끝 사이에 오류가 발생하지 않는다면,
트랜잭션 종료 이후 Commit work 명령어와 관계없이 [묵시적으로] 트랜잭션은 처리가 됩니다. (우선순위가 낮은 비동기 처리)
Commit work 명령어를 사용하면, [명시적으로] 현재까지 처리된 트랜잭션을 DB로 Commit 처리하라는 의미구요. (우선순위가 높은 비동기 처리)
정리하면, 저장 중 오류가 발생하지 않았다면 명령문과 관계없이 DB로 커밋처리가 됩니다.
만약, CBO테이블 저장 이후 실행로직 중 rollback work 로직을 만나게 된다면, 앞서 테이블 저장은 롤백이 됩니다.
문제가 있는 프로그램의 CBO 저장 로직 앞뒤로 로그를 심어두시고 모니터링을 하는 방안을 추천드립니다.