Limbajul de control al locului de muncă

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Limbajul de control al locului de muncă
limbaj de programare
Implementare referință
Sistem de operare OS / 360 , z / OS și MVS

În informatică, Control Language Iov (JCL) este un limbaj de scripting folosit în IBM DOS / VSE , OS / VS1 și MVS sistemele de operare pentru a executa (în jargonul, lansare) o procedură de lot pe un general mainframe sistem.

Descriere

Limbajul folosește un fișier EBCDIC (sau în computerele vechi un set de cărți perforate ) format dintr-o succesiune de trei tipuri de bază de declarații (în jargon, cărți ): JOB, EXEC, DD în secvența:

LOC DE MUNCA
EXEC
DD
...
DD
EXEC
DD
...
DD

Declarațiile JCL

Prima filă ( JOB ), unică în JCL și prima din secvență, numește procedura batch. Cu acest nume, procedura este recunoscută de sistemul de operare și identificată în mesajele de început și de sfârșit de lucru care apar pe consolă .

Al doilea ( EXEC ), unul pentru fiecare program , identifică toate programele care trebuie executate pentru acea procedură specifică în secvența de procesare a acestora.

Al treilea ( DD ), Definirea datelor , unul pentru fiecare set de date , definește seturile de date de intrare și ieșire utilizate de program.

Declarațiile încep întotdeauna cu o bară dublă în poziția 1 și 2.

Declarațiile cu un asterisc în a treia poziție sunt comentate și nu sunt interpretate de sistemul de operare .

Declarațiile care se termină cu virgulă continuă în fila următoare. Continuarea este în general utilizată pentru cardurile DD care trebuie să furnizeze sistemului de operare o mulțime de informații specifice despre seturile de date utilizate: numele setului de date, dispozitivul de alocare, formatul de înregistrare etc.

JCL se încheie cu o declarație care conține doar o bară dublă.

Exemplu de JCL simplu

 // POPRRIEP JOB  
// ************************************************ ***************************************** 
// * XII CENSUL GENERAL AL ​​POPULAȚIEI 1981 
// * PROCEDURA POP14 - FAZĂ REZUMATĂ DE PROCESARE REGIONALĂ 
// ************************************************* ***************************************** 
// POP14RS1 EXEC PGM = SORT, TIME = 1440 
// STEPLIB DD DSNAME = SYS1.LINKLIB, DISP = SHR 
// SORTLIB DD DSNAME = SYS1.SORTLIB, DISP = SHR 
// SYSOUT DD SYSOUT = A 
// SORTWK01 DD UNIT = 3350, DSN = && ROMA1, DISP = (NEW, DELETE), 
// SPACE = (CYL, (270)), VOL = SER = WORK2A 
// SORTWK02 DD UNIT = 3350, DSN = && ROMA2, DISP = (NEW, DELETE), 
// SPACE = (CYL, (270)), VOL = SER = WORK2A 
// SORTWK03 DD UNIT = 3350, DSN = && ROMA3, DISP = (NEW, DELETE), 
// SPACE = (CYL, (270)), VOL = SER = WORK2B 
// SORTWK04 DD UNIT = 3350, DSN = && ROMA4, DISP = (NEW, DELETE), 
// SPACE = (CYL, (270)), VOL = SER = WORK2B 
// SORTWK05 DD UNIT = 3350, DSN = && ROMA5, DISP = (NEW, DELETE), 
// SPACE = (CYL, (270)), VOL = SER = WORK2C 
// SORTWK06 DD UNIT = 3350, DSN = && ROMA6, DISP = (NEW, DELETE), 
// SPACE = (CYL, (270)), VOL = SER = WORK2C 
// SORTWK07 DD UNIT = 3350, DSN = && ROMA7, DISP = (NEW, DELETE), 
// SPACE = (CYL, (270)), VOL = SER = WORK2D 
// SORTWK08 DD UNIT = 3350, DSN = && ROMA8, DISP = (NEW, DELETE), 
// SPACE = (CYL, (270)), VOL = SER = WORK2D 
// SORTIN DD UNIT = 3350, DISP = (OLD, KEEP), DSN = COPIA99.ROMA, 
// VOL = SER = (RICDK1, RICDK2, RICDK3) 
// SORTOUT DD UNIT = (3350,3), DCB = (RECFM = FB, LRECL = 130, BLKSIZE = 18980), 
// SPACE = (CYL, (520,180), RLSE), DISP = (NEW, PASS), 
// DSN = POP14RS1.ROMA, VOL = SER = (WORK2E, WORK2F, WORK2G) 
// SYSIN DD * 
CÂMPURI SORT = (59.4, A), FORMAT = BI 
/ * 
// POP14110 EXEC PGM = POP14110 
// STEPLIB DD DSN = PGM.LOAD, DISP = SHR 
// SYSOUT DD SYSOUT = A 
// SYSUDUMP DD SYSOUT = A 
// SYSDBOUT DD SYSOUT = A 
// FILINP DD UNIT = 3350, DSN = POP14RS1.ROMA, 
// DISP = (VECHI, ​​PĂSTRAȚI, PĂSTRAȚI), VOL = SER = (WORK2E, WORK2F, WORK2G) 
// ORIEP117 DD UNIT = (3400-6, P), DSN = ORIEP117.ROMA, VOL = SER = 09995, 
// DCB = (RECFM = FB, LRECL = 400, BLKSIZE = 8000), DISP = (NEW, Keep) 
// ORIEP10 DD UNIT = (3400-6, P), DSN = ORIEP10.ROMA, VOL = SER = 06583, 
// DCB = (RECFM = FB, LRECL = 400, BLKSIZE = 8000), DISP = (NEW, Keep) 
// CHKPOINT DD UNIT = 3350, VOL = SER = VS1104, DSN = CHKPOINT.ROMA, 
// DISP = (NEW, KEEP), SPACE = (CYL, (20,4), RLSE) 
// OPRINT DD SYSOUT = A, DCB = (RECFM = FA, BLKSIZE = 133) 
//

Utilitatea JCL

Funcția unui JCL este de a executa programe și de a aloca resurse fizice (set de date, zonă de lucru și unitate) acestora. Acest lucru pare foarte simplu, dar atunci când cantitatea de programe și resurse devine foarte mare, apar probleme de gestionare a procedurilor JCL. De-a lungul timpului, aplicațiile de planificare au fost create pentru a automatiza executarea procedurilor JCL; funcția lor este de a analiza codurile de returnare eliberate de job și de a începe următorul; rezultatul tuturor procesărilor gestionate poate fi monitorizat online sau cu rapoarte.

Când declarațiile JCL devin mii, apare problema cunoașterii tuturor aplicațiilor care utilizează resurse fizice, în acest sens, au fost create aplicații care colectează declarațiile și creează arhive (depozite) pentru a monitoriza utilizarea bazelor de date și a fișierelor. [ fără sursă ]

linkuri externe

Controlul autorității LCCN ( EN ) sh85070574