Job Control Language (JCL): IBM:n suurtietokoneiden komentosarjakieli
Job Control Language (JCL) – IBM:n suurtietokoneiden komentosarjakieli, joka ohjaa eräajoja, ohjelmia ja laitekäyttöä z/OS- ja z/VSE-ympäristöissä.
Job Control Language (JCL) on IBM:n suurtietokoneiden käyttöjärjestelmissä käytettävien komentosarjakielten yleisnimi. JCL:n tehtävä on ohjeistaa järjestelmää eräajon (batch) suorittamisesta: mitä ohjelmia ajetaan, millä syötteillä ja mihin tulosteet ohjataan, sekä millä ehdoilla tiettyjä vaiheita suoritettava tai ohitettava. JCL ei ole yleiskäyttöinen ohjelmointikieli siinä mielessä kuin COBOL tai PL/I, vaan kontrollikieli, joka kuvaa erätyön rakennetta ja laitteisto-/tiedostoresursseja.
JCL:n päälinjat
IBM:llä on kehitetty kaksi pääasiallista JCL-linjaa, jotka eroavat toisistaan ja ovat kehittyneet eri käyttöjärjestelmäperheiden mukana:
- linja, joka juontaa juurensa DOS/360:stä ja jatkuu z/VSE:hen (eli VSE-perhe); ja
- linja, joka alkaa OS/360:stä ja jatkuu z/OS:ään, johon liittyy ns. JES-laajennukset (Job Entry Control Language, JECL) ja lisäominaisuuksia eräohjaukseen.
Näillä linjoilla on yhteisiä syntaksin perussääntöjä ja käsitteitä (esim. JOB-, EXEC- ja DD-rakenteet), mutta toteutukset, laajennukset ja käytännöt vaihtelevat merkittävästi. Myös erilaisten JES-ympäristöjen (esim. JES2, JES3) vaikutus näkyy z/OS-maailmassa.
Perusrakenne ja tyypilliset lauseet
Useimmat JCL-työt rakentuvat kolmesta päätyypistä lauseita:
- JOB — työn tunniste ja parametrit (esim. omistaja, prioriteetti, työtilauksen nimi).
- EXEC — määrittelee suoritettavan ohjelman tai kutsuttavan proseduurin (PROCs).
- DD (Data Definition) — määrittelee tiedostot ja laitteet, joita ohjelma käyttää (syöte/ulos, luettelointi, väliaikaistiedostot).
JCL:ssa on sekä avainsana- että positiorakenteita, ja monia parametreja annetaan avainsanoina (esimerkiksi DISP=, UNIT=, SPACE=, SYSOUT=). Historiallisesti JCL kirjaimellisesti asetettiin korttipinoon, mistä on periytynyt tiukka sarakkeistus (esim. JCL-rivit alkavat usein kahdella kauttaviivalla //). Nykyisissä ympäristöissä korttirajoitukset eivät ole fyysisesti voimassa, mutta niiden periaatteet näkyvät syntaksissa.
Edistyneet ominaisuudet ja käytännöt
JCL tukee esimerkiksi:
- procedures (PROCs) ja instream-procedures, jotka mahdollistavat toistuvien työkuvioiden uudelleenkäytön;
- konditionaalista suorittamista COND= sekä IF/THEN/ELSE/ENDIF -rakenteiden muodossa;
- tietueiden ketjutusta (DD-kokoonpanon concatenation), jolloin useita tiedostoja käsitellään yhtenä loogisena syötteenä;
- erilaisten laitetyyppien ja tietokantamuotojen (esim. PDS, PDSE, GDG) hallintaa;
- järjestelmän paluuarvoihin (return/condition codes) perustuvaa virheenkäsittelyä ja vaiheiden ohittamista.
Käyttötapaukset ja hallinta
JCL on tyypillisesti käytössä suurissa eräajoympäristöissä, joissa ajetaan tietojen massakäsittelyä, raportointia, varmuuskopioita ja tuotantoprosesseja. Järjestelmäoppaat, proseduurikirjastot ja katalogoidut PROCit ovat keskeisiä hallinnan välineitä, ja järjestelmävalvojat (sysadm) määrittävät usein organisaation hyviksi todetut JCL-käytännöt ja turvarajoitukset.
Erot VSE- ja z/OS-linjojen välillä
Vaikka perusajatus on sama, käytännön erot voivat olla huomattavia: parametrit, laitetunnisteet, JES-laajennukset (esim. erityiset JES-job- ja output-ohjaukset), sekä tietyt avainsanat ja niiden merkitykset vaihtelevat. z/OS-ympäristössä JECL laajentaa JCL:ää erityisillä komentorakenteilla ja palveluilla, joita tarvitaan monimutkaisemman eräajon ja tulosteiden hallintaan.
Esimerkkimainen JCL-rivi (yksinkertaistus)
//MYJOB JOB (ACCT),'NIMI',CLASS=A,MSGCLASS=X //STEP1 EXEC PGM=MYYKSIOHJELMA //INFILE DD DSN=KAYTTAJA.SYOTE.DATA,DISP=SHR //OUTFILE DD DSN=KAYTTAJA.TULOS.DATA,DISP=(NEW,CATLG,DELETE), UNIT=SYSDA,SPACE=(TRK,(5,5))
Tämä esimerkki havainnollistaa työn tunnistusta (JOB), yhden vaiheen (EXEC) ja siihen liittyviä DD-määrittelyjä syötteelle ja tulosteelle.
Yhteenveto
JCL on uusiutumiskykyinen ja keskeinen osa IBM:n isäntäjärjestelmien eräajojärjestelmää. Sen oppiminen vaatii käsitteiden, parametrien ja organisaation käytäntöjen tuntemusta, mutta se tarjoaa tarkan ja tehokkaan tavan hallita massiivisia käsittelytyökuormia ja liittää yhteen ohjelmia, tiedostoja ja laitteita tuotantoympäristössä.
Kysymyksiä ja vastauksia
K: Mikä on JCL?
V: JCL on lyhenne sanoista Job Control Language, joka on IBM:n suurtietokoneiden käyttöjärjestelmissä käytetty skriptikieli, jolla järjestelmää ohjeistetaan, miten eräajotyö suoritetaan tai osajärjestelmä käynnistetään.
K: Mikä on JCL:n tarkoitus?
V: JCL:n tarkoituksena on ilmoittaa, mitkä ohjelmat on suoritettava ja mitä tiedostoja tai laitteita käytetään syötteenä tai tulosteena, ja määrittää, missä olosuhteissa jokin vaihe ohitetaan.
K: Kuinka monta erillistä IBM:n Job Control -kieliä on olemassa?
V: IBM Job Control -kieliä on kaksi erillistä. Toinen koskee käyttöjärjestelmälinjaa, joka alkaa DOS/360:stä ja jonka viimeisin jäsen on z/VSE, ja toinen koskee linjaa OS/360:stä z/OS:ään, ja jälkimmäinen sisältää nyt JES-laajennukset, Job Entry Control Language (JECL).
Kysymys: Mitä yhteistä näillä kahdella eri IBM:n Job Control -kielellä on?
V: Kahdella eri IBM Job Control -kielellä on yhteiset syntaksisäännöt ja muutamat peruskäsitteet.
K: Mitä eroja on kahden eri IBM Job Control -kielen välillä?
V: Nämä kaksi erillistä IBM Job Control -kieltä ovat muuten hyvin erilaisia.
K: Mitä JES-laajennukset tarkoittavat?
V: JES-laajennukset tarkoittavat Job Entry Control Language -kieliä.
K: Mikä on DOS/360:stä alkaneen käyttöjärjestelmälinjan uusin jäsen?
V: DOS/360:stä alkavan käyttöjärjestelmälinjan uusin jäsen on z/VSE.
Aiheeseen liittyvät artikkelit
Tekijä
AlegsaOnline.com Job Control Language (JCL): IBM:n suurtietokoneiden komentosarjakieli Leandro Alegsa
URL: https://fi.alegsaonline.com/art/50407