복구 작업 단위 설정

sysLib.commit() 시스템 함수는 현재 복구 작업 단위가 완료되었고 새 작업 단위가 시작됨을 EGL에 알립니다.

이 시스템 함수는 CICS® SYNCPOINT 명령을 실행합니다.

프로그램이 완료 시 암시적 sysLib.commit()가 있습니다(exit program 또는 transfer 또는 show 명령문). 프로그램의 실행 중 언제든지 sysLib.commit()를 명시적으로 호출할 수 있습니다. 프로그램이 여러 잠금을 유지하지 않도록 논리적 작업 단위의 완료 시 논리 루프와 함께 get forUpdate, replace, delete 또는 add 명령문이 있는 프로그램 내에서 sysLib.commit()를 호출하는 것이 가장 좋습니다.

생성된 EGL 프로그램에서 CICS에 VSAM LSR(Local Shared Resources)을 통해 데이터 세트에 액세스할 때 교착 상태를 막으십시오. LSR을 사용하고 파일에서 get next 또는 get previous 명령문을 사용할 때, 논리적 작업 단위의 완료 시 sysLib.commit()를 호출하십시오. 자원을 독점적으로 사용해야 하는 get forUpdate, replace, delete 또는 add 명령문을 시도하기 전에 이를 수행하십시오. 이는 get next 위치를 해제하고 데이터 세트에 대한 나중 업데이트를 허용합니다.

transfer to program 명령문을 정의하여 transfer to transaction 명령문을 대체하는 경우 복구 작업 단위가 transfer to program 간에 유지되며 작업 단위를 끝내려면 sysLib.commit()를 호출해야 합니다.

다음 조건에서 transfer to program 명령문에 SYNCPOINT가 발생합니다.
  • 비EGL 프로그램에 대한 전송이 발생하고 PSB가 스케줄링된 경우
  • synchOnPgmTransfer 빌드 디스크립터 옵션이 "YES"로 설정되고 PSB가 스케줄링된 경우
  • 다음 두 조건이 모두 true인 경우
    • synchOnPgmTransfer 빌드 디스크립터 옵션이 프로그램을 전송하는 데 "NO"로 설정됨
    • 전송 프로그램이 PSB를 스케줄링했고 다른 PSBRecord 이름이 두 프로그램에 지정됨