Job Control Language (JCL)

Hasonló dokumentumok
Job Control Language (JCL) Tanfolyami jegyzet. ICSS Kft 2012

JCL eljárások Tanfolyami jegyzet. ICSS Kft 2012

z/os Utility-k Tanfolyami jegyzet ICSS Kft 2012

System Managed Storage (SMS) Tanfolyami jegyzet. ICSS Kft 2019

BASH script programozás II. Vezérlési szerkezetek

Szkriptnyelvek. 1. UNIX shell

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

1. Alapok. #!/bin/bash

BASH SCRIPT SHELL JEGYZETEK

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

S z á m í t ó g é p e s a l a p i s m e r e t e k

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Occam 1. Készítette: Szabó Éva

Java II. I A Java programozási nyelv alapelemei

Operációs Rendszerek II. labor. 2. alkalom

AWK programozás, minták, vezérlési szerkezetek

A legfontosabb DOS parancsok

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Adatok szűrése, rendezése

Kifejezések. Kozsik Tamás. December 11, 2016

Hardver leíró nyelvek (HDL)

AWK programozás Bevezetés

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

ELTE SAP Excellence Center Oktatóanyag 1

Intermec EasyCoder PM4i nyomtató programozásának alapjai Intermec Fingerprint v8.00 nyelven

Komputeralgebra Rendszerek

Gyakorlati segédlet. az Üzleti környezetre optimalizált középkategóriás rendszerek. c. tárgyhoz

Operációs rendszerek 1.

C programozási nyelv

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

A C programozási nyelv I. Bevezetés

B I T M A N B I v: T M A N

chmod umask chown, chgrp

Java II. I A Java programozási nyelv alapelemei

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Lekérdezések az SQL SELECT utasítással

117. AA Megoldó Alfréd AA 117.

8. Mezőutasítások. Schulcz Róbert 8. Mezőutasítások. v

Alkalmazott modul: Programozás

Adatbázisok* tulajdonságai

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

M4 TÁBLÁZATKEZELÉS ALAPJAI

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Adatbázis-kezelés. Harmadik előadás

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Forráskód formázási szabályok

Webprogramozás szakkör

A C programozási nyelv I. Bevezetés

Belföldi Termékosztályozás V

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Ügyfélforgalom számlálás modul

A C programozási nyelv VI. Parancssori argumentumok File kezelés

Programozás 5. Dr. Iványi Péter

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Programozás II. 2. Dr. Iványi Péter

Máté: Assembly programozás

AWK programozás, minták, vezérlési szerkezetek

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Készítette: Nagy Tibor István

Operációs rendszerek gyak.

KÜRT Zrt. Logelemzés heti riport Felhasználói fiók, illetve felhasználói csoportkezelési műveletek

Bevezetés a C++ programozásba

Angol szótár V

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Kifejezések. Kozsik Tamás. December 11, 2016

Operációs rendszerek 1.

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

A héj vezérlő szerkezetei I.

Tranzakció import funkció import fájl formátumai

Informatika terméktervezőknek

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Komputeralgebra Rendszerek

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Szoftvertervezés és -fejlesztés I.

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

E- Laboratórium 3 Az ABB robotok alkalmazásai Elméleti leírás

A C# programozási nyelv alapjai

OOP #14 (referencia-elv)

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

ADATBÁZISKEZELÉS ADATBÁZIS

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Powershell 2. gyakorlat

és az instanceof operátor

3 A C programozási nyelv szintaktikai egységei

Átírás:

Job Control Language (JCL) Tanfolyami jegyzet ICSS Kft 2019

A jobvezérlő nyelv JCL: Job Control Language Az operációs rendszer (OS: Operating System) vezérlő nyelve A JCL összekapcsolja az alkalmazást és az adatállományokat a felhasználót operációs rendszert ICSS Kft 2019 2

A jobvezérlő nyelvvel létrehozott kapcsolatok OS / VS Szoftver Felhasználó JCL ICSS Kft 2019 3

A JOB fogalma JCL vezérlőnyelven írt program Kötegelt (batch) feldolgozás A JOB lépésekből (STEP) áll Az egyes lépések programokat indítanak el A programok adatállományokkal dolgozhatnak Az egyes lépések végrehajtása egymás után történik ICSS Kft 2019 4

JCL utasítások szintaxisa Egy vagy több, max. 80 bájtos rekordból áll Az 1-71. oszlopig írhatók az utasítások A 72. oszlop folytatósort jelző mező A folytatósort 4-16. oszlopok valamelyikén kell elkezdeni A 73-80. oszlop sorszámot tartalmazhat NAGYBETŰKKEL KELL ÍRNI ICSS Kft 2019 5

