Checkpoint Facility

The checkpoint facility provides the ability to restart a terminated task from any selected point in its execution. Invoking a checkpoint causes the creation of a checkpoint file, which records the state of the task when the checkpoint was invoked. Either a statement in the task or a BR (Breakout) system command can invoke a checkpoint. Later, you can use the RERUN statement to restart the task from the point at which the checkpoint was invoked.

The main application of the checkpoint facility is the restarting of tasks that were terminated by a system halt/load. The unique advantage of the checkpoint facility is the ability to restart a task from a selected point during the task's execution. You can invoke repeated checkpoints for the same task and restart the task from any of these checkpoints.

ALGOL provides a CHECKPOINT statement that enables a program to invoke a checkpoint during its execution. Additionally, programs can invoke a checkpoint by calling the exported MCP procedure CALLCHECKPOINT. The CALLCHECKPOINT procedure can be invoked from any of the languages that support libraries, including C, COBOL74, COBOL85, FORTRAN77, NEWP, and Pascal. You can also use operator commands to initiate a checkpoint for ALGOL and COBOL74 tasks. However, checkpoints cannot be initiated for WFL or RPG tasks.

There are several restrictions on the circumstances in which a checkpoint can be invoked. One restriction is that the task must have been initiated from WFL, rather than from a session or a user program. Another is that the task must not have any offspring. These restrictions, and others, are discussed in detail in the following subsections.