JCL & Batch Troubleshooting
SD37 secondary allocation unavailable
SD37 means no secondary space was available when the dataset tried to extend — closely related to SB37, but specifically about secondary allocation.
What it means
- The primary allocation filled up and the system could not obtain secondary extents.
- Either none were coded or the volume has no room left.
Common causes
- SPACE coded with primary only, e.g. SPACE=(CYL,50) with no secondary.
- Volume full so secondary extents cannot be allocated.
- Unexpected output volume from a program bug.
How to diagnose
- Inspect the SPACE parameter: confirm a secondary quantity is coded.
- Check volume free space with the storage team.
- Verify record counts written before failure.
How to fix it
- Code secondary space: SPACE=(CYL,(50,20)).
- Free volume space or add volumes to the storage group.
Example: Always code secondary space
//OUTFILE DD DSN=APP.OUT.DATA,DISP=(NEW,CATLG),
// SPACE=(CYL,(50,20),RLSE)
The ",20" secondary allocation is what prevents SD37.
Interview tip
- Q: How would you troubleshoot a SD37 secondary allocation unavailable in production?
- A: I would verify secondary space is coded and check volume free space, then correct whichever is missing.
Prevention checklist
- Standard: always code primary and secondary.
- Alert on volumes above 85% full.
