Willkommen zum ersten Teil der JCL Tutorial-Reihe. In dieser Artikelserie werden wir die Grundlagen von der Job Control Language(JCL) betrachten und lernen, wie wir unsere ersten Batchjobs starten können. In dem ersten Teil dieser Serie gucken wir uns an, was JCL ist und wie es ausgeführt wird.
In diesem Tutorial wird vorausgesetzt, dass eine Mainframeumgebung zur Verfügung steht. Entweder ihr habt Zugang zum Mainframe eurer Firma oder ihr installiert euch eine Emulation wie z.B. Hercules. Falls ihr noch ein Tutorial für die Installation der Hercules-Emulation haben wollt, dann ab damit in die Kommentare!
Was ist JCL?
In der Mainframe-Welt wird grundlegend zwischen Dialog- und Batchbetrieb unterschieden. Zu dem Dialogbetrieb gehören alle Interaktionen zwischen Benutzer und System, wie wenn der Benutzer auf eine Rückmeldung einer Eingabe wartet. In der Zeit kann er nichts anderes machen, bis das System die Rückmeldung gibt.
Die Batchverarbeitung, auch Dunkelverarbeitung genannt, funktioniert ganz anders, da die Verarbeitung komplett im Hintergrund durchgeführt wird. Der Benutzer startet also eine Batchverarbeitung und kann dann andere Sachen erledigen. Dafür schickt der Benutzer eine Reihe von Anweisungen los, die nacheinander abgearbeitet werden. Und hier kommt JCL ins Spiel!
Damit das System genau weiß, was es tun soll, müssen wir die Anweisungen eindeutig definieren. Daher hat IBM die Job Control Language geschaffen, die genau diese Anforderung erfüllen kann. Hier werden nun einzelnen Anweisungen definiert, was das System tun soll. Wie genau die Anweisungen aussehen, zeige ich euch später im Aufbau von JCL-Skripten.
Ursprünglich wurden die JCL-Skripte auf Lochkarten „gespeichert“. Daher kommt auch die feste Spaltenanzahl und die Nummerierung der Zeilen.
Das Job Entry Subsystem – JES
Irgendwer muss die Anweisungen vom Benutzer entgegennehmen und verarbeiten. Diese Aufgabe erledigt das Job Entry Subsystem(JES). Wenn der Benutzer ein Skript mit Anweisungen startet, wird daraus ein sogenannter Batchjob. Das JES interpretiert nicht nur die verschiedenen Anweisungen, sondern steuert auch den Ablauf aller Batchjobs im System. Daher können einige Batchjobs priorisiert werden und die Verteilung der Ressourcen wird genau gesteuert. JES kümmert sich auch automatisch um die Freigabe der reservierten Ressourcen, nachdem der Batchjob beendet wurde.
Eine ausführliche Beschreibung von JES und wie Batchjobs aufgeführt werden, könnt ihr hier finden.
Was für Aufgaben übernehmen Batchjobs?
Die Aufgaben von Batchjobs sind sehr weitrechend. Früher hatten sie noch eine viel größere Bedeutung, da damals nur sehr wenig Rechenleistung zur Verfügung stand. So konnten die Mitarbeiter Tagsüber die Daten mittels den Onlinebetrieb eingeben und Nachts wurden diese dann verarbeitet. In vielen alten Anwendungen wird dies auch immer noch so durchgeführt.
Es gibt aber auch noch weitere relevante Aufgaben, wie z.B. :
- Datenbankpflege
- Datensicherungen
- Auswertungen über das System starten
- Kundenpost drucken
- Rechenintensive Aufgaben
Nun sind wir am Ende des ersten Teils angelangt. Wenn der zweite Online ist, wird er hier verlinkt. Weitere JCL-Tutorials könnt ihr hier finden.