What it means
A program was requested by PGM= on the EXEC statement, by a dynamic CALL, or by a LINK, LOAD, XCTL or ATTACH, and the system could not find it.
For a job step, the system searches the job pack area, then STEPLIB or JOBLIB, then the link pack area (LPA) and the system link list. If none of them has a member of that name, the request fails with 806.
Typical causes
- The module name is misspelled in PGM= or in a dynamic CALL variable.
- The library holding the module is missing from STEPLIB or JOBLIB.
- The link-edit failed, so the module was never created.
- A product or runtime library a called routine lives in is not in the concatenation.
- The module was promoted to a different environment's library.
How to fix it
- Read the job log to find the name of the missing module; it may be a called routine, not your main program.
- Check the spelling in the JCL or the CALL variable.
- List the libraries in STEPLIB or JOBLIB from the expanded JCL and look for the member.
- Check the binder output and the promotion record for that module.
- Fix the name or library and rerun; 806 usually happens before any data is processed.
Example
Illustrative only; names and values are invented.
IEF450I PAYJOB01 STEP020 - ABEND=S806 U0000 REASON=nnnnnnnn