Job Control Language


Job Control Language

JCL (Job Control Language) ist die Steuersprache für Stapelverarbeitungen in einem Großrechnerumfeld und gehört zu den Skriptsprachen. Aufgabe der JCL ist es, die auszuführenden Programme, deren Reihenfolge sowie eine Laufzeitumgebung (Verbindung zu physischer Hardware, also den Ein- und Ausgabegeräten und Dateien) vorzugeben. Die zu einer konkreten Aufgabe gehörenden Programme oder Programmfolgen und die erforderliche Umgebung werden mithilfe der JCL in so genannten Jobs gebündelt, die so als lauffähige Einheiten im Rahmen des Multitasking definiert werden. Die Jobs stellen eine den eigentlichen Anwendungsprogrammen übergeordnete Stufe auf Systemebene dar und sind insofern mit den so genannten Batch-Dateien bei MS-DOS oder Windows vergleichbar.

Inhaltsverzeichnis

Entwicklung

Die heute auf Systemen unter z/OS eingesetzte JCL wurde 1964 für OS/360 IBM entwickelt. Bei der Weiterentwicklung wurde Abwärtskompatibilität gewährleistet.

Ursprünglich wurde JCL auf Lochkarten gespeichert. Die Jobs wurden dann per Kartenleser ins System eingespielt. Heute sind JCL-Bibliotheken Partitioned Datasets mit Datensatz-Format FB (Fixed Blocked) und Datensatz-Länge 80 üblich.

Verarbeitung

JCL wird vom Job Entry Subsystem (JES2 oder JES3) eingelesen und interpretiert.

Auch die Subsysteme, Systemfunktionen (Started Tasks) und die Anmeldungen eines Benutzers am TSO verwenden JCL-Prozeduren zur Initialisierung.

Anweisungen

Alle Anweisungen beginnen mit '//'. Kommentare werden mit '//*' gekennzeichnet und nach '// ' findet keine Verarbeitung mehr statt. Es ist möglich, Daten für die Standardeingabe direkt in der JCL mitzugeben.

Die wichtigsten Anweisungen sind:

  • JOB (Informationen über auszuführende Batchverarbeitung)
  • EXEC (führe ein Programm oder eine Prozedur aus)
  • DD (Data Definition, Zuordnung File im Programm zu physischer Datei)
  • PROC und PEND zum definieren lokaler oder globaler Prozeduren

Eine Programmausführung, die mit einer EXEC-Anweisung gestartet wird, wird Step (Verarbeitungsschritt) genannt. Es ist möglich, die Durchführung von Steps von den Rückgabewerten früherer Steps (Condition Code) abhängig zu machen. Dafür gibt es eine einfache IF-THEN-ELSE Logik, mithilfe derer man Blöcke von Anweisungen (Steps) bedingt ausführen kann. Schleifen sind bei der Jobabarbeitung nicht möglich, die Steps werden immer sequentiell ausgeführt.

Ein direkter Rückbezug auf Ein- und Ausgabedaten eines vorhergehenden Steps ist möglich, um diese in folgenden Steps weiter zu verwenden.

Die Verwendung von Variablen (Symbols) in der JCL ist möglich, unterliegt allerdings einigen Einschränkungen. Symbols können nur dazu verwendet werden, um Teile der JCL vor der Ausführung des Jobs zu ändern. Zur Laufzeit können lediglich die Return-Codes der einzelnen Steps den Jobablauf beeinflussen.

Ein Job wird entweder automatisiert zeitgesteuert über ein Scheduling System gestartet oder kann auch direkt angestoßen werden (meist über ISPF).

Beispiele

Beispiel 1:

 //JOB1   JOB (12345),MSGCLASS=X,NOTIFY=SYSPROG1
 //STEP1 EXEC PGM=IEFBR14
 //DD1     DD DSN=AB.CD.EFGH,DISP=(OLD,DELETE)

Dieser Job löscht die katalogisierte Datei AB.CD.EFGH. Das ausgeführte Programm IEFBR14 ist ein Dummyprogramm. Dieses ist nur notwendig, weil der JCL-Interpreter bei jedem Step einen Programm- oder Prozeduraufruf erwartet. Der Benutzer 'SYSPROG1' wird nach Ende des Jobs über den Ausführungsstatus informiert. In diesem Fall Return-Code 0 (=OK) oder „JCL ERROR“, falls der Job fehlerhaft kodiert wurde oder wenn die entsprechende Datei nicht existiert.

Die Zuordnung der Datei AB.CD.EFGH zum DD-Namen DD1 ist in diesem Fall beliebig, weil sie vom aufgerufenen Programm nicht verwendet wird.

Ablauf (vereinfacht):

  • Die Datei wird allokiert (1. DISP-Parameter OLD → exklusiver Zugriff) und dem DD-Namen DD1 zugeordnet. (Step-Preallocation)
  • Das Dummy-Programm wird aufgerufen.
  • Die Datei wird gelöscht (2. DISP-Parameter DELETE, Step-Nachverarbeitung)

