Job Control Language (JCL): IBM-mainframe scriptingsprog forklaret

JCL forklaret: Lær IBM-mainframe scriptingsprog, syntaks, jobstyring og forskelle mellem z/VSE og z/OS — klar guide til JCL, JECL og batchjob.

Forfatter: Leandro Alegsa

Job Control Language (JCL) er en betegnelse for scriptingsprog, der anvendes på IBM mainframe-operativsystemer. JCL instruerer systemet om, hvordan det skal køre et batchjob eller starte et undersystem, hvilke programmer der skal køres, og hvilke filer eller enheder der skal bruges til input og output.

Formålet med JCL er primært at beskrive jobmets struktur og ressourcer — ikke at skrive programlogik. JCL angiver eksempelvis hvilke trin (steps) der skal køres, hvilke eksekverbare programmer (PGM) eller katalogiserede procedurer (PROC) der skal startes, hvilke dataområder (DD-udsagn) der skal forbindes, samt betingelser for fejlhåndtering og betinget spring (f.eks. COND eller IF/THEN/ELSE).

Grundlæggende elementer i JCL

  • JOB-udsagnet – definerer jobmet som helhed (kontooplysninger, brugernavn, prioritet mv.).
  • EXEC-udsagnet – specificerer et trin i jobmet, normalt hvilket program eller hvilken procedure der skal køres (f.eks. EXEC PGM=IEBGENER eller EXEC PROC=MYPROC).
  • DD (Data Definition) – fortæller systemet hvilke filer/enheder der skal være tilgængelige for et programtrin (f.eks. DD DSN=MIN.DATA.SET,DISP=SHR eller DD SYSOUT=*).
  • Jobstyring og fejlhåndtering – betingelser som COND= og nyere blok-strukturer som IF/THEN/ELSE/END gør det muligt at styre, hvilke trin der køres afhængigt af return codes.
  • PROC og katalogiserede procedurer – genanvendelige sæt af JCL-udsagn, der kan katalogiseres og kaldes fra flere job.

Eksempel på simpel JCL

Et typisk, forenklet eksempel på JCL ser sådan ud:

 //MYJOB   JOB  (ACCT),'EKSEMPEL',CLASS=A,MSGCLASS=X //STEP1   EXEC PGM=IEBGENER //SYSUT1  DD   DSN=BRUGER.INPUT,DISP=SHR //SYSUT2  DD   DSN=BRUGER.OUTPUT,DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,SPACE=(TRK,(1,1)) //SYSIN   DD   DUMMY //SYSOUT  DD   SYSOUT=* 

Her starter MYJOB, STEP1 kører programmet IEBGENER, og DD-udsagnene knytter input- og outputfiler til programmet. Dette er et minimalt eksempel — reelle job kan være meget mere komplekse med flere trin og specialiserede parametre.

Forskelle mellem JCL-varianter

  • Der findes to hovedlinjer af IBM Job Control-sprog: en, der stammer fra DOS/360 og som senest findes i z/VSE; og en anden, fra OS/360 til z/OS, hvor sidstnævnte også inkluderer JES-udvidelser kaldet Job Entry Control Language (JECL). De deler nogle grundlæggende koncepter, men syntaks, tilgængelige parametre og driftssubsystemer kan være væsentligt forskellige.
  • På z/OS spiller JES (JES2/JES3) en central rolle for køstyring og spooling, mens z/VSE har sin egen måde at håndtere jobkørsel og ressourcer på.

Praktisk brug og værktøjer

JCL benyttes typisk til batchbehandling: daglige job, backuprutiner, massetransformationer eller kørsel af vedligeholdelsesværktøjer. Almindelige mainframe-utility-programmer, der ofte kaldes fra JCL, er f.eks. IEBGENER, IDCAMS, SORT/DFSORT og forskellige IBM- eller tredjeparts-utilities til filhåndtering og rapportgenerering.

Tips og bedste praksis

  • Skriv klare kommentarer i JCL (kommentarlinjer starter ofte med //*), så andre forstår jobmets formål og afhængigheder.
  • Brug katalogiserede procedurer (PROC) til at genbruge standardiserede jobtrin og reducere fejl.
  • Test ændringer i et udviklingsmiljø, før de flyttes til produktion — små ændringer i DISP, UNIT eller SPACE kan have store konsekvenser.
  • Overvåg return codes (RC) fra kaldte programmer og anvend passende fejlhåndtering via COND eller IF/THEN/ELSE.

Selvom JCL kan virke gammeldags sammenlignet med moderne scriptsprog, er det et kraftfuldt og meget brugt værktøj i mainframe-miljøer, hvor stabil batch-behandling og præcis styring af store datamængder er kritisk.

Spørgsmål og svar

Q: Hvad er JCL?


A: JCL står for Job Control Language, som er et scriptsprog, der bruges på IBM mainframe-operativsystemer til at instruere systemet i, hvordan det skal køre et batchjob eller starte et undersystem.

Q: Hvad er formålet med JCL?


A: Formålet med JCL er at angive, hvilke programmer der skal køres, hvilke filer eller enheder der skal bruges til input eller output, og at specificere, under hvilke betingelser et trin skal springes over.

Q: Hvor mange forskellige IBM Job Control-sprog er der?


A: Der er to forskellige IBM Job Control-sprog. Det ene er til den operativsystemlinje, der begynder med DOS/360, og hvis seneste medlem er z/VSE, og det andet er til linjen fra OS/360 til z/OS, hvor sidstnævnte nu inkluderer JES-udvidelser, Job Entry Control Language (JECL).

Q: Hvad har de to forskellige IBM Job Control-sprog til fælles?


A: De to forskellige IBM Job Control-sprog deler nogle grundlæggende syntaksregler og et par grundlæggende begreber.

Q: Hvad er forskellene mellem de to forskellige IBM Job Control-sprog?


A: De to forskellige IBM Job Control-sprog er ellers meget forskellige.

Q: Hvad står JES extensions for?


A: JES extensions står for Job Entry Control Language.

Q: Hvilket er det seneste medlem af operativsystemlinjen, der begynder med DOS/360?


A: Det seneste medlem af operativsystemlinjen, der begynder med DOS/360, er z/VSE.


Søge
AlegsaOnline.com - 2020 / 2025 - License CC3