확약 제어 (Commitment Control)


  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) 시켜 준다.