TIME parameter
A JCL parameter that limits how much processor time a job or step may use before the system stops it.
Also written TIME=, TIME=NOLIMIT, TIME=1440, S322, CPU time limit
TIME sets a limit on processor time. It can be coded on the JOB statement, as a limit for the whole job, or on an EXEC statement, for one step. TIME=(2,30) allows two minutes and thirty seconds. TIME=NOLIMIT, or TIME=1440, removes the limit.
The limit counts processor time, not time on the clock. A job that waits for a tape mount or a dataset uses little processor time, so it can run for hours without reaching a small limit, while a program in a tight loop can reach it quickly.
When a step goes over its limit, the system ends it with abend S322. That often protects the system from a program stuck in a loop. But it can also stop a good job that has simply grown, for example because the input file is bigger at month end.
If a job abends S322, first decide which it is. If the program is looping, fix the program. If the work has really grown, raise the TIME value. Job classes often set default limits, so moving a long job to a suitable class may be the right fix.
Where can I learn this hands-on?
Right here, at ZedBank. You take a junior job at a simulated bank and learn each part of the work by doing it, with Zed beside you. There's nothing to install.
Start at ZedBankRelated
- JOB statementThe first statement in every job, giving it a name and telling the system who is running it and how to treat it.
- EXEC statementThe JCL statement that starts a step by naming the program or procedure to run.
- AbendAn abnormal end: a program stopping in an uncontrolled way rather than finishing and reporting a result.
- Job classA single-character label on a job that tells the system what kind of work it is and how to schedule it.
- REGION parameterA JCL parameter that sets how much virtual storage a job step's programs may use.