What Is JCL?
JCL (Job Control Language) is the scripting language used on IBM z/OS mainframes to describe batch jobs — which programs to run, which datasets to read and write, how much CPU and memory to reserve, and how to react when something fails. If a business transaction touches a mainframe overnight, a JCL job ran it.
- Platform
- IBM z/OS
- Purpose
- Describe batch jobs
- Executed by
- JES2 / JES3
- Typical file
- JCL member in a PDS
Purpose: telling z/OS what to do overnight
z/OS runs two kinds of work: online transactions (through CICS or IMS) and scheduled batch. Batch jobs do the heavy lifting — end-of-day reconciliation, billing runs, report generation, interest accrual, actuarial models. JCL is how operators describe those jobs to the system.
Anatomy of a JCL job
A JCL job has three canonical statement types.
- //JOB — the job card. Identifies who submitted the job and what resources it may consume.
- //EXEC — the step. Names the program (or cataloged procedure) to execute.
- //DD — the data definition. Describes a dataset input or output for the step.
A minimal JCL job that runs a COBOL program reading one file and writing another looks like this:
//PAYROLL JOB (ACCT123),'PAYROLL',CLASS=A,MSGCLASS=X //STEP1 EXEC PGM=PAYCALC //INFILE DD DSN=PROD.EMPLOYEE.MASTER,DISP=SHR //OUTFILE DD DSN=PROD.PAYROLL.OUTPUT,DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,5)),DCB=(RECFM=FB,LRECL=132) //SYSOUT DD SYSOUT=*
Why JCL is hard to modernize
JCL is deceptively simple. The real complexity is in what it touches:
- A single production JCL member may invoke five cataloged procedures, which in turn invoke twenty other programs.
- Datasets carry meaning not expressed in the JCL — what a file is lives in copybooks, in the minds of operators, or nowhere.
- Shop conventions (which return codes matter, which utilities get called for restart) are almost never documented.
This is why JCL expertise is treated as an institutional asset. Losing a senior scheduler often means losing the only person who understands why a specific overnight batch chain has run reliably for twenty years.
How Hypercubic works with JCL
Hopper writes and submits JCL, monitors JES, and reacts to job failures — operating z/OS through the same interface senior operators use. HyperDocs maps every JCL member to the programs, datasets, and copybooks it touches, producing an audit-ready dependency graph. HyperTwin captures the tacit what this job really does and why knowledge that JCL files never spell out.
Related terms
See COBOL, mainframe, JES, dataset, copybook, VSAM, and the full glossary.