Job Control LanguageJob Control Language (zkratka JCL) je v informatice skriptovací programovací jazyk používaný na sálových počítačích firmy IBM. Slouží pro instruování systému, jak spustit dávkové úlohy nebo subsystém. JCL umožňuje efektivní rozdělení drahého strojového času sálového počítače mezi různé úlohy (účtované různým zákazníkům) a rozložení jednotlivých činností v čase v souladu s prioritami jednotlivých úloh. Termín Job Control Language se používá i jako obecné označení pro různé jazyky, které slouží k podobným účelům, jako například WFL od Burroughs Corporation a OCL od ICL. Tento článek se zabývá specificky jazykem JCL od IBM. Existují dvě varianty jazyka JCL firmy IBM: jedna pro řadu systémů od DOS/360 po z/VSE a druhá pro řadu od OS/360 po z/OS. Obě sdílejí některá základní syntaktická pravidla a koncepty, avšak jinak jsou značně odlišné. SyntaxeKvůli zachování kompatibility s existujícími programy se základní syntaxe JCL nezměnila od 60. let 20. století a používá se i v posledním operačním systému z/OS firmy IBM. JCL se vyznačuje dvojicí lomítek, kterými začíná každý příkaz. Jejich používání pochází z doby, kdy se k zadávání úloh používaly balíky děrných štítků. Pokud by byl do snímače děrných štítků omylem vložen balíček štítků neobsahujících úlohu v JCL, štítky nezačínající dvěma lomítky by byly okamžitě odmítnuty a nemohly by způsobit chybnou akci. //USER0001 JOB UCTO01,JORIS,CLASS=7,MSGCLASS=X ZPRACOVANI FAKTUR //SPLATNE EXEC PGM=FAKTINF,TIME=(,50) //INPUT DD DSN=SYSUSR1.SYSTEM.INPUT,DISP=SHR OPEN //OUTPUT DD SYSOUT=* Řádky v jazyce JCL musí splňovat následující podmínky:
JOB//USR007 JOB ACCN099,JODY,CLASS=6,MSGCLASS=X
EXEC//KROK1 EXEC PGM=READIN,COND=(0,NE),PARM=(ORDER=INCR,NUM=100)
DD//INPUT DD DSN=ISUSR.USR007.INPUT,DISP=SHR //OUTPUT DD DSN=ISUSR.USR007.OUTPUT,DISP=(NEW,KEEP,DELETE), // DCB=(RECFM=FB,LRECL=80),SDORG=PO, // SPACE=(TRK,(5,3,10)) //OUTPUT2 DD DSN=ISUSR.USR007.OUTPUT,DISP=(NEW,KEEP,DELETE), // REFDD=*.STEP1.OUTPUT //DATA DD * 04/01/1980 13/09/1979 10/12/1982 15/03/1986 /*
K dispozici jsou také předem specifikované názvy pro některé datové soubory:
INCLUDE//USR009 JOB ACCN099,APRILIA,CLASS=8,MSGCLASS=X //VERWYZING JCLLIB ORDER=(ISUSR.USR007.SOURCE,ISUSR.USR009.SOURCE) //GO EXEC PGM=P3TST4 //STEPLIB DD DSN=ISUSR.COBOL.LINKLIB,DISP=SHR //APPEND INCLUDE MEMBER=TST3 //
PROC//DEMOJCL PROC //KROKA EXEC PGM=TST7,TIME=(,08),REGION=&SIZE //STEPLIB DD DSN=&PREFIX..COBOL.LINKLIB,DISP=SHR //INPUT DD DSN=&PREFIX..LIST,DISP=SHR // PEND //PROC12 EXEC DEMOJCL,GROOTTE=256K,PREFIX=ISUSR Procedury umožňují modulární práci; je možné je volat z různých míst úlohy. Navíc umožňují používání proměnných parametrů: jméno parametru začíná znakem ampersand Výstup JCLPro zpracování JCL úloh se používá spooling. Úlohy jsou načteny, zkontrolovány a prováděny. Jednotlivé JCL příkazy se vypisují do výstupu úlohy. V opisu příkazů procedur definovaných jinde ve skriptu se úvodní znaky Ukázka úlohy//SU0003CL JOB (XXXX000),'TEST',CLASS=7,MSGCLASS=X //********************************************************************** //** **** //* PLEASE FILL IN THE COURSE DATASET PREFIX ON THE NEXT LINE //** **** //********************************************************************** //JCLPROG PROC PREFIX='.........' //********************************************************************** //* COMPILE THE COBOL PROGRAM //********************************************************************** //COB EXEC PGM=IGYCRCTL //STEPLIB DD DSN=SYS3.IGY.V2R1M0.SIGYCOMP.LOCU,DISP=SHR //SYSLIB DD DSN=TBISUSR.JCLCRS.SOURCE,DISP=SHR //SYSLIN DD DSN=&&OBJECT,DISP=(MOD,PASS),SPACE=(CYL,(1,5)) //SYSTERM DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSUT1 DD SPACE=(CYL,(2,5)),UNIT=SYSDA //SYSUT2 DD SPACE=(CYL,(2,5)),UNIT=SYSDA //SYSUT3 DD SPACE=(CYL,(2,5)),UNIT=SYSDA //SYSUT4 DD SPACE=(CYL,(2,5)),UNIT=SYSDA //SYSUT5 DD SPACE=(CYL,(2,5)),UNIT=SYSDA //SYSUT6 DD SPACE=(CYL,(2,5)),UNIT=SYSDA //SYSUT7 DD SPACE=(CYL,(2,5)),UNIT=SYSDA //SYSIN DD DSN=&PREFIX..JCLCRS.SOURCE(&MEMBER),DISP=SHR //********************************************************************** //* LINK EDIT THE COBOL PROGRAM //********************************************************************** //LKED EXEC PGM=IEWL,PARM='LIST,MAP,XREF',COND=(8,LE) //SYSUT1 DD SPACE=(CYL,(1,1)),UNIT=SYSDA //SYSPRINT DD SYSOUT=* //SYSLIB DD DSN=SYS2.COBOL2.LOAD,DISP=SHR // DD DSN=SYS2.COBOL2.SUB.LOAD,DISP=SHR // DD DSN=SYS2.COBOL2.SUB.LPA.LOAD,DISP=SHR // DD DSN=&PREFIX..JCLCRS.LOAD,DISP=SHR //SYSLMOD DD DSN=&PREFIX..JCLCRS.LOAD(&MEMBER),DISP=SHR //SYSLIN DD DSN=&&OBJECT,DISP=(OLD,DELETE) // PEND //**********************************************************************00010000 //CREATSUB EXEC JCLPROG,MEMBER=SUBRETCD //CREATPGM EXEC JCLPROG,MEMBER=PGMRETCD // OdkazyReferenceV tomto článku byl použit překlad textu z článku Job Control Language na nizozemské Wikipedii. Externí odkazy
|
Portal di Ensiklopedia Dunia