BC1PDSIN is an utility which is intended to be executed at the start of endevor processors to initialize the temporary datasets which will be used in subsequent processor steps. This is done to prevent S001 abends (I/O errors) should a processor step try to open for input a dataset that has not been previously open for output.
//STEP1 EXEC PGM=BC1PDSIN //C1INIT01 DD DSN=&&COBLST,DISP=(,PASS,DELETE), // UNIT=SYSDA,SPACE=(CYL,(100,10),RLSE), // DCB=(RECFM=FBA,LRECL=121,BLKSIZE=3630,DSORG=PO)
If the SPACE parameter includes the RLSE subparameter as in the above example, a subsequent processor step that writes tho the above temporary dataset is exposed to raise a SB37 abend due to lack of space.
Release : 18.0
In order to initialize the dataset and create disk labels for it, BC1PDSIN performs an OPEN for output and a CLOSE of each of the C1INITxx ddnames. This causes MVS to write disk labels for the dataset so it is ready to be open for input.
However, the RLSE subparameter also releases all the unused space for the dataset. Since BC1PDSIN has not written any record to it, the system reduces its allocated space to a minimum. In the above example, it would be CYL,(1,10).
Since each dataset may take a maximum of 16 extents in a single volume, the maximum size of the dataset is reduced from 250 cylinders (one 100-cylinders primary extent plus 15 10-cylinders secondary extents) to only 151 cylinders (one 1-cylinder primary plus 15 10-cylinder secondary) which is more exposed to SB37 abends.
Ensure that none of the C1INITxx DD statements in the BC1PDSIN step has the RLSE subparameter coded, as in this example:
//STEP1 EXEC PGM=BC1PDSIN //C1INIT01 DD DSN=&&COBLST,DISP=(,PASS,DELETE), // UNIT=SYSDA,SPACE=(CYL,(100,10)), <--- Note that RLSE has been removed // DCB=(RECFM=FBA,LRECL=121,BLKSIZE=3630,DSORG=PO)