Definition

What is JCL (job control language)?

JCL (job control language) is a language for describing jobs to the Multiple Virtual Storage (MVS), OS/390 and Virtual Storage Extended (VSE) operating systems (OSes), which run on IBM's S/390 mainframe computers. These OSes allocate their time and space resources among the total number of jobs that have been started in the computer.

Jobs are broken down into job steps. Every statement that runs a particular program constitutes a job step. Jobs are background, or batch, units of work that run without user interaction, such as print jobs. In addition, the OS manages interactive, or foreground, user requests that initiate units of work. Foreground work is often given priority over background work.

An example of JCL and job steps

An IBM manual compares a set of JCL statements to a menu order in a restaurant. The whole order is comparable to the job. Back in the kitchen, the chefs divide the order up and work on individual dishes, representing the job steps. As the job steps are completed, the meal is served. However, it must be served in a specific order -- similar to job steps that depend on the performance of previous ones.

What do JCL statements do?

JCL statements mainly specify the following information:

  • The input data sets, or files, that must be accessed.
  • The output data set to be created or updated.
  • What resources must be allocated for the job and what programs must run to use these input and output data sets.

A set of JCL statements for a job is itself stored as a data set and can be started interactively. MVS and OS/390 provide an interactive menu-like interface, ISPF, for initiating and managing jobs.

In MVS and OS/390, the part of the OS that handles JCL is called the Job Entry Subsystem (JES). There are two versions, JES2 and JES3.

This was last updated in September 2024

Continue Reading About What is JCL (job control language)?

Dig Deeper on Data center hardware and strategy