| Abend code | Primary cause | Typical fix |
|---|---|---|
| SB37 | End‑of‑volume, no more space or no further volumes specified. | Increase SPACE; allow multi‑volume or move dataset to larger volume. |
| SD37 | Primary exceeded, no or insufficient secondary allocation. | Add/raise secondary space in SPACE parameter; adjust UNIT/SMS if needed. |
| SE37 | Max extents reached or no candidate volumes available. | Increase primary/secondary sizes; reduce extent count; ensure more volumes. |
Before looking at each abend in detail, it is important to understand how the SPACE parameter works. The SPACE parameter specifies the primary and secondary allocation.
When the dataset is created, the system attempts to allocate the primary extent (100 cylinders). As the dataset grows and becomes full, the system extends it by allocating secondary extents, one at a time, until space is exhausted or extent limits are reached.
For non‑VSAM datasets, the system allows up to 16 extents per volume, typically one primary + up to 15 secondary extents. With the above allocation:
Maximum size on one volume = 100 (primary) + 15 × 100 (secondary) = 1600 cylinders.
If the dataset growth exceeds this, or if the volume itself is full, you will encounter one of the Space ABENDs.
What is SB37?
An SB37 abend occurs when the dataset reaches an end‑of‑volume condition and the system cannot allocate more extents or space on the current volume. This may happen because:
In practice, the system has given the dataset all primary space and as much secondary space as it could on the current volume, but it still ran out of capacity.
Typical scenarios
How to resolve SB37
Common corrective actions include:
If the underlying volume is nearly full for many jobs, the storage team may need to free space or add capacity.
What is SD37?
An SD37 abend indicates that the dataset’s primary space has been exhausted and either:
Essentially, the system has no instructions or usable space to extend the dataset when it outgrows the primary extent.
Typical scenarios
How to resolve SD37
To fix and prevent SD37 errors:
SPACE=(CYL,(primary,secondary),RLSE)By providing adequate secondary space, the dataset can extend when primary space is consumed, often converting potential SD37 situations into manageable multi‑extent allocations.
What is SE37?
An SE37 abend usually means that:
For non‑VSAM datasets, hitting the 16‑extent limit per volume is a common cause, especially if secondary allocations are small and many incremental extents have already been taken.
Typical scenarios
How to resolve SE37
To address SE37:
In some environments, you may need to reallocate the dataset on a different storage class or volume group with more room.
One effective way to avoid repeated Space ABENDs is to base your SPACE parameter on peak data volume and use a balanced primary/secondary ratio.
A commonly recommended pattern:
For a 100‑cylinder peak:
SPACE=(CYL,(50,10),RLSE) Here:
Assuming up to 15 secondary extents, the dataset can grow to:
The RLSE subparameter instructs the system to release unused space when the dataset is closed, improving DASD utilization.
This pattern works especially well for sort work files and large temporary datasets.
Beyond tuning SPACE, several operational and design practices help reduce SB37, SD37, and SE37 occurrences.
For extremely large, sequential datasets that are written once and read sequentially (like archives, logs, or backups), TAPE can be preferable to DASD, depending on site policies. Moving such workloads off DASD reduces pressure on disk volumes and minimizes Space ABEND risk for other jobs.
For datasets that grow over time and are kept as historical series, GDGs help by:
This is especially helpful for scheduled batch jobs that append data daily or monthly.
Storage and operations teams should:
For problem datasets, utilities and automation (including REXX‑based tools) can analyze and adjust primary/secondary quantities based on actual usage.
Incorrect or overly restrictive UNIT or SMS storage class settings can force allocations onto unsuitable or full volumes.
Give primary and secondary allocations: While allocating your dataset give primary and secondary allocations in space specification provided that there are enough DASD units for secondary space allocation, it is important also to maintain some sort of a reasonable balance between primary and secondary space requests. While there are no universal rules for determining what balance is “right”, there is a “rule of a thumb” that works reasonably well in most cases.
Allocate the same dataset with a different name: It is always nice to create another dataset with the same DCB parameters. Give space parameters so that you can your dataset can fit in. You can just go to your JCL and change DD name to a new one. If you want to allocate with the same name then delete the existing one and reallocate.
Use data class Compress: You can prevent the dataset to exceed space by using the data class COMPRESS. This data class can be used for only DASD files, It won’t work with the TAPE files in the systems. It is very simple to use just add the statement DATACLAS=COMPRESS in your dataset parameter list separately.
Use Dataset name type Large: In order to accommodate huge volume datasets in Large format, PS files were introduced in z/OS 1.7 . They can allocate space beyond 65535 tracks per volume. A large dataset type is available for PS datasets. Generally, they are used for storing large format datasets.
Command to compress the PDS: In case if you are editing a member is PDS and you are not able to save it due to space issues then you can just open a new ISPF window. Go to option 3.4 browse. Put the PDS name and hit enter. Once the PDS name gets listed then put a command ‘Z’ against it. The dataset will be compressed.
TMSFORMT Expand utility: This utility can be used in order to move the dataset to a new volume and allocate new space parameters for the same.
TAPE datasets instead of DASD: This is one of the preventive techniques you can use for allocating the large dataset. You can use the TAPEs for storing the datasets instead of DASD. If you don’t need tape then use GDGs for storing large datasets.
If you are in an edit session, you are not able to leave the session until you deal with the problem. Some of the things you can do are:
Note: Some installations use Space Manager to increase space for a data set. By issuing a command, they can automatically increase the data set’s space & avoid Space Abend.
SB37, SD37, and SE37 are all Space ABENDs that indicate your dataset has run out of room—but they point to slightly different underlying allocation issues. By understanding how JCL’s SPACE parameter, primary/secondary extents, and volume allocation work, you can:
Diagnose the exact cause more quickly using the specific Sx37 code and reason codes.
Apply the right fix—whether it is adding secondary space, allowing multi‑volume growth, increasing primary allocation, or moving to a different volume.
Design better SPACE strategies and preventive practices (GDGs, tapes, monitoring) to keep critical batch jobs running smoothly.
OUTER JOIN Queries are a valuable tool in SQL, allowing you to retrieve data from…
DFSORT is your go‑to utility for sorting, merging, and transforming data. ICETOOL Utilities takes DFSORT…
VSAM REPRO command is used to copy data from one file(Input file) to another file(Output…
The Product Owner role has shifted from just being a requirements proxy to a strategic,…
Business Value: In the world of Agile development, the user story has long been the…
The SAFe Scrum Master certification has become one of the most sought-after credentials for Agile…
The Professional Scrum with Kanban (PSK) course enhances your organization's ability to deliver value efficiently…
Effective User interviews play a crucial role in Scrum methodology, helping Product Owners and Scrum…
Product Owners should be well-versed in various user research tools and techniques to effectively understand…