Was ist JCL?

JCL (Job Control Language) ist die Skriptsprache, die auf IBM-z/OS-Mainframes verwendet wird, um Batch-Jobs zu beschreiben — welche Programme laufen sollen, welche Datasets zu lesen und schreiben sind, wie viel CPU und Speicher reserviert werden und wie auf Fehler reagiert wird. Wenn eine Geschäftstransaktion nachts einen Mainframe berührt, hat sie ein JCL-Job ausgeführt.

Plattform
IBM z/OS
Zweck
Batch-Jobs beschreiben
Ausgeführt von
JES2 / JES3
Typische Datei
JCL-Member in einem PDS

Zweck: z/OS sagen, was nachts zu tun ist

z/OS führt zwei Arten von Arbeit aus: Online-Transaktionen (über CICS oder IMS) und geplanten Batch. Batch-Jobs erledigen die schwere Arbeit — Tagesabschluss-Abstimmung, Abrechnungsläufe, Berichtserstellung, Zinsberechnung, aktuarische Modelle. JCL ist, wie Operatoren diese Jobs dem System beschreiben.

Anatomie eines JCL-Jobs

Ein JCL-Job hat drei kanonische Anweisungstypen.

  • //JOB — die Job-Karte. Identifiziert, wer den Job eingereicht hat und welche Ressourcen er verbrauchen darf.
  • //EXEC — der Schritt. Benennt das Programm (oder die katalogisierte Prozedur), das ausgeführt werden soll.
  • //DD — die Datendefinition. Beschreibt einen Dataset-Input oder -Output für den Schritt.

Ein minimaler JCL-Job, der ein COBOL-Programm ausführt, das eine Datei liest und eine andere schreibt, sieht so aus:

//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=*

Warum JCL schwer zu modernisieren ist

JCL ist trügerisch einfach. Die echte Komplexität liegt in dem, was es berührt:

  • Ein einzelnes Produktions-JCL-Member kann fünf katalogisierte Prozeduren aufrufen, die ihrerseits zwanzig weitere Programme aufrufen.
  • Datasets tragen Bedeutung, die nicht im JCL ausgedrückt ist — was eine Datei ist, lebt in Copybooks, in den Köpfen der Operatoren oder nirgendwo.
  • Shop-Konventionen (welche Return Codes wichtig sind, welche Utilities für Restart gerufen werden) sind fast nie dokumentiert.

Deshalb wird JCL-Expertise als institutionelles Asset behandelt. Den Verlust eines erfahrenen Schedulers bedeutet oft den Verlust der einzigen Person, die versteht, warum eine bestimmte nächtliche Batch-Kette seit zwanzig Jahren zuverlässig läuft.

Wie Hypercubic mit JCL arbeitet

Hopper schreibt und submittiert JCL, überwacht JES und reagiert auf Job-Fehler — es betreibt z/OS über dieselbe Schnittstelle, die erfahrene Operatoren nutzen. HyperDocs mappt jedes JCL-Member auf die Programme, Datasets und Copybooks, die es berührt, und erzeugt einen audit-fähigen Abhängigkeitsgraphen. HyperTwin erfasst das implizite „was dieser Job wirklich tut und warum“-Wissen, das JCL-Dateien nie ausbuchstabieren.

Verwandte Begriffe

Siehe COBOL, Mainframe, JES, Dataset, Copybook, VSAM und das vollständige Glossar.

Häufig gestellte Fragen

Wofür steht JCL?
JCL steht für Job Control Language. Es ist die Skriptsprache, die auf IBM-z/OS-Mainframes verwendet wird, um Batch-Jobs zu beschreiben — welche Programme laufen, welche Inputs gelesen und wohin Outputs gesendet werden.
Ist JCL eine Programmiersprache?
Nicht im üblichen Sinn. JCL ist eine Job-Beschreibungssprache: Sie sagt z/OS, welche Ressourcen ein Job braucht und welche Programme ausgeführt werden sollen, aber die Geschäftslogik lebt in den COBOL-, PL/I- oder Assembler-Programmen, die JCL aufruft.
Warum gilt JCL als schwer?
Weil die Syntax streng und unnachgiebig ist (spalten- und interpunktionsempfindlich), die Fehlermeldungen kryptisch sind und die Produktionsumgebung oft voller shop-spezifischer Konventionen steckt, die nur in den Köpfen erfahrener Operatoren leben.
Was ist ein JCL-Member?
Ein JCL-Member ist eine benannte JCL-Datei, gespeichert in einem partitionierten Dataset (PDS) oder PDSE. Shops organisieren Produktions-JCL in Bibliotheken aus Members, die namentlich submittiert werden können — das Mainframe-Äquivalent eines Scripts-Verzeichnisses.
Wie hilft Hypercubic bei JCL?
Hopper betreibt z/OS über dieselbe Schnittstelle, die Operatoren nutzen — schreibt JCL, submittiert Jobs an JES und überwacht Outputs. HyperDocs mappt jedes JCL-Member auf die Programme, Datasets und Copybooks, die es berührt. HyperTwin erfasst das implizite Wissen, was jeder Produktionsjob wirklich tut und warum.
Was ist JCL? Job Control Language — Hypercubic - Hypercubic