Job Control Language (JCL): apibrėžimas ir taikymas IBM mainframe sistemose
Job Control Language (JCL): aiškus apibrėžimas ir praktinis taikymas IBM mainframe (z/OS, z/VSE). Išmokite sintaksę, JES/JECL ypatybes ir paketinį darbų valdymą.
Job Control Language (JCL) - tai IBM mainframe operacinėse sistemose naudojamų scenarijų kalbų pavadinimas. Ji nurodo sistemai, kaip atlikti paketinį darbą arba paleisti posistemę.
JCL paskirtis - nurodyti, kokias programas paleisti, kokius failus ar įrenginius įvesti ar išvesti. Joje galima nurodyti, kokiomis sąlygomis praleisti tam tikrą žingsnį.
Yra dvi skirtingos IBM Job Control kalbos:
- operacinės sistemos, kuri prasideda nuo DOS/360 ir kurios naujausias narys yra z/VSE, ir
- kita - nuo OS/360 iki z/OS, pastaroji dabar apima JES plėtinius, Job Entry Control Language (JECL).
Jos turi bendras sintaksės taisykles ir keletą pagrindinių sąvokų, tačiau kitais atžvilgiais yra labai skirtingos.
Kaip JCL yra struktūrizuojama
Tipiškas JCL darbas susideda iš kelių pagrindinių tipų eilučių (statements):
- JOB – kontroliuoja darbo lygius ir metaduomenis (pavyzdžiui, paskyrimo kodą, pranešimų klasę, darbo limitus).
- EXEC – nurodo, kurią programą ar žingsnį vykdyti (PGM= arba PGM=programos_vardas; taip pat galima nurodyti vykdymą per posistemes).
- DD (Data Definition) – aprašo įvesties/išvesties duomenų šaltinius: dataset vardą (DSN=), dispozicijas (DISP=), įrenginio tipą (UNIT=), vietos poreikį (SPACE=), įrašo formatą (DCB=) ir pan.
Pagrindiniai JCL parametrai ir nustatymai
- DISP – failo dispozicija: OLD, NEW, SHR, MOD arba kompleksinė sintaksė (pvz. DISP=(NEW,CATLG,DELETE)).
- UNIT – įrenginio tipas (pvz., SYSDA) arba fizinis įrenginys.
- SPACE – kiek vietos rezervuoti (blokais arba trasomis).
- DCB – įrašų formatas (RECFM), ilgis (LRECL), bloko dydis (BLKSIZE) ir kt.
- PGM / PARM – EXEC nurodo vykdomą programą (PGM=), o PARM= perduoda parametrus programai.
- COND ir IF/THEN/ELSE/ENDIF – JCL leidžia valdyti sąlyginį žingsnių vykdymą pagal grąžintus klaidų kodus.
Trumpas pavyzdys ir paaiškinimas
//MYJOB JOB (12345),'VARDAS',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //STEP1 EXEC PGM=IEFBR14 //INFILE DD DSN=VARTOTOJAS.IN.INPUT,DISP=SHR //OUTFILE DD DSN=VARTOTOJAS.OUT.PROD,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(TRK,(1,1)),DCB=(RECFM=FB,LRECL=80) //SYSPRINT DD SYSOUT=*
Paaiškinimai:
- //MYJOB JOB – darbo antraštė: ACCOUNT numeris, aprašomas tekstas, CLASS/MSGCLASS nurodo paleidimo ir spausdinimo elgseną.
- //STEP1 EXEC PGM=IEFBR14 – vykdoma programa IEFBR14 (dažnai naudojama kaip "tuščias" žingsnis arba kaip vietos rezervavimo pavyzdys).
- //INFILE DD – įvesties dataset, DISP=SHR reiškia, kad leidžiama bendrinti skaitymą su kitais vartotojais.
- //OUTFILE DD – naujo dataset kūrimas su DISP=(NEW,CATLG,DELETE): jei pavyksta, dataset bus kataloguotas, jei ne — ištrintas.
- //SYSPRINT DD SYSOUT=* – sistemos ar programos pranešimai bus nukreipti į numatytą spausdinimo vietą.
Specialūs aspektai ir skirtumai
JCL nėra programavimo kalba tradicine prasme – tai aprašomoji arba kontroliavimo kalba, skirta informuoti operacinę sistemą, kaip vykdyti užduotis. Kai kurios ypatybės:
- JCL dažnai yra pozicinė: tradiciškai eilučių formatas ir stulpeliai turėjo reikšmę (pvz., // pradžia). Nors daug kas supaprastėjo, pozicinės konvencijos vis dar dažnos.
- JCL paprastai yra didžiosiomis raidėmis arba nesijaučia nuo didžiųjų/mažųjų raidžių skirtumo.
- z/OS JCL papildo Job Entry Subsystem (JES) plėtinių naudą: yra skirtingi JES variantai (JES2, JES3), kurie valdo darbo eilę, spoolingą ir papildomas JECL galimybes.
- z/VSE ir z/OS JCL tarpusavyje nėra pilnai suderinamos — sintaksė ir kai kurie parametrai skiriasi, todėl reikia žinoti, kuriai sistemai rašote JCL.
Praktiniai patarimai ir įrankiai
- Naudokite komentarus: JCL komentarai prasideda su //* eilute (vienaženklius komentarus tarp JCL eilučių).
- Testuokite žingsnius atskirai: parašykite trumpus, izoliuotus žingsnius, kad patikrintumėte DD parametrus ir programų vykdymą.
- Patikrinkite spoolingą ir pranešimus per JES: klaidų pranešimai ir JOB log'ai dažnai suteikia aiškiausią nuorodą, kodėl darbas nepaleido.
- Dažnai naudojamos utilitės: IEBGENER, IDCAMS, IEBCOPY, SORT — jos padeda duomenų kopijavimui, katalogų valdymui ir rikiavimui.
- Leiskitės į sistemos saugumo nustatymus: prieigos teisės (pvz., RACF) gali riboti dataset kūrimą ir skaitymą, todėl JCL gali atmesti net teisingai suformuotas DD eilutes, jei trūksta leidimų.
Išvados
JCL yra pagrindinis įrankis batch darbų valdymui IBM mainframe aplinkoje. Norint efektyviai rašyti JCL, svarbu gerai suprasti pagrindines statmentų rūšis (JOB, EXEC, DD), DISP logiką, įrenginių ir katalogavimo parametrus, taip pat žinoti sistemos (z/OS vs z/VSE) ypatumus. Praktika, analizė per JES pranešimus ir žinomų utiličių naudojimas greitai padeda įgyti patirties ir rašyti patikimesnius, lengviau prižiūrimus darbų aprašus.
Klausimai ir atsakymai
K: Kas yra JCL?
A: JCL reiškia Job Control Language (užduočių valdymo kalba) - tai IBM mainframe operacinėse sistemose naudojama scenarijų kalba, nurodanti sistemai, kaip atlikti paketinį darbą arba paleisti posistemę.
K: Koks JCL tikslas?
A.: JCL paskirtis - nurodyti, kurias programas paleisti, kokius failus ar įrenginius naudoti įvesties ar išvesties funkcijoms atlikti, ir nurodyti, kokiomis sąlygomis praleisti kokį nors veiksmą.
K: Kiek yra skirtingų IBM darbo valdymo kalbų?
A: Yra dvi skirtingos IBM Job Control kalbos. Viena skirta operacinių sistemų linijai, kuri prasideda nuo DOS/360 ir kurios naujausias narys yra z/VSE, o kita - linijai nuo OS/360 iki z/OS, pastaroji dabar apima JES plėtinius, Job Entry Control Language (JECL).
Klausimas: Ką bendro turi dvi skirtingos IBM darbo valdymo kalbos?
A.: Dvi skirtingos IBM Job Control kalbos turi bendras sintaksės taisykles ir kelias pagrindines sąvokas.
K.: Kokie yra kai kurie dviejų skirtingų IBM Job Control kalbų skirtumai?
A.: Kitais atžvilgiais dvi skirtingos IBM Job Control kalbos labai skiriasi.
K: Ką reiškia JES plėtiniai?
A: JES plėtiniai reiškia Job Entry Control Language (darbo įvesties valdymo kalba).
K: Kuris yra naujausias operacinės sistemos linijos, prasidedančios nuo DOS/360, narys?
A: Naujausias operacinės sistemos, prasidedančios DOS/360, narys yra z/VSE.
Ieškoti