You can cause a deferred checkpoint/restart of a job by the following
procedure:
- Use the option of coding a special form of the RD parameter (RD=NR)
in the original job. This specifies that, if the CHKPT macro instruction
executes, a checkpoint entry is written but an automatic checkpoint/restart
is not requested. Omission of RD=NR will not preclude a deferred checkpoint/restart.
- Cause
execution of the CHKPT macro instruction, which writes checkpoint
entry.
- Resubmit the job whether or not it terminated abnormally. For
example, resubmit it because a volume of one of its input data sets
was in error and had caused the corresponding part of an output data
set to be in error.
- Code the RESTART parameter (RESTART=(stepname,checkid))
on the JOB statement of the restart job. The parameter specifies both
the step to be restarted and the checkid that
identifies the checkpoint entry to perform the restart.
- Place
a SYSCHK DD statement immediately before the first EXEC statement
in the restart job. It specifies the checkpoint data set from which
the specified checkpoint entry is read and is additional to any DD
statements in the job that define data sets into which checkpoint
entries are written. Figure 1
illustrates a job when it is originally submitted and when it is resubmitted
for a deferred checkpoint/restart. Assume in Figure 1 that
STEP2, when originally executed, terminates abnormally at some time
after CH04 is written. In the resubmitted job, you request that STEP2
be restarted using the checkpoint entry identified as entry CH04.
- The DD statement VOL=REF parameter is ignored if restart is attempted
from a checkpoint taken when the DD statements are opened out of order
and the referenced DD statement requested nonspecific tape volumes.
Figure 1. Requesting a Deferred Checkpoint/Restart Original Job
//MYJOB JOB RD=NR Requests that
//* automatic restart not
//* occur (optional)
//STEP1 EXEC
.
.
.
//STEP2 EXEC PGM=MYPROG MYPROG issues CHKPT
//* macro
//*
//NAME1 DD DSN=NAME2,DISP=(,CATLG,KEEP)...
//* Describes checkpoint
//* data set
.
.
.
//STEP3 EXEC
Resubmitted Job
//MYJOB JOB RESTART=(STEP2,CH04) Request restart at
//* CH04 in STEP2
//SYSCHK DD DSN=NAME2,DISP=OLD Describes data set
//* that contains CH04
//STEP1 EXEC
.
.
.
//STEP2 EXEC PGM=MYPROG
//NAME1 DD DSN=NAME2,DISP=(,CATLG,KEEP)...
//* Describes data set
//* in which new
//* checkpoint entries
//* will be written
.
.
.
//STEP3 EXEC