비CICS 환경을 위한 PSB 스케줄링
비CICS 환경에서 PSB 스케줄링은 CICS® 환경에서와 다르게 처리됩니다.
다음 절에서는 PSB 스케줄링 및 런타임 시 대체 PSB 사용에 대해 설명합니다.
PSB 스케줄링
IMS/VS, IMS™ BMP 및 z/OS® 일괄처리에 대해 프로그램을 실행하는 동안 DL/I 초기화는 단일 PSB를 스케줄합니다. 이 PSB는 하나의 일괄처리 작업 단계 또는 IMS 트랜잭션에 대해 유일하게 사용 가능합니다.
실행 단위의 모든 EGL 프로그램과 비EGL 프로그램은 같은 PSB를 공유해야 합니다. 실행 단위에는 transfer to program 문을 사용하여 전송하거나 호출하는 모든 프로그램이 포함됩니다. IMS BMP 및 z/OS 일괄처리의 경우, 실행 단위에는 transfer to transaction 문을 사용하여 전송하는 모든 프로그램도 포함됩니다. IMS/VS의 경우, transfer to transaction 문을 사용하여 전송하는 프로그램의 실행 단위는 전송 프로그램의 실행 단위와 다릅니다.
IMS/VS의 경우, IMS 시스템 정의에 PSB를 지정하십시오. IMS PSB 이름은 프로그램 이름과 동일해야 합니다. PSB는 IMS 트랜잭션을 시작할 때 스케줄됩니다.
IMS BMP 및 z/OS 일괄처리의 경우, 일괄처리 작업을 실행하는 JCL에 PSB의 이름을 지정하십시오. PSB는 IMS BMP 또는 z/OS 일괄처리 작업을 시작할 때 스케줄됩니다.
커미트 지점 및 논리적 작업 단위
논리적 작업 단위(LUW)는 커미트 지점 또는 롤백이 발생할 때마다 종료됩니다.
- 실행 단위의 최상위 레벨 프로그램이 성공적으로 종료됩니다.
z/OS 일괄처리 및 IMS BMP의 경우, 실행 단위는 transfer 또는 call 문을 사용하여 서로 간에 제어를 전송하는 모든 EGL 프로그램과 비EGL 프로그램으로 구성됩니다. 비EGL 프로그램의 경우에는 OS XCTL 매크로 또는 CALL 문을 사용하는 모든 전송도 포함됩니다.
IMS/VS의 경우 실행 단위는 단일 트랜잭션과 동등하며, transfer to program 문 또는 call 문을 사용하여 서로 간에 제어를 전송하는 모든 EGL 프로그램 및 비EGL 프로그램으로 구성됩니다. 비EGL 프로그램의 경우 여기에는 CALL 문을 사용하는 전송이 포함됩니다.
- 프로그램은 converse문을 사용합니다.
- z/OS 일괄처리 및 일괄처리 지향 IMS BMP 프로그램의 경우, 프로그램은 transfer to transaction 문을 사용하여 전송하며 synchOnTrxTransfer 빌드 디스크립터 옵션은 전송하는 프로그램에 대해 YES로 설정됩니다.
- 프로그램이 sysLib.commit 함수를 호출합니다.
z/OS 일괄처리의 경우, DL/I를 사용하지 않는 EGL 프로그램은 프로그램이 SQL 테이블을 변경한 경우에만 커미트 지점을 실행합니다. 비EGL 프로그램에 의한 SQL 테이블 변경사항에 대해서는 커미트 지점이 실행되지 않습니다.
IMS/VS 및 트랜잭션 지향 IMS BMP 프로그램(get next를 사용하여 I/O PCB와 연관된 직렬 파일을 읽는 프로그램)의 경우 sysLib.commit는 무시됩니다. 커미트 지점은 I/O PCB에 대한 GU(get unique) 호출이 있을 때마다 발생합니다.
- IMS/VS 및 트랜잭션 지향 IMS BMP 프로그램의 경우, 프로그램은 I/O PCB에 대해 성공적인 get unique를 수행합니다.
- EGL 프로그램이 sysLib.rollback 함수를 호출합니다.
- 프로그램이 오류 조건으로 인해 종료됩니다.
런타임 시 대체 PCB
런타임에 사용하는 실제 DL/I PSB 이름은 PSBRecord에 PSB 이름으로 지정하는 이름과 다를 수 있습니다. IMS/VS의 경우, 실제 런타임 PSB는 IMS 시스템 정의로 제어되며 프로그램의 이름과 일치해야 합니다. IMS BMP 및 z/OS 일괄처리의 경우, JCL에 프로그램을 실행하는 실제 런타임 PSB를 지정하십시오.
프로그램이 callInterface 유형을 CBLTDLI로 설정하는 경우, PSBRecord 내에 있는 PCB의 수, 유형 및 순서는 런타임 PSB에 있는 정보와 일치해야 합니다. PCB 레코드 이름은 런타임 PSB에 있는 이름과 일치할 필요가 없지만 데이터베이스 구조도 일치해야 합니다. 자세한 정보는 런타임 PSB 및 PCB에 대한 EGL 지원의 내용을 참조하십시오.
기호 체크포인트 및 다시 시작 기능(z/OS 일괄처리 및 IMS BMP 전용)
일괄처리 프로그램을 실행하는 경우 sysLib.commit를 사용하여 주기적으로 데이터베이스 업데이트를 커미트할 수 있습니다. 또는 dliLib.AIBTDLI, dliLib.EGLTDLI 또는 vgLib.VGTDLI를 사용하여 기호 체크포인트 및 다시 시작 기능을 구현할 수도 있습니다.
sysLib.commit와 기호 체크포인트 기능은 둘 다 데이터베이스 업데이트를 커미트합니다. 그러나 기호 체크포인트 기능을 사용하여 제어 총계 또는 커미트 지점이 발생할 때 처리된 마지막 데이터베이스 레코드의 키와 같은 정보를 저장할 수도 있습니다. 프로그램이 완료되지 않은 경우에는 마지막 커미트 지점으로 돌아갑니다. 기호 체크포인트를 사용하여 저장한 경우, 프로그램을 다시 시작할 때 DL/I 다시 시작(XRST) 호출을 사용하여 저장된 데이터를 복원할 수 있습니다. 처리가 중지된 데이터베이스의 지점에서 처리를 재개하려면 이 정보를 사용하십시오.
기호 체크포인트 및 다시 시작에 대한 자세한 정보는 IMS 애플리케이션 프로그래머를 위한 매뉴얼을 참조하십시오.