The difference between empty and noempty is
specifies that all the generation data sets are to be uncataloged When the maximum is exceeded (each data set's non-VSAM entry is automatically deleted from the catalog).
specifies that only the oldest generation data set is to be uncataloged when the maximum is reached.
The difference between scratch and noscratch is
specifies that the generation data set's DSCB is to be deleted from the volume's VTOC when the generation data set is uncataloged. Direct access device space management (DADSM) removes the data set's DSCB from the VTOC, erases the data set's space on the volume, and makes the space available to other system users. The generation data set ceases to exist. For SMS-managed GDSs, SCRATCH also specifies that the NVR is to be removed from the VVDS when the data set is uncataloged.
specifies that the generation data set's DSCB is not to be removed from the volume's VTOC when the generation data set is uncataloged. The data set's DSCB in the volume's VTOC is left intact and can be used to locate the data set. Your program, however, can process the data set by using a JCL DD statement to describe and allocate the data set.
noscratch is given when you want delete your oldest version of gdg member logically not physically
noempty is given when you want to repalce your new veresion with oldest version
scratch is given when you want delete your oldest version of gdg member physically not logically
empty is given when you want to repalce your new version by replacing all your oldest version