NORMAL JCL

When you use normal JCL, you can get procedure changes that were applied after the last job run.

If GDG are present, they are resolved transparently, as the JCL is left unchanged. GDG resolution is accomplished at job run time by the substitution of the GDG data set names with their equivalent expanded form (GDGRoot.GnnnnVnn) in the JES control block, using the previous run information. This is accomplished by the EQQCLEAN pre-step.

Additionally, you can use the EQQUXGDG exit to check the GDG name substitution just before EQQCLEAN executes. The exit lets you exclude a GDG from substitution in the same way you can exclude a data set from cleanup with exit EQQUXCAT.

GDG resolution is performed only within a Step Restart path and not in a Job Restart path. A normal JCL will be stored in the JS library at each job or step restart.

In the JES3 environment, the use of the normal JCL has a limitation when a JCL that includes nested procedures, where the steps that call the procedures are not the last ones inside the procedure, ends with a JCL error leading to NORUN steps. In this case, Restart and Cleanup might produce an incorrect step list. Users should modify the failing JCL by adding the PEND statement in the called cataloged PROCs. For example, a nesting like the following, might not work properly:
step1 exec pgm=PGM1                    
 step2 exec PRO1                       
       step1 exec pgm=PGM2             
       step2 exec PRO2                 
             step1 exec pgm=PGM3       
             step2 exec PRO23          
                  step1 exec pgm=PGM4  
             step3 exec pgm=PGM5       
       step3 exec pgm=PGM6             
 step3 exec pgm=PGM7