Overzicht

Job Control Language, algemeen afgekort als JCL, is de verzamelnaam voor de scripttalen die op scripttalen en vooral op IBM-systemen gebruikt worden om batchwerk aan te sturen. JCL vertelt het besturingssysteem welke programma's moeten draaien, welke gegevensbronnen en -doelen gebruikt moeten worden en onder welke voorwaarden stappen moeten worden overgeslagen of opnieuw uitgevoerd. Het is geen algemene programmeertaal maar een declaratieve instructietaal voor jobbeheer op mainframe-omgevingen en besturingssystemen.

Belangrijke kenmerken en onderdelen

Een JCL-job bestaat typisch uit een set van regels of statements die het systeem informeren over de jobnaam, uit te voeren stappen en gebruikte datasets of apparaten. Enkele veelvoorkomende types statements zijn:

  • JOB — definieert de job en algemene beleidsregels.
  • EXEC — specificeert welk programma of subsystem stap moet uitvoeren.
  • DD (Data Definition) — geeft aan welke bestanden, devices of dataset-attributen gebruikt worden.

JCL gebruikt sleutelwoorden zoals DISP, DSN, UNIT, SPACE, RECFM en LRECL om bestandsbeheer en apparaattoewijzing te regelen. Syntax is historisch strikt: statements begonnen vaak met een vaste prefix (zoals dubbele slash) en posities en velden waren relevant voor de interpreter. Moderne tools en systemen bieden vaak hulpmiddelen om fouten te voorkomen, maar het nauwkeurig specificeren van resource-eigenschappen blijft essentieel voor betrouwbare uitvoering.

Historie en ontwikkeling

De oorsprong van JCL ligt bij de vroege IBM-systemen van de jaren 1960 en 1970, waarbij verschillende lijnen zijn ontstaan. In de loop der tijd splitste JCL zich in twee hoofdvarianten: de lijn die voortkomt uit DOS/360 en verder evolueerde richting z/VSE, en de lijn vanaf OS/360 die evolueerde naar MVS en later z/OS, vaak uitgebreid met Job Entry Subsystem-functionaliteit. Beide lijnen delen basisconcepten maar verschillen aanzienlijk in details en uitbreidingen; ook de manier waarop de job entry en scheduling worden afgehandeld verschilt tussen implementaties.

Gebruik en voorbeelden van toepassingen

JCL wordt vooral gebruikt voor batchverwerking: dag- of nachtelijke verwerking van grote hoeveelheden data, back-ups, periodieke rapportages en het starten van subsysteemdiensten. In een mainframe-omgeving wordt JCL vaak aangeroepen door een Job Entry Subsystem (JES) dat jobqueueing, prioritering en uitvoeringsbeheer verzorgt. De uitvoer en foutcodes van programma's (return/condition codes) worden door JCL geïnterpreteerd om vervolgacties te bepalen; parameters zoals COND en IF/THEN spelen hierbij een rol.

Belangrijke verschillen en opmerkelijke feiten

Twee JCL-lijnen zijn vooral relevant in de praktijk: de z/VSE-afstammeling en de OS/360→z/OS-afstammeling, waarbij laatstgenoemde vaak verbeterde mogelijkheden voor job- en spoolbeheer bevat dankzij JES-extensies. Hoewel sommige syntactische regels gemeenschappelijk zijn — zie ook de traditionele syntaxis— kunnen statements en sleutelwoorden per systeem verschillen. Documentatie en tools per platform zijn daarom onmisbaar voor correcte implementatie en migratie tussen systemen.

Verdere bronnen

Voor technisch gedetailleerde referenties en voorbeelden kunnen beheerders en ontwikkelaars naast algemene overzichten ook platformdocumentatie en gebruikershandleidingen raadplegen. Zie bijvoorbeeld bronnen gericht op IBM-mainframes en job scheduling voor praktische voorbeelden en best practices. Meer achtergrondinformatie en voorbeeldscenario's zijn beschikbaar via leveranciersdocumentatie en trainingsmateriaal dat dieper ingaat op resourceparameters, foutafhandeling en optimalisatie van batchjobs.

Zie ook: scripttalen, IBM, mainframe, besturingssystemen en syntaxis voor gerelateerde onderwerpen.