Obslužné programy sálových počítačů IBM () jsou utility dodávané s operačními systémy sálových počítačů IBM (např. MVS) především pro práci s datovými soubory a datovými médii.
Tento článek popisuje programy distribuované s operačním systémem OS/360 a jeho následníky. Nepopisuje programy pro DOS/360, VSE nebo VM.
Původ a společné vlastnosti programů Mnoho utilit bylo navrženo uživateli systémů IBM sdruženými v uživatelské skupině SHARE a následně upraveno nebo rozšířeno firmou IBM. Programy se zpravidla spouští z úloh Job Control Language (JCL).
Obvykle používají následující DD jména pro datové soubory: DD jméno Obvyklá funkce SYSIN vstupní soubor s „příkazy“ pro program; pokud je požadována implicitní akce, bývá prázdný (DUMMY) SYSUT1 vstupní soubor SYSUT2 výstupní soubor SYSUT3 pracovní (dočasný) soubor pro vstup (SYSUT1) (často není použit) SYSUT4 pracovní (dočasný) soubor pro výstup (SYSUT2) (často není použit) SYSPRINT soubor pro tiskový výstup z programu SYSOUT výstupní soubor pro zprávy programu SYSUDUMP výstupní soubor pro systémový 'dump', pokud program selže
Programy pro práci s datovými soubory
IDCAMS Program IDCAMS () generuje a mění datové soubory, ať používají nebo nepoužívají VSAM (Virtual Storage Access Method). Program IDCAMS se objevil spolu s VSAM v systému OS/VS; „Access Method“ ve jménu vychází ze skutečnosti, že v systému OS/VS „VSAM nahrazuje všechny ostatní přístupové metody“. IDCAMS by měl zahrnovat většinu funkčnosti ostatních pomocných systémových programů.
Příklad použití:
//XXXXXXXW JOB XXXXXXX,AAAA,CLASS=G,MSGCLASS=1,NOTIFY=&SYSUID //STEP001 EXEC PGM=IDCAMS //SYSIN DD * REPRO INFILE(FILE01) OUTFILE(FILE02) /* //FILE01 DD DSN=PROD.FILE1.INPUT,disp=shr ..... //FILE02 DD DSN=PROD.FILE2.OUTPUT, // DISP=(NEW,CATLG,DELETE), // UNIT=DASD, // SPACE=(TRK,(100,10),RLSE), // DCB=(RECFM=FB,BLKSIZE=0,LRECL=80) //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUDUMP DD SYSOUT=*
//*
V tomto případě je řídicí příkaz v souboru s DD jménem SYSIN začleněn přímo do vstupního proudu, ale může použit libovolný sekvenční soubor nebo člen knihovny (včetně dočasných souborů), např.:
//SYSIN DD DSN=PROD.MYFILE.REPRO,DISP=SHR
nebo:
//SYSIN DD DSN=PROD.MYLIB.CNTLLIB(REPRO), // DISP=SHR
IEBCOMPR Program IEBCOMPR slouží k porovnávání dvou sekvenčních nebo členěných datových souborů. Porovnání je prováděno na úrovni logických záznamů. Proto se IEBCOMPR často používá pro verifikaci, že záložní kopie datového souboru je správná (tj. přesně se shoduje s původním souborem).
Při zpracování porovnává IEBCOMPR jednotlivé záznamy z obou datových souborů. Pokud záznamy nejsou stejné, IEBCOMPR vypisuje na SYSOUT následující informace: Číslo záznamu a bloku DD jména souborů, v nichž se objevila nekonzistence Nestejné záznamy
Při porovnávání sekvenčních datových souborů IEBCOMPR považuje datové soubory za stejné, pokud jsou splněny následující podmínky:
Datové soubory obsahují stejný počet záznamů. Odpovídající si záznamy a klíče jsou identické.
V případě členěných datových souborů považuje IEBCOMPR soubory za stejné, pokud jsou splněny následující podmínky: Adresářové položky obou členěných datových souborů shodují - tj. počet položek je stejný a jména jsou shodná. Odpovídající si členy obsahují stejný počet záznamů. Odpovídající si záznamy a klíče jsou identické.
Pokud se soubory liší, IECOMPR skončí s vhodnými zprávami.
//XXXXXXXW JOB XXXXXXX,AAAA.A.A,CLASS=G,MSGCLASS=1,NOTIFY=XXXXX //STEP01 EXEC PGM=IEBCOMPR,ACCT=PJ00000000 // INCLUDE MEMBER=@BATCHS //*SYSIN DD DUMMY //SYSIN DD * COMPARE TYPORG=PO /* //SYSUT1 DD DSN=XXXXXXX.OLDFILE,UNIT=DASD,DISP=SHR //SYSUT2 DD DSN=XXXXXXX.NEWFILE,UNIT=DASD,DISP=SHR //SYSUT# DD
IEBCOMPR není příliš flexibilní ani uživatelsky přívětivý program. Neumí omezit porovnávání na určité sloupce, neumí ignorovat rozdíly v bílých znacích, neoznamuje, kde se objevil rozdíl v záznamech, a skončí po nalezení 10 rozdílů. Je však rychlý a je dostupný na všech sálových počítačích IBM. Je velmi užitečný, když se očekává přesná shoda, jako například při porovnávání zaváděcích modulů, u nichž nebyla změněna délka bloku, nebo při kontrole, že soubor byl zkopírován dobře. Pro porovnávání programů nebo zpráv, se obvykle používá program ISPF SuperC (ISRSUPC).
IEBCOPY IEBCOPY kopíruje, komprimuje a slučuje členěné datové soubory. Během operace kopírování může také vybrat nebo přeskočit zadané členy a přejmenovávat nebo nahrazovat členy.
Program IEBCOPY může provádět mimo jiné následující úkoly: Vytvořit sekvenční obraz členěného datového souboru (PDS) do PS datového souboru pro účely zálohování nebo přenosu. Kopírovat PDS na místě pro uvolnění nepoužitého prostor ze smazaných členů; tzv. komprimace PDS. Kopírovat vybrané členy do jiného členěného souboru. Přejmenovávat vybrané členy členěného souboru. Slučovat více členěných datových souborů do jednoho. Modifikovat a kopírovat zaváděcí moduly a měnit velikosti jejich bloků. Členy, které již jsou přítomné v cílovém členěném souboru, nebudou nahrazeny, pokud není použita volba R.
Program IEBCOPY lze použít pro kopírování souborů takto:
//stepname EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=class //MYDD1 DD DSN=xxxx.ppp.psps,DISP=SHR //MYDD2 DD DSN=xxxx.ppp.pssp,DISP=SHR //SYSIN DD * COPY INDD=MYDD1,OUTDD=MYDD2 SELECT MEMBER=(MEM1,MEM2,MEM3)/ EXCLUDE MEMBER=(SF,DF,SA)
Pro popis vstupního a výstupního členěného datového souboru mohou být použita libovolná povolená DD jména, jejich propojení na vstupní a výstupní soubor je provedeno v příkazech, které řídí program IEBCOPY; v příkladu jsou použita DD jména MYDD1 a MYDD2; implicitní DD jména jsou SYSUT1 pro vstup a SYSUT2 pro výstup. Pro komprimaci členěného datového souboru se použije pouze jeden příkaz DD.
IEBDG IEBDG () vytváří testovací datové soubory obsahující data popsaná zadanými vzorky.
IEBEDIT IEBEDIT selektivně kopíruje části JCL úlohy.
Příklad použití programu IEBEDIT:
//IEBEDITJ JOB ACCT,'',CLASS=P,MSGCLASS=T,MSGLEVEL=(1,1),NOTIFY=&SYSUID //STEP0001 EXEC PGM=IEBEDIT //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR //SYSUT2 DD SYSOUT=(*,INTRDR) //SYSIN DD * EDIT TYPE=INCLUDE,STEPNAME=(STEP10,STEP5,STEP15) /* //
Datový soubor xxxxx.yyyyy.zzzzz z tohoto příkladu musí obsahovat JCL úlohu nebo úlohy, které musí obsahovat kroky pojmenované STEP5, STEP10 a STEP15). Program IEBEDIT zkopíruje vybrané kroky JCL úlohy do výstupního souboru SYSUT2 (v tomto příkladu na interní reader).
Příkaz EDIT má tuto syntaxi:
[návěstí] EDIT [START=jobname] [,TYPE={POSITION|INCLUDE|EXCLUDE}] [,STEPNAME=(namelist)] [,NOPRINT]
Parametr START=jobname udává jméno vstupní úlohy, na kterou má být aplikován příkaz EDIT. Každý příkaz EDIT musí být použit na jinou úlohu. Pokud je zadané START bez TYPE a STEPNAME, bude na výstup opsána celá zadaná úloha počínaje příkazem JOB.
Implicitní chování: pokud chybí START, a je uveden pouze jeden příkaz EDIT, bude zpracována první úloha, která se objeví ve vstupním datovém souboru. Pokud není uvedeno START v jiném než prvním příkazu EDIT, bude zpracována následující úloha (JOB) ze vstupního datového souboru.
Parametr TYPE={POSITION|INCLUDE|EXCLUDE} určuje, jaké kroky se mají vybírat do výstupního datového souboru. Lze použít následující hodnoty:
POSITION udává, že výstup má obsahovat příkaz JOB, krok zadaný parametrem STEPNAME a všechny následující kroky v dané úloze. Všechny kroky, které předcházejí zadaný krok, jsou vynechány. POSITION je implicitní volba. INCLUDE udává, že výstupní datový soubor má obsahovat příkaz JOB a všechny kroky zadané parametrem STEPNAME. EXCLUDE udává, že výstupní datový soubor má obsahovat příkaz JOB a všechny kroky patřící do příslušné úlohy, kromě kroků zadaných v parametru STEPNAME.
Parametr STEPNAME=(namelist) určuje jména kroků úlohy, které mají být zpracovány.
namelist může být jméno jednoho kroku úlohy, seznam jmen kroků oddělených čárkami nebo rozsah kroků oddělených pomlčkou (například STEPA-STEPE). V seznamu jmen lze tyto zápisy libovolně kombinovat. Pokud je zadáno více než jedno jméno kroku, musí být celý namelist uzavřený v závorkách.
Při použití s TYPE=POSITION, STEPNAME je zadán první krok, který má být zkopírován do výstupního datového souboru. Kroky, které předcházejí tomuto kroku, nebudou do výstupního datového souboru zkopírovány.
Při použití s TYPE=INCLUDE nebo TYPE=EXCLUDE, určuje STEPNAME jména kroků úlohy, které mají být obsaženy v nebo vynechány z kopírování. Například STEPNAME=(STEPA,STEPF-STEPL,STEPZ) indikuje, že mají být zkopírovány (nebo vynechány) kroky STEPA, STEPF až STEPL a STEPZ.
Pokud není použito STEPNAME, bude na výstup zkopírována celá vstupní úloha, jejíž jméno je zadané v příkazu EDIT. Pokud není zadané jméno úlohy, bude zpracována první úloha na vstupu.
Parametr NOPRINT udává, že do datového souboru se zprávami se nemá opisovat výsledný výstupní datový soubor; implicitní chování je, že výsledný výstup se vypisuje do datového souboru zpráv.GC28-1143-2, MVS/XA Conversion Notebook, May 1984, page 1-1
IEBGENER IEBGENER kopíruje záznamy ze sekvenčního datového souboru nebo vytváří členěné datové soubory.
Program IEBGENER lze používat k následujícím účelům:
Vytváření záloh sekvenčních datových souborů nebo členů PDS. Změna fyzické velikosti bloku nebo délky logického záznamu sekvenčního datového souboru. Vytváření upraveného datového souboru. Tisk sekvenčního datového souboru nebo členu členěného souboru. Vytváření členěného výstupního datového souboru ze sekvenčního vstupního datového souboru.
Příklad použití programu IEBGENER pro kopírování datového souboru:
//IEBGENER JOB ACCT,'DATA COPY',MSGCLASS=J,CLASS=A //STEP010 EXEC PGM=IEBGENER //SYSUT1 DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR //SYSUT2 DD DSN=aaaaa.bbbbb.ccccc,DISP=(,CATLG), // UNIT=SYSDA,SPACE=(TRK,(5,5),RLSE), // DCB=(RECFM=FB,LRECL=1440) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY
Pro jednoduché kopírování může být rychlejší program sort. Mnoho instalací sálových počítačů proto používá volbu, která automaticky převádí takové úlohy na použití třídicího programu ICEGENER místo programu IEBGENER. Na některých systémech je možné z dávkové úlohy poslat e-mail nasměrováním výstupu na externí writer „SMTP“ např. tímto postupem:
//IEBGENER JOB ACCT,'DATA COPY',MSGCLASS=J,CLASS=A //NORMRC EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD *,LRECL=80 HELO <SYSTEMID> MAIL FROM:<USERID@SYSTEMID> RCPT TO:<USERID@SYSTEMID> DATA From: <USERID@SYSTEMID> To: <USERID@SYSTEMID> Subject: Testovaci zprava
Testovaci zprava ze saloveho pocitace. . QUIT /* //SYSUT2 DD SYSOUT=(B,SMTP),LRECL=80 //SYSIN DD DUMMY
K e-mailu lze také připojit další soubory.
IEBIMAGE IEBIMAGE pracuje s několika druhy definic () pro laserový tiskový subsystém IBM 3800 a tiskárnu IBM 4248. Obvykle se používá pro forms control buffers (FCBs), tabulky rozložení znaků, definice znaků a obrazy formulářů, které se mají tisknout spolu s textem, pro tisk log společností na stránce a pro tisk 'graybar' stránek (s podtiskem tvořeným šedými a bílými pruhy, aby se výstup podobal tisku na dříve používané papíry s předtištěnými zelenými pruhy). Tento program umožňuje uložit nejrůznější obrazy, které pak lze použít pro podtisk, aby nebylo nutné používat různé předtištěné formuláře, které vyžadují, aby operátoři vyměňovali papíry v tiskárně.
IEBISAM IEBISAM ukládá, načítá, kopíruje a vypisuje index-sekvenční datové soubory používající přístupovou metodu ISAM. V novějších operačních systémech, kde bylo ISAM nahrazeno VSAM, se místo IEBISAM používá program IDCAMS.
IEBPTPCH IEBPTPCH () vypisuje nebo děruje záznamy ze sekvenčního nebo členěného datového soubor.
Program IEBPTPCH může provádět mimo jiné následující úkoly: Tisk nebo děrování celý datový soubor, sekvenční nebo členěné (PDS). Tisk nebo děrování vybraných členů knihovny. Tisk nebo děrování vybraných záznamů ze sekvenčního nebo členěného datového souboru. Tisk nebo děrování adresáře členěného souboru.