JCL & Batch Troubleshooting
Job ends with SE37 extent limit reached
SE37 means the dataset hit the extent limit — 16 extents per volume — and could not extend further on that volume.
What it means
- Even with secondary space coded, a dataset is limited to 16 extents per volume.
- SE37 says the dataset is fragmented across the maximum extents and still growing.
Common causes
- Primary allocation far too small, forcing many tiny secondary extents.
- Heavily fragmented volume.
- Dataset growing far beyond its design size.
How to diagnose
- Check how many extents the dataset has (LISTCAT or storage tools).
- Compare primary allocation to actual size — a tiny primary is the usual culprit.
How to fix it
- Reallocate with a realistic primary size so the data fits in few extents.
- Use multi-volume datasets for very large files.
- Defragment or move the dataset to a cleaner volume.
Example: Right-size the primary allocation
//BIGOUT DD DSN=APP.BIG.OUT,DISP=(NEW,CATLG),
// SPACE=(CYL,(500,100),RLSE)
A realistic primary keeps extent counts low.
Interview tip
- Q: How would you troubleshoot a Job ends with SE37 extent limit reached in production?
- A: I would check the extent count, then reallocate with a larger primary so the dataset fits in a few extents.
Prevention checklist
- Size primary allocations from measured volumes.
- Monitor extent counts on large datasets.
