Module 1: Abend Codes
SB37- Out of Space (SB37/SE37/S637)
SB37, SE37 and S637 all mean the same family of problem - the dataset ran out of space while being written.
What it means
- SB37 - no more space left on the current volume and no further volume was available for this dataset.
- SE37 - no more volumes are available to extend the dataset (end-of-volume could not get another volume).
- S637 - an error occurred during end-of-volume processing; for a PDS this very often means the directory is full.
Common causes
- SPACE parameter coded too small (primary and secondary quantities) for the amount of data written.
- All 16 secondary extents are used up and the dataset still needs more space.
- PDS directory is full - no directory blocks left for new members (classic S637 cause).
How to find it
- SB37/SE37 appear in the job log with an IEC025I or IEC028I message showing the dataset and volume.
- For a PDS abending with S637, check how many members are in the directory versus the directory blocks allocated.
How to fix it
- Increase the SPACE primary and secondary quantities on the DD statement.
- Allow more volumes with the VOL=SER parameter or a larger UNIT count so the dataset can extend.
- Compress a PDS with IEBCOPY to reclaim wasted directory space.
- Allocate the PDS with more directory blocks (third SPACE subparameter).
Example
- A dataset with generous space so it does not abend with SB37:-
//OUT DD DSN=MY.OUTPUT.FILE,DISP=(NEW,CATLG), // UNIT=SYSDA,SPACE=(CYL,(10,5)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
- For a PDS, add directory blocks as the third SPACE subparameter:-
//LOADLIB DD DSN=MY.LOADLIB,DISP=(NEW,CATLG), // UNIT=SYSDA,SPACE=(CYL,(10,5,20))
