S806
The program on the EXEC line was not found, so the step crashed before it began.
Also written 806, ABEND S806, CSV003I
Why it matters. A tiny typo in a program name stops a whole job. Reading the log tells you in seconds.
Syntax
IEF450I jobname stepname - ABEND=S806 U0000 REASON=00000004 CSV003I REQUESTED MODULE name NOT FOUND
- Name spelt wrong
- Fix the name on EXEC PGM= to match the load module.
- Library not searched
- Add the library to STEPLIB or JOBLIB.
- Not a load module
- The member is source or an object deck. Compile and link-edit it into a load library.
- Reason 04
- The module was not found in the libraries searched. The usual one.
- Reason 08
- A read error in the library directory. Resubmit and ask a systems programmer.
- Reason 0C
- The library was not open. Check the DD.
Try it S806
- 1
Job RPTRUN runs a program called ZBRPT01. Send it from your DEV JCL library to run, and see what happens.
SUBMIT 'ZB0001.DEV.JCL(RPTRUN)' - 2
Read the output. Find how the job ended, and the line that says why.
OUTPUT RPTRUN - 3
The real program is ZBRPT001, with one more zero. You're editing job RPTRUN. Write the EXEC statement of STEP1 again, with the right name.
JCL //STEP1 EXEC PGM=ZBRPT001 - 4
Submit the job RPTRUN again.
SUBMIT 'ZB0001.DEV.JCL(RPTRUN)' - 5
Read the output of the new job.
OUTPUT RPTRUN
Remember
- S806 means the program on EXEC PGM= was not found.
- CSV003I names the exact program the system looked for.
- Check the spelling first, then the STEPLIB.
The usual mistake
Rewriting the program because the job abended
S806 means the program never started. Nothing is wrong inside it. The system could not find it, so the fault is the name or the library.
Compare the name on EXEC PGM= with the load module, and check STEPLIB
On real z/OS
The wording of CSV003I and CSV028I is as on z/OS. MF/OS finds a program in the libraries your step names and the system programs it knows, so any other program takes the same path to S806. Real z/OS also searches the link pack area and the link list.
Where can I practise fixing S806?
Right here, at ZedBank. You take a junior job at a simulated bank, meet S806 in real work and fix it, with Zed beside you. There's nothing to install.
Start at ZedBankRelated
- AbendAn abnormal end: a program stopping in an uncontrolled way rather than finishing and reporting a result.
- Job stepOne program execution within a job. A job is simply a sequence of steps that run in order.
- Load moduleThe runnable form of a program, stored in a library, which JCL executes by name.
- Return codeA number a program leaves behind saying how it went. Zero for clean, higher numbers for warnings and failures.
- JCLJob Control Language: the language used to tell the mainframe what programs to run, in what order, and with what files.