Mainframe Path Start learning free
Beginner7 min readLesson 2 of 4

How a job becomes running work: JES2

When you submit a batch job, it does not start immediately. A component called the job entry subsystem takes it in, queues it, decides when to run it, collects its output and holds that output for you. Understanding this queue is what lets you answer 'why hasn't my job run?'.

The life of a job

JES2 job lifecycle
InputJCL read and checked
ConversionJCL turned into internal text
ExecutionSteps run in order
OutputPrinted output collected
PurgeRemoved when you are done

Two of these stages are where jobs get stuck, and they get stuck for different reasons:

The three vocabulary items you need

TermMeaning
Job classA letter on the JOB card grouping jobs by expected resource use. Sites map classes to initiators.
InitiatorA slot that runs one job at a time. If all initiators for your class are busy, you wait.
MSGCLASS / SYSOUT classWhere printed output goes. Class X or similar usually means 'hold it for me to read on screen'.
The JOB card, annotated
//PAYRUN01 JOB (ACCT01),'V SAHA',
//             CLASS=A,          <- job class, picks the initiator pool
//             MSGCLASS=X,       <- where system messages go
//             NOTIFY=&SYSUID,   <- tell me when it ends
//             REGION=0M         <- memory limit; 0M means 'as much as allowed'

Where the output lives

Everything a job prints — system messages, your program's messages, JCL listings, abend dumps — goes to the spool, a system-managed pool of output. You read it with SDSF or an equivalent. Output stays there until it is purged, which is why the first instruction in almost every problem ticket is 'send me the job output'.

Common mistakes

Submitting to a held class and thinking the system is broken

Some classes are deliberately held so jobs queue until released. Check the class before escalating.

Leaving thousands of jobs on the spool

Purge your output when finished. Spool is a shared resource with a real limit.

Confusing 'the job failed' with 'the job did not run'

They look similar in a ticket and have completely different causes. Always establish which one first.

What you will see at work

Key terms

Check your understanding.
Take this lesson's quiz and save your progress. Free.

Take the lesson quiz
← What z/OS does for youSDSF: watching the system →