What it means
Every job and step has a processor time limit, set by the TIME parameter on the JOB or EXEC statement or by the site's default. When the step uses more CPU time than allowed, the system ends it with 322, unless the IEFUTL installation exit grants more time.
It counts CPU time, not elapsed time. A step gets the smaller of its own limit and the job time still left.
Typical causes
- A program loop, such as a PERFORM UNTIL whose condition never becomes true.
- Genuinely higher input volume than the limit allowed for.
- A worse database access path, so each record costs far more CPU.
- Duplicated input, such as the same file concatenated twice.
- A TIME value or job class too small, often after a job was copied.
How to fix it
- Check which limit applied: JOB TIME, EXEC TIME or the class default.
- Compare CPU used and record counts with previous good runs.
- If output stopped or repeated, look for a loop at the last record processed.
- Raise TIME only if the extra work is real and CPU per record is normal.
- Before rerunning, check whether the step's updates need restoring.
Example
Illustrative only; names and values are invented.
IEF450I BILLJOB1 STEP050 - ABEND=S322 U0000 REASON=00000000