Reading job output like a support engineer
Read job output in a fixed order. First the job summary, to find the first step that did not end with return code 0. Then the system messages for that step. Then the program's own output (SYSOUT or SYSPRINT). Only then dumps. Use FIND, RFIND (PF5) and the scroll keys rather than paging through everything.
The order that saves you time
- Job summary. Find the *first* step with a non-zero return code, an abend or a JCL error. Later failures are often just consequences.
- MESSAGES (JESYSMSG). The system's account of each step: allocations, return codes, abend codes and reason codes.
- The program's output. SYSOUT or SYSPRINT for that step: the program's own error messages, or a utility's report.
- LOG (JESMSGLG). Start and end times and console messages. Useful when timing or operator actions matter.
- Dumps (CEEDUMP, SYSUDUMP). Only once the steps above point you there.
Messages you will meet first
| You see | Meaning |
|---|---|
| IEF142I ... STEP WAS EXECUTED - COND CODE 0000 | The step ran and set this return code |
| IEF450I ... ABEND=S0C7 U0000 | The step abended. S codes are system abends, U codes are set by the program |
| IEF212I ... DATA SET NOT FOUND | A dataset in the JCL is not in the catalog. Check the name |
| JOB NOT RUN - JCL ERROR | Nothing ran: the JCL is wrong. The line just above names the problem |
| $HASP373 ... STARTED / $HASP395 ... ENDED | JES2's start and end messages, in the LOG |
Return code conventions
By convention 0 means success, 4 a warning, 8 an error, and 12 or 16 a serious failure. Programs can set any value, so a 4 is not automatically fine. Read what your site's runbook says for that job.
Moving around big output
COMMAND ===> F ABEND find the first 'ABEND' COMMAND ===> (press PF5) repeat the find (RFIND) COMMAND ===> M then PF8 jump to the bottom COMMAND ===> M then PF7 jump to the top PF10 / PF11 scroll left / right, PF3 back to the summary, PF4 back to the job list
Typing M (max) on the command line and then pressing PF8 or PF7 jumps straight to the bottom or top. Wide reports are often more than 80 columns, so remember to scroll right with PF11. The message you need is sometimes off-screen.
Worked example: PAYRUN01
- Summary: STEP010 and STEP020 are RC 0, STEP030 (PGM PAYCALC) abended S0C7, and STEP040 was NOT EXECUTED.
- MESSAGES:
IEF450I PAYRUN01 STEP030 - ABEND=S0C7 U0000, which confirms a data exception in PAYCALC. - SYSOUT for STEP030: the program wrote the key of the record it was processing.
- Conclusion: bad numeric data in one input record, not a JCL or system problem. Fix the data or restart according to the runbook. See Rerun and restart.
Which PF key repeats your last FIND (RFIND)?
Show a hint
It is the same key in the ISPF editor.
Show the solution
PF5 (RFIND).
Examples are for learning. Run commands and jobs only on a system you are authorised to use, such as a training or test system, and never on production without approval.
Common mistakes
Later steps often fail because of the first failure. Find the first step that went wrong.
Some jobs rely on RC 4 to signal a real problem. Check what is expected for that job.
Wide output goes beyond column 80. Scroll right with PF11 before deciding the message is not there.
What you will see at work
- On-call triage follows this exact order. Writing your findings in the same order makes handovers clear.
- Copy the exact message IDs and codes into the incident record: IEF450I, S0C7, the step and the program.
- If you cannot explain the failure from the summary and messages, escalate with what you found rather than rerunning.
Key terms
Check your understanding.
Take this lesson's quiz and save your progress. Free.