iSeriesC의 복구 및 데이터베이스 무결성 고려사항

EGL 프로그램은 DB2®가 iSeriesC 환경에서 제공하는 모든 복구 및 데이터 무결성 기능을 사용할 수 있습니다.

DB2 프로그램에 영향을 미치는 대부분의 커미트 제어 문제점은 원시 데이터베이스에 대한 문제점과 동일합니다. 이 절에서는 일부 차이점을 다룹니다.

DB2 데이터베이스는 복구 가능한 자원입니다. 프로그램이 DB2 테이블에 대한 변경사항을 작성하고 프로그램이 커미트 제어와 함께 준비된 경우(COMMIT 매개변수는 CRTSQLCBLI(SQL ILE COBOL 오브젝트 작성) 명령에서 *NONE과 같지 않음) 변경사항이 데이터베이스로 커미트됩니다. 작업 또는 활성화 그룹이 종료되거나 암시적 또는 명시적 EGL 커미트가 발생하는 경우 변경사항이 데이터베이스에 커미트됩니다. 암시적 및 명시적 커미트 제어에 대한 자세한 정보는 iSeriesC 데이터베이스 커미트 제어의 고려사항의 내용을 참조하십시오.

STRCMTCTL(커미트 제어 시작) 명령의 CMTSCOPE(커미트 범위) 매개변수가 *JOB 또는 *ACTGRP가 되도록 커미트 제어의 범위를 정의합니다. 첫 번째 SQL 문이 실행될 때 STRCMTCTL 문이 아직 실행되지 않은 경우 DB2가 명령을 실행합니다. 그렇지 않으면 커미트 범위가 완료될 때 DB2가 ENDCMTCTL(커미트 제어 종료) 명령을 실행합니다. 논리적 작업 단위(LUW)가 종료되기 전에 또는 명시적 EGL 롤백이 요청되기 전에 프로그램이 비정상적으로 종료되는 경우 LUW 시작 이후로 작성된 모든 변경사항이 백아웃됩니다.

EGL DB2 프로그램의 커미트 제어는 CRTSQLCBLI 명령의 COMMIT 매개변수를 통해 제어됩니다. *NONE이 지정되면 프로그램이 커미트 제어 아래에서 실행되지 않습니다. EGL 프로그램이 execute 문에서 SQL DROP COLLECTION, GRANT 또는 REVOKE 명령을 실행하는 경우 *NONE을 지정해야 합니다.

EGL DB2 준비 스크립트 FDAPREP에서 COMMIT 매개변수의 기본값은 *CHG입니다. 사용자 기호 매개변수(symparm)가 EGL 프로그램 생성 중에 커미트 값을 설정하도록 이 스크립트를 수정할 수 있습니다. 이 스크립트 수정은 다중 프로그램 간에 COMMIT 값의 변형을 쉽게 해줍니다. 스크립트 수정에 대한 정보는 EGL 생성 안내서를 참조하십시오. DB2를 사용하는 커미트 제어는 여기에 나열된 사항을 제외하고 원시 데이터베이스 파일을 사용하는 커미트 제어와 동일합니다.