VSAM Data Sets

For VSAM data sets, you are responsible for handling checkpoint/restart problems that arise because of changes in the data. For example, consider a program that updates records in a data set by adding a number to a value already existing in some field within the record. If the program terminates and is restarted, you must ensure that the records processed between the checkpoint and the termination are not processed again after the restart.

During checkpoint/restart processing, no user ACB exits are taken. For checkpoint processing, the ACB exception exit is taken; for restart processing, the ACB exception exit is not taken.

VSAM functions you can use with checkpoint and restart include:
  • VSAM Hiperbatch environment
  • VSAM LSR environment using Hiperspace™ buffering.
  • Extended format data sets, including compressed format data sets and those with extended addressability

A checkpoint cannot be taken if VSAM data sets are open in multiple address spaces and if your program uses the CBIC (control blocks in common) option.

When the checkpoint routine records positioning for a VSAM data set, all outstanding I/O requests for the data and index are completed before the contents of your address space are saved. If an error occurs while these I/O requests are processed, the checkpoint procedure stops and a code of X'0C' is returned in register 15. You can handle the error condition and reissue the CHKPT macro.

You cannot take a checkpoint if a data set with the RLS (record level sharing) option is open.