Beispiel 2:

 //JOB2     JOB (123456),MSGCLASS=X
 //STEP1   EXEC PGM=SALDO
 //STEPLIB   DD DISP=SHR,DSN=BH.PROD.LOAD
 //          DD DISP=SHR,DSN=BH.PROD.LOAD2
 //INPUT     DD DISP=SHR,DSN=BH.DETAIL.BESTAND
 //LISTE     DD SYSOUT=*

Hier wird das Anwendungsprogramm SALDO ausgeführt, das Lademodul wird zunächst in den Bibliotheken BH.PROD.LOAD und BH.PROD.LOAD2 gesucht, danach in Systembibliotheken. Beim lesenden Zugriff auf Dateien können mehrere Datasets unter einem DD-Namen verkettet werden.

Die Programmeingabedaten in der Datei BH.DETAIL.BESTAND und die Ergebnisliste sollen in ein Spoolfile geschrieben werden (DD-Name LISTE). Die Zuordnung des Input-Datasets zum DD-Namen „INPUT“ bzw. des Outputs zu „LISTE“ ist vom Programm vorgegeben (logischer Dateiname).

Beispiel 3:

 //JOB3    JOB (123456),MSGCLASS=X
 //STEP1  EXEC PGM=IDCAMS
 //DDIN     DD DISP=SHR,DSN=SYSPROG.SMF.AUSWERT
 //DDOUT    DD DISP=(NEW,CATLG),DSN=SYSPROG.SMF.HISTORY(+1),
 //            UNIT=SYSDA,SPACE=(CYL,(15,15),RLSE),DCB=*.DDIN
 //SYSPRINT DD SYSOUT=*
 //SYSIN    DD *
  REPRO INFILE(DDIN) OUTFILE(DDOUT)
 /*

Hier wird mit dem System-Utility IDCAMS die Datei SYSPROG.SMF.AUSWERT in eine neue Generation der „Generation Data Group“ (GDG) SYSPROG.SMF.HISTORY kopiert. Das Protokoll dieser Aktion (SYSPRINT) wird in ein Spoolfile geschrieben, die Steueranweisung für IDCAMS (REPRO-Command) wurde im Standardinput SYSIN kodiert, welcher mit /* abgeschlossen wird.

Andere Mainframebetriebssysteme wie VSE verwenden ebenfalls JCL genannte Sprachen, die jedoch eine komplett andere Syntax haben.

Literatur

  • Michael Winter: MVS/ESA JCL: Einführung in die Praxis, Oldenbourg Wissenschaftsverlag, 1999, ISBN 978-3486250589
  • Gary DeWard Brown, Michael Teuffel: zOS/JCL: Job Control Language im Betriebssystem z/OS MVS, Oldenbourg Wissenschaftsverlag, 2004, ISBN 978-3486273977

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Job Control Language — (JCL) is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem. The term Job Control Language can also be used generically to refer to all languages which perform these… …   Wikipedia

  • Job Control Language — (Language de Contrôle des Tâches), couramment appelé JCL désigne certains langages de scripts, en particulier sur les systèmes d exploitation mainframe d IBM, dont le rôle est d exécuter un batch. Il existe deux langages JCL d IBM, l un utilisé… …   Wikipédia en Français

  • job control language — (Computers) A programming language used to specify the manner, timing, and other requirements of execution of a task or set of tasks submitted for execution, especially in background, on a multitasking computer; a programming language for… …   The Collaborative International Dictionary of English

  • Job Control Language — Descripción general JCL, acrónimo de Job Control Language, se traduce al español como Lenguaje de Control de Trabajos. Es un conjunto de especificaciones de morfología y sintaxis requeridas para la redacción de instrucciones de ejecución de… …   Wikipedia Español

  • job-control language — noun a problem oriented language used to describe job requirements to an operating system • Hypernyms: ↑application oriented language, ↑problem oriented language …   Useful english dictionary

  • job control language — Computers. a language used to construct statements that identify a particular job to be run and specify the job s requirements to the operating system under which it will run. Abbr.: JCL * * * …   Universalium

  • job control language — Computers. a language used to construct statements that identify a particular job to be run and specify the job s requirements to the operating system under which it will run. Abbr.: JCL …   Useful english dictionary

  • job control language — type of programming language …   English contemporary dictionary

  • job control language — noun Computing a language enabling the user to define the tasks to be undertaken by the operating system …   English new terms dictionary

  • Job Control Language (JCL) — Kommandosprache; spezielle Sprache, in der die Kommandos zur Ausführung eines ⇡ Jobs an das ⇡ Betriebssystem (BS) eines Computers formuliert werden …   Lexikon der Economics