Co je JCL (Job Control Language) — definice a použití v IBM mainframe

JCL: stručná definice a praktické použití v IBM mainframe — jak Job Control Language řídí dávkové úlohy, vstup/výstup a rozdíly mezi z/OS a z/VSE.

Autor: Leandro Alegsa

Job Control Language (JCL) je označení pro skriptovací jazyky používané v operačních systémech IBM mainframe. Instruuje systém, jak spustit dávkovou úlohu nebo spustit subsystém. JCL proto neobsahuje aplikační logiku samotných programů (např. COBOL, PL/I nebo assembler), ale popisuje, které programy se mají spustit, jaké prostředky (soubory, tiskárny, páskové jednotky, disky) mají být alokovány, a jak má systém zpracovat vstupy a výstupy.

Účelem JCL je říci, které programy se mají spustit a které soubory nebo zařízení použít pro vstup nebo výstup. Může také udávat podmínky, za kterých se má určitý krok přeskočit, jak mají být ošetřeny návratové kódy programů (return codes) a kde mají být uloženy výstupy nebo logy. Mezi běžné parametry patří např. DISP (dispozice datasetu), UNIT (typ zařízení), VOL= (objem), SPACE (alokované místo) nebo DCB (atributy datasetu).

Základní konstrukce JCL

JCL se skládá ze sady příkazových řádků (statements). Nejběžnější typy řádků jsou:

  • //job – začíná dávkovou úlohou a zadává globální parametry (např. účetní číslo, jméno úlohy, priority, class);
  • //exec – definuje krok, který provede konkrétní program nebo utility (PGM= nebo PGM=zkonazní/EXEC PGM=...);
  • //dd – popisuje datasety nebo zařízení použitá v kroku (DD = Data Definition);
  • //* – komentářový řádek (nezpracovává se).

Historicky je JCL částečně „kolonový“ jazyk: řádek obvykle začíná dvěma lomítky (//), následuje jméno karty (job/step/dd) a pak parametry. Existují i pravidla pro dělení dlouhých řádků a používání pokračovacích sloupců.

Krátký ukázkový příklad

//MYJOB   JOB (ACCT),'TEST JOB',CLASS=A,MSGCLASS=X //STEP1   EXEC PGM=MYPROG //INFILE  DD   DSN=MY.INPUT.FILE,DISP=SHR //OUTFILE DD   DSN=MY.OUTPUT.FILE,DISP=(NEW,CATLG), //             SPACE=(CYL,(1,1)),UNIT=SYSDA

Tento jednoduchý příklad ukazuje typickou strukturu: deklaraci jobu, vykonání programu a definice vstupního a výstupního datasetu. V praxi bývají řádky složitější (konkatenuje se více DD záznamů, nastavují se parametry pro vyjímání chyb, volají se utility apod.).

Druhy a historie JCL

Existují dvě hlavní „rodiny“ IBM Job Control:

  • jeden pro linii operačních systémů, která začíná systémem DOS/360 a jejímž posledním členem je z/VSE; a
  • druhý pro linii od OS/360 k z/OS, přičemž ten druhý nyní zahrnuje rozšíření JES, Job Entry Control Language (JECL).

Tyto dvě linie sdílejí některá základní syntaktická pravidla a několik základních pojmů, ale jinak se v detailech hodně liší (jiné sady parametrů, rozdílné utility a správa datasetů, rozdílné chování subsystémů pro fronty úloh).

Specifika a často používané konstrukce

  • DISP – určuje stav datasetu před a po spuštění (např. OLD, SHR, NEW) a jak s ním nakládat v případě ukončení úlohy (CATLG, DELETE).
  • Kondiční zpracování – parametry jako COND nebo instrukce IF/THEN/ELSE umožňují řídit provádění dalších kroků na základě návratových kódů nebo chyb.
  • Konkatenační DD – umožňuje spojit více datasetů jako jeden zdroj dat pro daný krok.
  • JES (Job Entry Subsystem) – spravuje přijímání, plánování a výstupy jobů; rozšíření JECL poskytuje další kontrolu nad job queue a výstupy.
  • Standardní utility – IEBGENER, IEBCOPY, SORT a další jsou často volány z JCL pro kopírování, manipulaci s datasetem nebo třídění dat.

JCL dnes

JCL je i nadále základním mechanismem pro dávkové zpracování na systémech z/OS a dalších IBM mainframech. Moderní provoz často kombinuje JCL s jinými nástroji (skriptovacími jazyky jako REXX, operačními nástroji, job scheduling systémy typu CA-7, Control-M apod.), ale i tak mnohé organizace stále upravují a spravují stovky až tisíce JCL jobů.

Tipy pro práci s JCL

  • Dodržujte konzistentní pojmenovávání jobů a DD jmen (usnadní to údržbu a hledání chyb).
  • Pečlivě nastavujte DISP a zálohujte kritické datasety před operacemi, které by je mohly smazat.
  • Využívejte komentáře (//*) k vysvětlení neintuitivních nastavení.
  • Testujte změny v odděleném prostředí, pokud je to možné, zejména při změnách alokací nebo DISP parametrů.

JCL není běžným programovacím jazykem pro implementaci byznys logiky, ale je to klíčový stavební kámen provozu IBM mainframe, protože řídí, kdy a jak se programy spouštějí a jak se nakládá s jejich daty a výstupy.

Otázky a odpovědi

Otázka: Co je to JCL?


A: JCL je zkratka pro Job Control Language, což je skriptovací jazyk používaný v operačních systémech IBM mainframe, který dává systému pokyny, jak spustit dávkovou úlohu nebo spustit subsystém.

Otázka: K čemu slouží JCL?


A: Účelem JCL je určit, které programy se mají spustit, s použitím kterých souborů nebo zařízení pro vstup nebo výstup a určit, za jakých podmínek se má vynechat určitý krok.

Otázka: Kolik různých jazyků IBM Job Control existuje?


Odpověď: Existují dva různé jazyky IBM Job Control. Jeden je pro linii operačních systémů, která začíná systémem DOS/360 a jejímž posledním členem je z/VSE, a druhý je pro linii od OS/360 po z/OS, přičemž ten nyní zahrnuje rozšíření JES, Job Entry Control Language (JECL).

Otázka: Co mají tyto dva odlišné jazyky IBM Job Control společného?


Odpověď: Oba odlišné jazyky IBM Job Control mají společná některá základní syntaktická pravidla a několik základních pojmů.

Otázka: Jaké jsou některé rozdíly mezi dvěma různými jazyky IBM Job Control?


Odpověď: Oba různé jazyky IBM Job Control se jinak velmi liší.

Otázka: Co znamenají rozšíření JES?


Odpověď: Rozšíření JES je zkratka pro jazyk Job Entry Control.

Otázka: Který je nejnovější člen linie operačních systémů, která začíná systémem DOS/360?


Odpověď: Nejnovějším členem řady operačních systémů, která začíná systémem DOS/360, je z/VSE.


Vyhledávání
AlegsaOnline.com - 2020 / 2025 - License CC3