JCL (Job Control Language) ist die Steuersprache der IBM-Großrechner (z/OS), mit der Stapelverarbeitungsaufträge (Jobs) beschrieben werden. JCL sagt dem Betriebssystem, welche Programme laufen, welche Dateien sie brauchen und wie die Ausgabe behandelt wird — sie ist keine Programmiersprache im engeren Sinn, sondern eine Kontrollsprache.
Die drei Grundanweisungen
Jeder JCL-Job besteht aus mindestens drei Anweisungen, die in Spalte 1 beginnen:
//MEINJOB JOB (BESTELL),'BESTELLVERARBEITUNG',CLASS=A
//SCHRITT1 EXEC PGM=IEBGENER
//EINGABE DD DSN=MEIN.BESTAND,DISP=SHR
//AUSGABE DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
JOB— markiert den Jobbeginn, vergibt den Jobnamen und Steuerparameter (Class, Priorität)EXEC— führt ein Programm (PGM=) oder eine Prozedur (PROC=) ausDD— beschreibt Datendefinitionen: Eingabe-/Ausgabedateien (DSN=),DISP=für den Dateizustand,SYSOUT=für Druckausgabe
Wichtige Konzepte
- JES2/JES3 — Job-Eingabe-Subsysteme, die Jobs annehmen, einreihen und ausführen
- Prozeduren — mehrfach verwendbare Anweisungsblöcke, instream (
//X PROC) oder katalogisiert - GDG — Generation Data Groups: versionsverwaltete Dateigruppen
- Utilities — Standardwerkzeuge wie IEBGENER (Kopieren), IEBCOPY (Bibliotheken) oder SORT/MERGE
- IEFBR14 — leerer Job, klassisch zum Anlegen/Löschen von Dateien
JCL kennt keine Schleifen oder Verzweigungen im Sprachsinn; die Ablaufsteuerung übernehmen COND=-Parameter und Returncodes der Schritte.
Verwandte Einträge: CICS-Befehle, ABAP-Befehle und COBOL-Befehle.