Preallocating data sets
To avoid potential problems with some job scheduling packages, BMC Software recommends that you preallocate any data sets that use data services; preallocate them in a job step that is previous to the job step that may be restarted. If the restartable job step abends and the data set is allocated in the step with DISP=(NEW,CATLG...), some job scheduling packages automatically delete the data set. Potential GDG reference problems may also occur.
The following example shows the pre-allocation of an output sequential data set:
//DD1 DD DSN=your.output.dsn,
// DISP=(NEW,CATLG,CATLG),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=8000),
// UNIT=SYSDA,SPACE=(CYL,(5,1))
If you allocate the data set in a previous job step, you can specify DISP=(OLD,CATLG,CATLG) or DISP=(SHR,CATLG,CATLG) in the restartable job step. Do not allocate it with DISP=(MOD,CATLG,CATLG).
You should code DISP=(OLD/SHR,CATLG,CATLG) instead of simply DISP=OLD/SHR. After the application program has been successfully restarted, it is possible for a sufficient number of records to be added to the sequential output file to cause the file to expand onto another volume. Without the abnormal-termination disposition of CATLG, these new volumes would not be registered in the catalog.
However, when AR/CTL performs application reattach processing for an application program that abends, the job step is still active in the MVS system and the disposition status of any files allocated in the job step does not change. Therefore, during application reattach, AR/CTL can reposition files defined in the job step as DISP=(NEW,CATLG,CATLG).