EQQCLEAN GDG Resolution exit (EQQUXGDG)

About this task

EQQUXGDG is called by the EQQCLEAN program just before executing any single GDG overwrite action into JES control blocks. You can use this exit to prevent GDG overwriting, that is to avoid the substitution of a relative number with a GDG absolute format (GDGRoot.GnnnnVnn). EQQCLEAN will not execute the action when the EQQUXGDG return code is set to a value different than 0. Note that EQQUXGDG can only prevent the simulation of a GDG, not its deletion. To prevent GDG deletion, use the EQQUXCAT exit or the DDPROT, DSNPROT RCLOPTS statements. For this reason, if you want to coordinate deletion and simulation actions (such as: not simulating data sets that have been protected from deletion), you should:
  • Use the same logic for EQQUXCAT and EQQUXGDG.
  • Add to EQQUXGDG the logic to read tables containing the DDPROT and DSNPROT names list so that EQQUXGDG can decide to not simulate a GDG if its DD or DSN is found in these tables.
For example, suppose you run a JCL with the following step:
//STEP1 	EXEC PGM=MYPGM
//DDPRO1	DD DSN=MYGDG.TEST(+1),DISP=(NEW,CATLG)

The first run allocated data set MYGDG.TEST.G0015V00.

If you want to rerun this JCL, saving the previously allocated GDG G00015V00 and allocating a new generation G00016V00, you can:
  1. Define DDPRO1 in the DDPROT RCLOPTS controller statement.
  2. Customize EQQUXGDG in order to not simulate the data set having DDNAME equal to DDPROT.
Alternatively, you can:
  1. Customize EQQUXCAT to not delete the data set starting with MYGDG.TEST and DD name DDPROT.
  2. Customize EQQUXGDG to not simulate the data set starting with MYGDG.TEST and DD name DDPROT.

The sample library SEQQSAMP that was created during installation contains the EQQUXGDG exit, which is a sample of EQQCLEAN exits. For information about SEQQSAMP and its samples, see Sample library (SEQQSAMP).