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=) aus
  • DD — 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.