Share to:

Job Control Language

Job Control Language forkortet JCL er et programmeringssprog, som bruges til at beskrive start af programmer på en IBM-mainframe. JCL kom som en del af styresystemet OS/360 og har været med i alle senere versioner uden væsentlige ændringer. En sekvens af programmer, der ønskes afviklet, kaldes i denne sammenhæng for et job.

Strukturen i JCL

Der er kun få kommandoer i JCL. Til gengæld er der masser af parametre. Nogle parametre har selv parametre. Der er store krav til formateringen, så et mellemrum for meget eller for lidt kan gøre at programmet ikke vil virke. Alle linjer med JCL-kommandoer skal starte med //. Kommentarer laves med //* og data, der angives i selve JCL'en afsluttes med /*.

JOB

Alt JCL skal starte med en JOB-kommando. Her beskrives, hvad jobbet hedder, og hvordan det overordnet skal afvikles. Formatet er:

//jobnavn JOB 'brugerid', CLASS=x, MSGCLASS=(a,b), REGION=nK, TIME=(m.n)

Brugeridenten fortæller, hvem der skal modtage statusinformation og output. Det er også denne bruger, der vil blive afregnet for brug af CPU-tid og andre ressourcer. CLASS-parametren afgør, hvilken klasse jobbet afvikles i. For hver klasse er det defineret, hvor meget CPU-tid et job højst kan få, og hvordan print og andet output behandles. MSGCLASS bruges til at definere, hvor mange meddelelser, der vises. Første del-parameter bestemmer mængden af systemmeddelelser, mens den anden parameter bestemmer mængden af job-specifikke meddelelser. REGION sætter den maksimale mængde virtuel hukommelse, der må bruges, og TIME bestemmer mængden af CPU-tid. Hvis REGION og TIME ikke er defineret, bruges værdier fra den aktuelle klasse.

EXEC PGM

Denne kommando bruges til afvikling af et program. Hver EXEC definerer et trin (step) i jobbet. Hver trin har et unikt navn inden for et job. Format:

//trin EXEC PGM=programnavn, PARM="parametre"

Ud over det viste kan CLASS og MSGCLASS mv. defineres her. De nye værdier vil blive brugt i det aktuelle trin.

EXEC PROC

EXEC PROC udfører en procedure, som er et stykke JCL, der er defineret på forhånd. En procedure kaldes med et navn og en række parametre, der er afhængige af den enkelte procedure. Et kald kan se sådan ud:

//trin EXEC PROC=procedure, param1=foo, param2=bar

DD

DD bruges til at beskrive de dataset (filer), der skal bruges i et enkelt trin. Man skal definere, om et dataset skal findes i forvejen eller om det skal oprettes. Man skal også tage stilling til, om et nyt dataset skal slettes, hvis jobbet skulle fejle. For nye dataset skal der også angives en størrelse. Størrelsen af et dataset beskrives traditionelt som et antal spor eller cylindre på en disk. Nyere udgaver af JCL kan også håndtere angivelser i kilo- og megabytes.

Man bruger også DD til at angive, hvor der skal ledes efter procedurer og programmer. DD kan også bruges til at fortælle, hvor output skal sendes hen.

EKSEMPEL PÅ JCL JOBB

//T4395XXX JOB (6158,TEST),'test',      

//         CLASS=A,                      

//         MSGLEVEL=(1,1),              

//         MSGCLASS=X,                  

//         NOTIFY=&SYSUID                

/*ROUTE PRINT U920                      

//*--------------------------------------

// JCLLIB  ORDER=(CF6T.L4340PO.JCLLIB)  

//*                                      

//S01      EXEC PGM=IKJEFT01,DYNAMNBR=20

// INCLUDE MEMBER=USTEPLIB              

//SYSPRINT DD  SYSOUT=*                  

//SYSABOUT DD  SYSOUT=*                  

//SYSDBOUT DD  SYSOUT=*                  

//SYSTSPRT DD  SYSOUT=*                  

//ABENDAID DD  SYSOUT=*                  

//SYSOUT   DD  SYSOUT=*                  

//SYSTSIN  DD  *                        

DSN SYSTEM(DBKT)                        

RUN PROGRAM(B65IPTG),PLAN(CFXX9599)      

END                                      

/*                                      

//   

Procedurer

Procedurer er skabeloner, hvor der bruges parametre i stedet for konkrete navne på dataset. En procedure er opbygget som følger:

//MINPROC PROC &LIB="TEST.LIBRARY"
// Her sker noget
//PEND

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya