Skip to content
JCL & batch

JCL

Job Control Language: the language used to tell the mainframe what programs to run, in what order, and with what files.

Also written Job Control Language, job control

JCL stands for Job Control Language. It is not a programming language in the usual sense, with no loops and no arithmetic. It is a way of describing a piece of work: run this program, give it these files, then run that one.

Every batch job is written in JCL. It names the job, lists the steps, and for each step says which program to execute and which datasets to connect to the names the program expects. When the job is submitted, the system reads the JCL, allocates everything described, and runs the steps in order.

Its reputation for being fussy is earned. Statements begin with two slashes, fields sit in specific positions, continuation rules are strict, and a misplaced comma produces an error rather than a guess.

But the scope is small. There are three statements doing almost all the work, JOB, EXEC and DD, and once those click, most JCL is recognisable. Learning to read it comes well before learning to write it, and reading it is most of the job.

Browse all 115 terms

Learn this properly.

Use JCL for real in Mainframe101, in your browser, with Zed beside you. Join the waitlist.

Early access and updates. No spam, unsubscribe any time.