JCL utasítások COMMAND Comment CNTL DD Delimiter ENDCNTL EXEC IF / THEN; ELSE; ENDIF INCLUDE JOB Null OUTPUT PEND PROC SET XMIT ICSS Kft 2019 6

Példák JCL utasításokra // EXEC PGM=VALOGAT,PARM='TESZT' //INPUT DD DISP=OLD,DSN=UNLOAD.SAPDB.Y2019.M01.D21 //OUTPUT DD DSN=ICKRIS.KIMENO.ADATOK,DISP=(NEW,KEEP), // VOL=SER=USER01,UNIT=3390,SPACE=(TRK,15) ICSS Kft 2019 7

Azonosítómező Névmező Műveleti mező Paramétermező Megjegyzésmező JCL utasítások szerkezete ICSS Kft 2019 8

Pozíciója az 1-2. oszlop Lehet: Azonosítómező // JCL utasítás kezdete /* elválasztást jelöl (pl. instream adat vége), vagy JES2 vezérlőutasítás //* megjegyzés ICSS Kft 2019 9

Névmező Pozíciója: 3. oszlopon kezdődik 1-8 karakter hosszú alfanumerikus vagy speciális (#,$,@) karakter Első karakter betű vagy speciális (#,$,@) karakter A név mezőt egy vagy több szóköz követi ICSS Kft 2019 10

Műveleti mező Egyetlen JCL utasítást tartalmaz Az utasítás mindkét oldalát szóköz határolja ICSS Kft 2019 11

Paramétermező A műveleti mezőt követi A paramétereket vessző karakter (,) választja el Az egyes JCL utasítások paraméterei különböznek A paraméter lehet pozicionális vagy kulcsszavas ICSS Kft 2019 12

Pozicionális paraméter kizárólag a nyelv definíciója szerinti (kötött) sorrendben adhatók meg a paraméterek jelentését a pozíciójuk adja meg nem megadott (hiányzó) pozicionális paraméter helyét vesszővel kell jelezni ICSS Kft 2019 13

KEYWORD=VALUE Kulcsszavas paraméter Különböző JCL utasítások más-más kulcsszavakat használnak Az '=' karakter egyik oldalán sem áll szóköz Egyes paraméterekhez több érték is tartozhat Ha több érték adható meg, akkor a paraméterértékek maguk is egyaránt lehetnek kulcsszavasak vagy pozicionálisak ICSS Kft 2019 14

Megjegyzésmező Paramétermező után kezdődik A paramétermezőtől szóköz karakter választja el ICSS Kft 2019 15

Pozicionális és kulcsszavas paraméterek használata //NEV UTASITAS P1,P2,P3,K1=A,K2=B Pozicionális paraméter kihagyása //NEV UTASITAS P1,,P3,K1=A,K2=B Utolsó pozicionális paraméter elhagyása //NEV UTASITAS P1,P2,K1=A,K2=B Összes pozicionális paraméter elhagyása //NEV UTASITAS K1=A,K2=B Kulcsszavas paraméter elhagyása //NEV UTASITAS P1,,P3,K2=B A kulcsszavas paraméterek sorrendje lényegtelen //NEV UTASITAS P1,P2,P3,K2=B,K1=A ICSS Kft 2019 16

Folytatósor A folytatósornak az 1-2 oszlopokra kódolt '//' karakterekkel kell kezdődni //DATA DD DSN=ROBI.DATA,DISP=SHR, // UNIT=3390,VOL=SER=SYSRES a 4-16. oszlopig folytatódjon Megjegyzés folytatását a 72. oszlopba írt tetszőleges nem-szóköz folytatókarakterrel (a példában 'X') jelezzük: folytatókarakter //DATA DD DSN=ROBI.DATA,DISP=SHR EZ AZ INPUT ADAT, X // AMIT A SZAMLAZO PROGRAM HASZNAL a 4-16. oszlopig folytatódjon ICSS Kft 2019 17

Paraméter folytatása Példa folytatósor írására, ha egy aposztrófok közé írt paramétert kell folytatni: ----+----1----+----2---... --+----7----+ //STEP1 EXEC PGM=PROG425,PARM=(COUNT,'/usr/lpp/in // ternet/server_root/admin_bin... ibm/we // bexec/applets/ibm/imwcappl') a 16. oszlopon kell folytatódjon Írjuk a paramétert a 71. oszlopig A folytatósornak // karakterekkel kell kezdődnie A paramétert a 16. oszlopban kell folytatni ICSS Kft 2019 18

JOB utasítás Minden JCL job legelső utasítása egy JOB utasítás Egy JCL job csak egy JOB utasítást tartalmazhat Szintaxis: //jobnév JOB pozicionális_param,kulcsszavas_param Pozicionális paraméterek: Számlázási információ Programozó neve Kulcsszavas paraméterek: CLASS, COND, MSGCLASS, MSGLEVEL, NOTIFY, TIME, TYPRUN, USER, PASSWORD, REGION, RESTART, stb. ICSS Kft 2019 19

JOB utasítás kulcsszavas paraméterei CLASS : a JOB melyik JES input osztályba kerüljön (A-Z, 0-9) MSGCLASS: a JOB log-jának JES output osztálya (A-Z, 0-9) MSGLEVEL: a JOB log-jába kerülő JCL és message üzenetek szintje NOTIFY: ki kapjon értesítést a JOB lefutásáról és a max. rc-ről TYPRUN: a JES hogyan dolgozza fel a JOB-ot (HOLD, SCAN) USER: kinek a nevében fusson a JOB PASSWORD: a USER paraméterben megadott felhasználó jelszava REGION: mekkora virtuális tárméretet kap a JOB RESTART: melyik lépés végrehajtásától induljon a JOB TIME: processzoridő használatának maximuma ICSS Kft 2019 20

JOB utasítás példák //J1 JOB 1,ROBI,CLASS=F,MSGCLASS=A,MSGLEVEL=(1,1) //J2 JOB,ROBI,TIME=(4,30),MSGCLASS=H,MSGLEVEL=(2,0) //J3 JOB,U668773,CLASS=3,MSGLEVEL=(1,1),COND=(8,LT) //J4 JOB 999,RESTART=STEP2,NOTIFY=ROBI //J5 JOB CLASS=A,MSGCLASS=R,NOTIFY=&SYSUID //J6 JOB 'SAPR/3',SAPADM1,TYPRUN=SCAN,REGION=4M //J7 JOB,ROBI,CLASS=A,USER=IBMUSER,PASSWORD=SECRET //J8 JOB '88/426-2012 Számlaszám.','Laudon Kriszti', // LINES=(100,WARNING),PRTY=15, // TIME=1440, ez a végtelen :) // TYPRUN=HOLD,USER=ICKRIS ICSS Kft 2019 21

EXEC utasítás A JOB STEP kezdetét jelzi Megadja az indítandó program vagy eljárás nevét Egy JCL JOB-ban maximum 255 lépés lehet Szintaxis: //stepnév EXEC pozicionális_param,kulcsszavas_param Pozicionális paraméterek: PGM vagy PROC Kulcsszavas paraméterek: COND, PARM, REGION, TIME, stb. ICSS Kft 2019 22

EXEC utasítás kulcsszavas paraméterei COND feltételes végrehajtás esetén használt paraméter PARM a meghívott programnak átadott paraméterek REGION a joblépésben meghívott program számára allokált virtuális tármérete TIME a joblépés végrehajtására engedélyezett maximális processzoridő ICSS Kft 2019 23

EXEC utasítás példák //STEP1 EXEC PGM=IEFBR14 //STEP2 EXEC PGM=CALC,PARM='+,3,4' // EXEC PGM=IEBCOPY,REGION=2200K //PR1 EXEC ELJARAS,TIME=(2,30),REGION=0M //PROC2 EXEC PROC=ELJARAS,TIME=(2,30) //STEP3 EXEC PGM=WORKPGM,COND=(4,LT), // PARM=(LIST,'LINECNT=121','Sáfrány u. 5.','Budapest') ICSS Kft 2019 24

Feladatok Az SDSF ismertetése után oldd meg a JCL feladat munkafüzetben található (feladatok_jcl.pdf) JCL 1-3. feladatokat ICSS Kft 2019 25

Adatállományok azonosítása Az adatállományok leírásakor az adatállományokhoz berendezéseket kell rendelni köteteket kell rendelni területet kell foglalni a fizikai és logikai jellemzőit le kell írni Az adatállományok leírására jobvezérlő nyelv DD utasítását használjuk Az adott JOB STEP végrehajtására során használt adatállományokat az EXEC utasítás után, adatállományonként egy DD utasítással kell megadni Az EXEC után megadott DD utasítások sorrendje tetszőleges ICSS Kft 2019 26

DD utasítás //ddnév DD operandusmező megjegyzésmező A ddnév használatára a névmező szabályai érvényesek A programban definiált, a JCL JOB-ban adatállomány-azonosítási céllal kódolt neveket a programozó határozza meg. Egy adatállomány hivatkozásakor a programban az adatállományhoz rendelt logikai fájlnévnek és a JCL kódban hozzárendelt ddnévnek egyeznie kell Foglalt nevek (speciális DD nevek): JOBLIB; STEPLIB; SYSABEND; SYSCKEOV; SYSMDUMP; SYSUDUMP JOBCAT; STEPCAT ICSS Kft 2019 27

DD utasítás operandusai //ddnév DD operandusmező megjegyzésmező Az operandus mező pozicíonális és kulcsszavas paramétereket egyaránt tartalmazhat Pozicionális paraméterek: *, DATA, DUMMY Kulcsszavas paraméterek: DISP, DSNAME, DCB, UNIT, VOLUME, SPACE, stb. ICSS Kft 2019 28

Instream adat A BATCH JOB-on belül is megadott, feldolgozandó adat Az instream adat végét jelentő utasítás az első oszlopon kezdődő '/*' A jobot lezáró '//' (null) utasítás nem jelent implicit fájlvéget Ha a DLM paramétert kódoltuk a DD * vagy DD DATA utasításon, akkor a rendszer felismer más delimiter karaktert is. Szintaxis: //ddnev DD * instream adat /* ICSS Kft 2019 29

Delimiter utasítás Instream adat végének jelölése DLM kulcsszavas paraméterrel //ddnev DD DATA,DLM=ZZ instream adat ZZ Példa beágyazott delimiter utasításokra: //JOB1 JOB //STEP1 EXEC PGM= //DD1 DD DATA,DLM=AA //JOB2 JOB //STEP1 EXEC PGM= //DD DD * ADATOK ADATOK /* AA ICSS Kft 2019 30

DD utasítás kulcsszavas paraméterei ACCODE DISP KEYLABL2 PROTECT AMP DLM KEYENCD1 RECFM AVGREC DSID KEYENCD2 RECORGREFDD BLKSIZE DSNAME KEYLEN RETPD BLKSIZLIM DSNTYPE KEYOFF RLS BURST DUMMY LABEL SECMODEL CCSID DYNAM LGSTREAM SEGMENT CHARS EATTR LIKE SPACE CHKPT EXPDT LRECL SPIN CNTL FCB MGMTCLAS STORCLAS COPIES FILEDATA MODIFY SUBSYS DATA FLASH OUTLIM SYSOUT DATACLAS FREE PATH TERM DCB FREEVOL PATHDISP UCS DDNAME HOLD PATHMODE UNIT DEST KEYLABL1 PATHOPTS VOLUME ICSS Kft 2019 31

DD utasítás kulcsszavas paraméterei DSNAME az adatállomány neve. Használható rövidítése: DSN UNIT a készülék típusa, amelyen az allokálás történik VOLUME a lemez neve, amelyen állomány elérhető, vagy létrejön SPACE az (új) állomány méretét adja meg DCB Data Control Block az állomány jellemzői, pl.: logikai rekordhossz, blokkméret, rekordformátum LRECL az adatállomány logikai rekordhossza RECFM az adatállomány rekordformátuma BLKSIZE az adatállomány blokkmérete ICSS Kft 2019 32

Diszpozíció kódolása a DD utasításban Az adatállományok diszpozícióját a DD utasítás kulcsszavas DISP paraméterével adjuk meg Használata: DISP=(initdisp,normaldisp,abnormaldisp) initdisp normaldisp az adatállomány kezdeti allokálásanak a módja NEW, OLD, SHR, MOD az adatállomány kezelése a program normál lefutása esetén DELETE, KEEP, PASS, CATLG, UNCATLG abnormaldisp az adatállomány kezelése a program abend esetén DELETE, KEEP, CATLG, UNCATLG ICSS Kft 2019 33

Területfoglalás a DD utasításban A közvetlen elérésű eszközökön létrehozandó adatállományok területének lefoglalásához a DD utasítás kulcsszavas SPACE paraméterét használjuk. Használata: SPACE=({unit,}(primary[,secondary][,directory])[,RLSE]) unit primary secondary directory az allokálás mértékegysége TRK, CYL, blokkméret az adatállomány létrehozásakor lefoglalandó terület mérete, a unit paraméterben megadott egységekben mérve (primary extent) ha az adatállomány betelése esetében megengedett annak növelése, akkor növekmény mérete a unit paraméterben megadott egységekben mérve (secondary extent) Partícionált állomány (PDS) tartalomjegyzékének mérete (256 byte-os directory blokkokban megadva) ICSS Kft 2019 34

SPACE paraméter példák SPACE=(TRK,(2,1)) SPACE=(CYL,10) SPACE=(CYL,(10,,10),RLSE) SPACE=(4096,(50,20)) SPACE=(1024,150) SPACE=(CYL,(4369,4369),RLSE) ICSS Kft 2019 35

DCB információk kódolása a DD utasításban A DCB paraméter a DD utasítás kulcsszavas paramétere Data Control Block Az adatállomány jellemzőit írja le Használata: DCB=(alparaméter[,alparaméter]...) A DCB alparaméterek nagy része megadható önálló DD paraméterként is ICSS Kft 2019 36

DCB alparaméterek A DCB paraméter leggyakrabban használt alparaméterei: dsname *.ddname vagy *.stepname.ddname RECFM LRECL BLKSIZE BUFNO KEYLEN DSORG ICSS Kft 2019 37

DCB paraméter példák DCB=(RECFM=FB,LRECL=240,BLKSIZE=96M) DCB=(ICROBI.DATASET,KEYLEN=8) DCB=(*.STEP1.DD8,BUFNO=6) DCB=(DSORG=PO,LRECL=80,RECFM=F) ICSS Kft 2019 38

Berendezés hozzárendelése a DD utasításban A UNIT paraméter a DD utasítás kulcsszavas paramétere Az adatállományhoz lefoglalandó egységek típusát és jellegét, vagy címét adja meg Használata: UNIT=([ddd][,unit-count][,DEFER]) UNIT=([device-type]) UNIT=AFF=ddname ICSS Kft 2019 39

Példák a UNIT paraméter használatára A UNIT paraméter kódolása: Specifikus: UNIT=/1800 UNIT=1800 Generikus: UNIT=3390 UNIT=3490 Ezoterikus: UNIT=VIO UNIT=SYSDA Mount elhalasztása: UNIT=(3490,,DEFER) Készülék affinitás: UNIT=AFF=DD1 ICSS Kft 2019 40

Kötet hozzárendelés a DD utasításban A VOLUME paraméter a DD utasítás kulcsszavas paramétere Meghatározza, hogy a feldolgozandó adatállomány milyen köteteken található most, vagy hol lesz található a feldolgozás végén Használata: VOLUME=([PRIVATE][,RETAIN][,vol-seq-num][,vol-count][,][SER=serial]) VOLUME=([PRIVATE][,RETAIN][,vol-seq-num][,vol-count][,][REF=*.ddname]) ICSS Kft 2019 41

Példák a VOLUME paraméter használatára VOL=SER=MVSRES VOL=SER=(ZP21X1,ZP21X2) VOL=(,RETAIN,SER=123456) VOL=(,,3,,SER=(111111,111112,111113,111114)) VOL=REF=*.OUTDD ICSS Kft 2019 42

Feladatok Oldd meg a JCL feladatok munkafüzet 4-7. feladatait ICSS Kft 2019 43

Kimeneti állomány definiálása a DD utasításban A SYSOUT paraméter a DD utasítás kulcsszavas paramétere A SYSOUT paraméter leírja azt a kimeneti osztályt, amelybe a kimeneti állományt (spool output dataset) írni kell. Hagyományosan a nyomtatót (esetleg lyukkártyát vagy lyukszalagot) jelentett ICSS Kft 2019 44

Használata: A SYSOUT paraméter használata SYSOUT=osztály SYSOUT=* Az osztály jelölése egy karakter hosszú, A-Z és 0-9 használható * karakter a JOB utasításnál megadott MSGCLASS paraméter osztályával megegyező kimeneti osztályt definiál Az osztályhoz tartozó output diszpozíció a JES2-ben van definiálva Az output diszpozíció explicit megadása az OUTPUT utasítás OUTDISP paraméterében lehetséges ICSS Kft 2019 45

Output diszpozíció JES2 output osztályhoz tartozó paraméter vagy az OUTPUT utasítás OUTDISP paramétere által megadott érték Az output diszpozíció értékei lehetnek: KEEP: az output állomány a nyomtatás után a spool területen marad és a diszpozíció LEAVE értéket vesz fel LEAVE: az output állomány felengedése / feldolgozása után (release) a diszpozíció KEEP értéket vesz fel WRITE: az output állományt nyomtatás a rendszer törli a spoolból HOLD: az output állomány nyomtatás nélkül marad a spoolban PURGE: az output állományt a rendszer törli a spoolból ICSS Kft 2019 46

DD utasítás példák //DD1 DD DSNAME=ROBI.DATASET1,DISP=OLD //PARMLIB DD DISP=SHR,DSN=SYS1.PARMLIB //INPUT DD DSNAME=SYS1.PARMLIB,DISP=SHR // DD DSNAME=CPAC.PARMLIB,DISP=SHR //IN DD DSN=ROBI.NEW,VOL=SER=SYSRES,SPACE=(TRK,(2,1)), // DISP=(,PASS),RECFM=FB,LRECL=200,BLKSIZE=8000, // UNIT=SYSDA //DD2 DD DSN=*.STEPA.DD1,DISP=(OLD,PASS,DELETE) //DD3 DD DSN=&&TEMP,UNIT=3390,SPACE=(CYL,10) ICSS Kft 2019 47

Speciális ddnevek használata Meghatározott rendszer funkciókat szolgálnak Nem alkalmazhatók programban A speciális ddnevek listája: JOBLIB STEPLIB SYSABEND SYSMDUMP SYSUDUMP ICSS Kft 2019 48

A JOBLIB ddnév és a JOBLIB DD utasítás Egy vagy több, speciális felhasználói magánkönyvtárakat tesz elérhetővé a teljes job időtartamára (keresési sorrend is) A JOB utasítás után, és az első EXEC előtt kell kódolni Egy jobban egy JOBLIB DD utasítás lehet Az összes joblépés idejére érvényes A definiált könyvtárakban levő programok a JCL EXEC utasításával végrehajthatók A könyvtárak típusa PDS vagy PDSE, diszpozíciója SHR vagy OLD ICSS Kft 2019 49

A STEPLIB ddnév és a STEPLIB DD utasítás Egy vagy több, speciális felhasználói magánkönyvtárt tesz elérhetővé annak a joblépésnek az időtartamára, amelybe kódolták. A rendszer az adott lépésben meghívott programot először a STEPLIB DD utasítással definiált könyvtár(ak)ban keresi. Az EXEC utasítás után kell kódolni. Ha a STEPLIB DD és a JOBLIB DD utasításokat is kódoljuk, akkor: a STEPLIB DD utasításban kódoltak érvényesek az utasítást tartalmazó lépésben; a STEPLIB DD utasítás hiányában a JOBLIB DD utasítás érvényes. ICSS Kft 2019 50

Dump állományok A dump az operatív tár releváns részének elmentett tartalma abban a pillanatban, amikor egy meghatározott taszk megszakítása, rendellenes befejezése, vagy mindkettő megtörtént. A rendszer akkor is készíthet dumpot, ha: a taszk rendellenes véget érne, de a rendszer recovery eljárásai miatt normál terminálása lesz a program vagy az operátor utasítást ad rá ICSS Kft 2019 51

Dump ddnevek és speciális DD utasítások A készülő dumpok fajtáját és jellemzőit a SYSABEND, SYSMDUMP és SYSUDUMP ddnevekkel adhatjuk meg SYSUDUMP DD utasítás: felhasználói tárterületekről készülő dump, nyomtatható formájú SYSABEND DD utasítás : a felhasználói és rendszer tárterületek dumpja (LSQA és IOS kontroll blokkok) nyomtatható formában SYSMDUMP DD utasítás: a rendszer tárterületekről és a program address space-ről készülő dump, nem formatált. Az IPCS által feldolgozható ICSS Kft 2019 52

Megjegyzés utasítás //*Ebben a sorban megjegyzés van A 4-80. oszlopig tetszőleges megjegyzést írhatunk A JOB-ban bárhol használható Megjegyzést írhatunk az egyes JCL utasításokban a paramétermező után ICSS Kft 2019 53

Null utasítás A // formában kódolt null utasítás jelzi a JOB végét Az 1-2 oszlopokra kell kódolni, a 3-72. oszlopok kötelezően üresek. Egy memberben több JOB is lehet; a null utasítás és a következő JOB utasítás közötti sorokat nem veszi figyelembe a rendszer A null utasítás használata nem kötelező ICSS Kft 2019 54

OUTPUT utasítás A SYSOUT állományokra vonatkozó feldolgozási opciókat adhatjuk meg az OUTPUT utasítás segítségével A megadott feldolgozási opciók akkor érvényesek, ha arra a SYSOUT DD utasításnál hivatkozunk A JES a SYSOUT DD utasításon megadott opciókat kombinálja a hivatkozott OUTPUT JCL utasításon megadott opciókkal ICSS Kft 2019 55

OUTPUT utasítás példa OUTPUT utasítás kódolása: //OUT1 OUTPUT DEST=ALAGSORI.PRINTER //OUT2 OUTPUT CONTROL=DOUBLE //DD1 DD SYSOUT=Z,OUTPUT=(*.OUT1,*.OUT2) ICSS Kft 2019 56

OUTPUT utasítás paraméterei ADDRESS DEPT MAILFILE PRTOPTNS AFPPARMS DEST MAILTO PRTQUEUE AFPSTATS DPAGELBL MODIFY PRTY BUILDING DUPLEX OFFSETXB REPLYTO BURST FCB OFFSETXF RESFMT CHARS FLASH OFFSETYB RETAINS CKPTLINE FORMDEF OFFSETYF RETRYL CKPTPAGE FORMLEN OUTBIN ROOM CKPTSEC FORMS OUTDISP SYSAREA CLASS FSSDATA OVERLAYB THRESHLD COLORMAP GROUPID OVERLAYF TITLE COMPACT INDEX OVFL TRC COMSETUP INTRAY PAGEDEF UCS CONTROL JESDS PIMSG USERDATA COPIES LINDEX PORTNO USERLIB COPYCNT LINECT PRMODE USERPATH DATACK MAILBCC PRTATTRS WRITER DEFAULT MAILCC PRTERROR ICSS Kft 2019 57

Hivatkozás OUTPUT utasításra A JOB szintű OUTPUT utasítás a JOB utasítás után és az első EXEC utasítás előtt kell álljon A STEP szintű OUTPUT utasítás az EXEC utasítás után kell álljon Az OUTPUT utasításra kétféle módon történhet hivatkozás: Explicit mód: a SYSOUT DD utasítás tartalmazza az OUTPUT paramétert, amely hivatkozik valamelyik OUTPUT utasítás nevére Implicit mód: a jobra vagy a joblépésre vonatkozó OUTPUT utasítás érvényben van az utasításba kódolt DEFAULT=YES paraméter miatt ICSS Kft 2019 58

Feladatok Oldd meg a JCL feladatok munkafüzet második részének 1. feladatát ICSS Kft 2019 59

Feltételes végrehajtás A JOB-ban az egyes lépések végrehajtása függhet feltételek vizsgálatától A lépések végrehajtása vagy kihagyása alapulhat előzőleg végrehajtott lépések kiértékelésétől, ekkor az IF / THEN; ELSE és ENDIF utasításokat használjuk A lépések végrehajtása vagy kihagyása vezérelhető return code-ok alapján a COND paraméter használatával is ICSS Kft 2019 60

Az IF; THEN; ELSE és ENDIF kódolása Szintaxis: //[név] IF (relációs kifejezés) THEN //steptrue //[név] //stepfals //[név] EXEC ELSE EXEC ENDIF Az opcionális név: A JOB-on belül egyedi A névmező szabályai érvényesek ICSS Kft 2019 61

Az IF konstrukció végrehajtása // IF (relációs kifejezés) THEN lépések ha a relációs kifejezés értéke IGAZ // ELSE lépések ha a relációs kifejezés értéke HAMIS // ENDIF Ha a (relációs kifejezés) értéke igaz, akkor az IF/THEN és ELSE közötti lépések hajtódnak végre hamis, akkor az ELSE és az ENDIF között kódoltak. Az ELSE utasítás (ág) elhagyható. Az IF konstrukció ágaiban nem a JCL utasítások, hanem jobstep lépések feltételes végrehajtását jelenti, ezért bizonyos JCL utasítások mindig végrehajtódnak (pl.: PROC; SET; INCLUDE; /*; //; stb.) ICSS Kft 2019 62

Relációs kifejezés az IF utasításban A relációs kifejezés formája: Kulcsszó Művelet Érték A Kulcsszó lehet: RC; ABEND; ^ABEND; ABENDCC; RUN; ^RUN A kulcsszavak jelentése: RC a már bejezett jobstepek return code értékeinek maximuma ABEND igaz, ha a már bejezett jobstepek bármelyikének ABEND kondíciója TRUE ^ABEND igaz, ha az eddig futott jobstepek mindegyikének ABEND kondíciója FALSE ABENDCC a legutolsó ABEND kód értéke (Sxxx/Uxxxx) stepnev.rc a stepnev jobstep RC kódja stepnev.abend igaz, ha a stepnev jobstep ABEND kondíciója TRUE ^stepnev.abend igaz, ha a stepnev jobstep ABEND kondíciója FALSE stepnev.abendcc a stepnev stepnev ABEND kód értéke (Sxxx / Uxxxx) stepnev.run igaz, ha a stepnev jobstep futott ^stepnev.run igaz, ha a stepnev jobstep nem futott ICSS Kft 2019 63

A Művelet az IF konstrukció relációs kifejezésben A Művelet lehet: tagadás: ^ logikai: &; összehasonlítás: >; <; ^>; ^<; =; ^=; >=; <=; NOT; AND; OR; GT; LT; NG; NL; EQ; NE; GE; LE Szöveges és szimbolikus formában egyaránt használható Az operátorok prioritási sorrendje: tagadás logikai műveletek összehasonlítások ICSS Kft 2019 64

Az Érték az IF konstrukció relációs kifejezésben Az Érték lehet: RC értéke 0-4095 ABEND kondíció értéke TRUE vagy FALSE ABENDCC értéke System Abend Sxxx háromjegyű hexadecimális User Abend Uxxxx négyjegyű decimális ICSS Kft 2019 65

Példák az IF konstrukció használatára //TEST IF (STEP1.RC<8) THEN //STEP2 EXEC PGM=JORC // ELSE //STEP3 EXEC PGM=ROSSZRC // ENDIF // IF (RC > 4 & RC < 8) THEN // IF ((RC LT 4 & RC LT 12) S3.RC=16 ) THEN // IF STEP2.ABEND & STEP2.ABENDCC ^= S806 THEN ICSS Kft 2019 66

A COND paraméter A JOB és az EXEC utasítás opcionális, kulcsszavas paramétere A JOB utasításban kódolt COND paraméter a teljes JOB-ra vonatkozik Az EXEC utasításban kódolt COND paraméter csak az adott joblépésre vonatkozik Minden jobstepben egyedi feltétel kódolható. A COND paraméterben több, maximum 8 feltétel sorolható fel, amelyek egymással VAGY kapcsolatban állnak ICSS Kft 2019 67

A COND paraméter szabályai A COND paramétert minden egyes joblépés végrehajtása előtt kiértékeli a rendszer Az legelső joblépés végrehajtása előtt COND feltétel FALSE A joblépés csak akkor hajtódik végre, ha COND feltétel FALSE Ha COND paraméter a JOB és az EXEC utasításon egyaránt szerepel, akkor a kiértékelés szabályai az alábbiak: Ha JOB utasításban kódolt feltétel TRUE, akkor a JOB még a joblépés végrehajtása előtt terminál. Ha a JOB utasításban kódolt feltétel FALSE, de az adott EXEC utasításon kódolt feltétel TRUE, akkor a joblépés kimarad. ICSS Kft 2019 68

A COND paraméter kódolása Szintaxis: COND=(code,operator) COND=(code,operator[,stepname]) COND=((code,operator[,stepname]) [,(code,operator[,stepname])...[,{even ONLY}) COND=EVEN COND=ONLY A code értéke 0-4095 lehet, a JOB utasításban általában 0; 4; 8; 12 vagy 16 Az operator GT; GE; EQ; LT; LE; NE lehet. ICSS Kft 2019 69

Az EVEN és az ONLY alparaméterek hatása Szerepel-e EVEN vagy ONLY? Teljesült-e korábban ABEND kondíció? Igaz-e legalább az egyik feltétel? Végrehajtódik-e az aktuális joblépés? EVEN EVEN EVEN EVEN Nem Nem Igen Igen Nem Igen Nem Igen Igen Nem Igen Nem ONLY ONLY ONLY ONLY Nem Nem Igen Igen Nem Igen Nem Igen Nem Nem Igen Nem Egyik sem Egyik sem Egyik sem Egyik sem Nem Nem Igen Igen Nem Igen Nem Igen Igen Nem Nem Nem ICSS Kft 2019 70

Példák a COND paraméter használatára //STEP2 EXEC PGM=IEBCOPY,COND=(4,LT,STEP1) //S3 EXEC PGM=DMP,COND=((16,GE),(20,LE,STEP1),ONLY) //STEP1 EXEC PGM=MYPROG1... //STEP2 EXEC PGM=MYPROG2,COND=(4,EQ,STEP1)... //STEP3 EXEC PGM=MYPROG3,COND=((8,LT,STEP1),(8,GT,STEP2)) Mi történik, ha STEP1 RC=4 értékkel fejeződik be? ICSS Kft 2019 71

Példák: A COND paraméter //STEP2 EXEC PGM=IEBCOPY,COND=(4,LT,STEP1) //S3 EXEC PGM=DMP,COND=((16,GE),(20,LE,STEP1),ONLY) ICSS Kft 2019 72

Feladatok Oldd meg a JCL feladatok munkafüzet második részének 2-3. feladatát ICSS Kft 2019 73

JES2 Kontroll utasítások A JES2 kontroll utasítások a JOB input és output feldolgozására vonatkoznak Formájuk: /*utasítás paraméterek ICSS Kft 2019 74

Főbb JES2 utasítások Főbb JES2 utasítások: /*JOBPARM /*MESSAGE /*NOTIFY /*OUTPUT /*PRIORITY /*ROUTE /*XEQ /*XMIT ICSS Kft 2019 75

Feladatok Oldd meg a JCL feladatok munkafüzet második részének további, 4-7. feladatait ICSS Kft 2019 76

JCL könyvek z/os V2R1 MVS JCL User's Guide http://publibz.boulder.ibm.com/epubs/pdf/iea3b500.pdf z/os V2R1 MVS JCL Reference http://publibz.boulder.ibm.com/epubs/pdf/iea3b601.pdf IBM Knowledge Center (böngészhető formátum) ICSS Kft 2019 77