1. 확약제어란?
1) 데이터베이스의 완전성을 보장해 주기 위해 사용한다.
2) DB2에서는 Journal을 이용하여 구현된다.
3) BeginTrans로 시작하여 CommitTrans 또는 RollbackTrans로 끝난다.
- CommitTrans : 그 사이의 모든 트랜잭션을 DB에 업데이트 한다
- RollbackTrans : 그 사이의 모든 트랜잭션을 DB에 업데이트 하지 않는다
2. Journal 작업 절차
1) 작업 상태를 기록하기 위한 Journal Receiver 생성
CRTJRNRCV JRNRCV(lib_name/rcv_name) THRESHOLD(5000)
THRESHOLD는 결과기록을 크기로 MB로 입력, 최소 권장값 5,000
2) Journal Receiver에 Transaction 저장을 위한 Journal 생성
CRTJRN JRN(lib_name/jrn_name) JRNRCV(lib_name/rcv_name) MNGRCV(*SYSTEM)
3) 테이블에 대한 Journal 시작
STRJRNPF FILE(lib_name/tbl_name) JRN(lib_name/jrn_name)
3. Journal 관련 명령
1) Journal Entry 보기
DSPJRN JRN(lib_name/jrn_name)
2) Journal Receiver 상세 정보 보기
DSPJRNRCVA JRNRCV(lib_name/rcv_name)
3) Journal의 메세지큐를 user01로 변경
CHGJRN JRN(lib_name/jrn_name) MSGQ(qgpl/user01)
4) 테이블에 대한 Journal 종료
ENDJRNPF FILE(lib_name/tbl_name) JRN(lib_name/jrn_name)
5) Journal 삭제
DLTJRN JRN(lib_name/jrn_name)
6) Journal Receiver 삭제
DLTJRNRCV JRNRCV(lib_name/rcv_name)
4. Error Messages
- SQL7008 - TBL_NAME in QGPL not valid for operation
테이블 TBL_NAME 이 Journal을 사용하도록 Start 되지 않은 경우이므로
저널을 신규로 생성하거나, 기존의 저널에 연결(Start) 시켜 준다.