Let's understand Mainframe
Home Tutorials Interview Q&A Quiz Mainframe Memes Contact us About us

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))





© copyright mainframebug.com
Privacy Policy
MainframeBug Assistant