Endevor processors running BC1PDSIN might be exposed to SB37 abends
search cancel

Endevor processors running BC1PDSIN might be exposed to SB37 abends

book

Article ID: 254598

calendar_today

Updated On:

Products

Endevor

Issue/Introduction

BC1PDSIN is a 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.

For example:

//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 to the above temporary dataset is exposed to raise a SB37 abend due to lack of space.

Environment

Release : 18.0

Cause

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. 

Resolution

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)