The RESTART parameter in JCL allows you to restart a job from a specific job step rather than from the beginning. This is particularly useful for recovering from failures in long-running jobs, saving processing time by skipping steps that have already completed successfully.
123//jobname JOB (accounting-information),programmer-name,RESTART=stepname //jobname JOB (accounting-information),programmer-name,RESTART=(stepname,checkid)
The RESTART parameter can be specified in two formats:
1//PAYROLL JOB (ACCT123),'JOHN SMITH',RESTART=STEP3
Restarts the job from STEP3, bypassing STEP1 and STEP2
1//REPORT JOB (ACCT456),'JANE DOE',RESTART=(STEP2,CKPT0012)
Restarts STEP2 from checkpoint CKPT0012, bypassing STEP1
1//BATCH JOB (ACCT789),'OPS TEAM',RESTART=STEP1
Restarts the job from the first step (STEP1)
1//PROCJOB JOB (ACCT321),'PROC USER',RESTART=STEP2.PROCSTEP
Restarts the job at a step called PROCSTEP within a procedure called by STEP2
Restart Type | Syntax | Usage |
---|---|---|
Simple step restart | RESTART=stepname | Standard restart at beginning of step |
Checkpoint restart | RESTART=(stepname,checkid) | Restart from a checkpoint within a step |
Procedure step | RESTART=stepname.procstep | Restart at a specific step within a procedure |
Checkpoint in procedure | RESTART=(stepname.procstep,checkid) | Restart from a checkpoint within a procedure step |
Checkpoint/restart is a recovery facility that allows programs to record their progress at specific points (checkpoints) and later be restarted from those points rather than from the beginning.
Generation Data Groups (GDGs) require special consideration when restarting jobs: