What it means
When a sequential data set fills one disk volume, it can carry on onto another, but only if it was given more than one volume to use. A partitioned data set (PDS) can't do that at all. It always lives on a single volume. SE37 means the data set needed to go further and those rules wouldn't let it. The system ends the step with system completion code E37.
| Code | Message | What happened |
|---|---|---|
| SB37 | IEC030I | The data set asked for another extent and couldn't get one on its volume, and it had no other volume to move to |
| SD37 | IEC031I | The primary space filled and no secondary space was ever requested, so the data set couldn't ask for more |
| SE37 | IEC032I | The data set had already used every volume or extent it is allowed. A full PDS is the classic case |
Message IEC032I carries a reason code after the E37.
04means the data set filled its current volume and had no more volumes to go to. That happens when the JCL allowed too few volumes, when a PDS fills its one volume (where it is also capped at 65,535 tracks), or when a PDS has used all 16 of its extents.08means a sequential data set spread over several volumes filled one and couldn't get space on the next volume in its list. That volume was full, already held a data set with the same name, or had no room left in its VTOC.0Cmeans an installation exit refused the request for more space. Ask your storage team.
Common causes
- A PDS filled up. Every time a member is replaced, the old copy keeps its space until the library is compressed, so busy source and load libraries fill even when the member count stays the same.
- A PDS reached its 16-extent limit.
- A multi-volume sequential data set needed more volumes than the volume count allowed.
- The next volume in the list was full, or already had a data set of the same name, often an uncataloged leftover from an earlier failed run.
How to find the problem
- Read
IEC032I. It gives the reason code, the DD name, the last volume used and the data set name. - If it's a PDS, check it in ISPF option 3.4 with the
Iline command. Compare the used space with the allocated space and note the number of extents. - For reason 08, ask your storage administrator about the next volume. Check whether a data set with the same name already sits on it.
- For a sequential data set, check the volume count in the JCL, or the data class if the data set is SMS-managed.
How to fix it
- Compress a full PDS with the
Zline command in ISPF option 3.4, or with IEBCOPY using the same data set as input and output. Do it when nobody else is updating the library. - If a compress doesn't free enough space, allocate a bigger PDS and copy the members across.
- Think about converting the library to a PDSE with
DSNTYPE=LIBRARY. A PDSE reuses freed space without compressing and can have up to 123 extents on a volume. - For a sequential data set, raise the volume count, for example
VOL=(,,,5), or ask for larger SPACE amounts so it fits on fewer volumes. - For reason 08, remove the leftover data set from the next volume, or let SMS choose the volumes. For reason 0C, take the message to your storage team.
What it looks like
IEC032I E37-04,IFG0554P,SRCLOAD1,STEP010,SYSUT2,0A73,DEV004,TEST.PAYROLL.COBOL IEA995I SYMPTOM DUMP OUTPUT SYSTEM COMPLETION CODE=E37 REASON CODE=00000004 IEF450I SRCLOAD1 STEP010 - ABEND=SE37 U0000 REASON=00000004