Module 1: Abend Codes
S80A- Out of Storage
S80A abends the step when a GETMAIN (get storage) request fails - the step ran out of virtual storage.
What it means
- The step asked the system for more storage and the system could not satisfy the request.
- The program itself may be fine - the REGION size given to the step was simply too small.
Common causes
- REGION size coded on the EXEC statement (or the job default) is too small for the program.
- The program issues GETMAIN requests in a loop without freeing storage (storage leak).
- Huge tables or large working-storage areas that push the step over its REGION limit.
How to find it
- S80A appears in the job log - note the region size shown for the step and compare it with what the program needs.
- If the abend repeats at the same point with bigger REGION, suspect a storage leak in a loop.
How to fix it
- Increase the REGION size on the EXEC statement (REGION=0M lets the step use what it needs, subject to system limits).
- Reduce storage usage - smaller tables, free GETMAINed areas, avoid building huge in-memory structures.
- Fix any loop that GETMAINs storage without freeing it.
Example
- Giving the step maximum available storage:-
//S80AJOB JOB (ACCT),'STORAGE TEST',CLASS=A,MSGCLASS=X //STEP1 EXEC PGM=MYPROG,REGION=0M //SYSOUT DD SYSOUT=*
- REGION=0M removes the storage cap so a program that needs a large region no longer abends with S80A.
