What is JCL?
JCL or Job Control Language is a language used to describe “jobs” in IBM mainframe computers. It uses scripts to communicate with the operating system and computer hardware. Specifically it is involved in making requests to a particular hardware device, introducing a job to the computer’s OS, and directing it on what to do with applications.
JCL has three main statements in describing jobs to the operating systems of computers. A “job” in this context is something that is defined by a user to be executed by the computer. First on the JCL syntax or stream is “JOB”. This statement is involved in giving a name for the job, or putting a label on the unit of work the operating system is expected to do. Syntax may also include parameters or any accounting info related to the job. “EXEC” is another statement taken from the word “execute”, which names the JCL procedure or “PROC” and/or application program that is to be run by the computer or “executed”. This is done through a PGM or program name keyword. Multiple “EXEC” commands may be put in a single job. The third statement is “DD” or “data definition”. This statement is tasked to identify the program or procedure’s input and output using the EXEC statement. DD also makes a link between the filenames on a given program code with those that are known by the computer’s operating system.
The use of JCL is very difficult for some because of its complex design and usage. It requires individual parameters for making jobs which may take quite a long time and multiple pages to describe. Syntax also requires the exact placement of blanks and commas, and commands must be direct and specific on what exactly must be executed. It also requires extra care and precision as one syntax error alone may prevent an action or command to be executed by the computer.