Cette page a pour but de présenter très succintement les différents utilitaires IBM qui tournent en MVS. Sans intéréts pour les experts, cette page donnera quelques éléments aux novices.
Chaque programme est présenté avec un exemple et un lien vers la documentation disponible par le WEB. Le but est de mettre le pied à l'étrier des novices (je sais je me répète).
Les programmes IEB* et IEH* font partie de l'histoire de MVS. Certains de ces programmes sont très peu utilisés quant ils ne le sont plus du tout.
IEBCOMPR est un utilitaire qui permet de comparer 2 fichiers ou 2 PDS, sauf des load modules.
Pour des raisons de performances et d'accessibilité, IBM recommande d'utiliser "SuperC utility instead" (le Super-Compare) plutot que IEBCOMPR.
Si les fichiers sont identiques,un return-code à '00' est positionné, dans tous les autres cas, il y a erreur.
+DOC---------------------------------------------------------------------¦ ¦ COMPARE ¦ TYPORG={PS|PO} ¦ ¦ EXITS ¦ voir documentation ¦ ¦ LABELS ¦ [DATA={YES|NO|ALL|ONLY}] ¦ +------------------------------------------------------------------------+
+EXEMPLE--------------------------------------------------------------------------------+ // EXEC PGM=IEBCOMPR //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=Le.fichier1,DISP=OLD //SYSUT2 DD DSN=Le.fichier2,DISP=OLD //SYSIN DD DUMMY +---------------------------------------------------------------------------------------+
IEBCOPY est un utilitaire qui permet de copier des membres de PDS ou de PDSE. Il est possible d'utiliser IEBCOPY pour copier un PDS vers un fichier séquentiel, ou copier ce fichier séquentiel vers un PDS.
+DOC------------------------------------------------------------------------------------+ ¦ ¦ ¦ COPY OUTDD=DDnameo,,INDD=[(]{DDnamei|(DDnamei,R) }[,...][)] ,LIST={YES|NO}] ¦ ¦ ¦ ¦ COPYGRP OUTDD=DDnameo,,INDD=[(]{DDnamei|(DDnamei,R) }[,...][)] ,LIST={YES|NO}] ¦ ¦ ¦ ¦ COPYMOD OUTDD=DDnameo,,INDD=[(]{DDnamei|(DDnamei,R) }[,...][)] ¦ ¦ [,MAXBLK={nnnnn|nnK}] ¦ ¦ [,MINBLK={nnnnn|nnK}] ¦ ¦ [,LIST={YES|NO}] ¦ ¦ ¦ ¦ EXCLUDE MEMBER=[(]name1[,name2][,...][)] ¦ ¦ SELECT MEMBER=name1 ¦ ¦ SELECT MEMBER=(name1,name2,...) ¦ ¦ SELECT MEMBER=((name1,newname1[,R])[.......]) ¦ ¦ ¦ ¦ ¦ ¦ par défaut, DDnamei = SYSUT1, DDnameo=SYSUT2 ¦ +---------------------------------------------------------------------------------------+
+EXEMPLE--------------------------------------------------------------------------------+ //IEBCOPY EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //IN1 DD DISP=SHR,DSN=le.pds.en.entree //OU1 DD DISP=SHR,DSN=Le.pds.en.sortie //SYSIN DD * COPY OUTDD=OU1,INDD=((IN1,R)) SELECT MEMBER=TOTO /* +---------------------------------------------------------------------------------------+
IEBDG est un utilitaire permettantde générer le contenu d'un fichier pour aider au débugging des programmes.
+DOC------------------------------------------------------------------------------------+ ¦ ¦ ¦ DSD OUTPUT=(ddname) ¦ ¦ [,INPUT=(ddname1[,ddname2][,....])] ¦ ¦ ¦ ¦ FD NAME= ¦ ¦ ,LENGTH=length ¦ ¦ [,STARTLOC=position_start] ¦ ¦ [,FILL=('char')] ¦ ¦ [,{FORMAT=pattern[, CHARACTER=character]| ¦ ¦ PICTURE=length, {'character-string'|P'n'|B}}] ¦ ¦ [,SIGN=sign] ¦ ¦ [,ACTION={FX|RO|RP|SL|SR|TL|TR|WV}[,INDEX=n[,CYCLEn][,RANGE=n]] ¦ ¦ [,INPUT=ddname] ¦ ¦ [,FROMLOC=number] ¦ ¦ ¦ ¦ REPEAT QUANTITY=number[,CREATE=number] ¦ ¦ ¦ ¦ ¦ ¦ CREATE [QUANTITY=n] ¦ ¦ [,FILL={'character'|X'nn'}] ¦ ¦ [,INPUT={ddname|SYSIN[({cccc|$$$E})]}] ¦ ¦ [,PICTURE=length,startloc, ¦ ¦ {'character-string' | P'n' | B'n'}] ¦ ¦ [,NAME={(namelist)|(namelist-or-(copygroup))},EXIT=routinename] ¦ ¦ ¦ ¦ ¦ ¦ END ¦ ¦ ¦ +---------------------------------------------------------------------------------------+
+EXEMPLE--------------------------------------------------------------------------------+ //STEP1 EXEC PGM=IEBDG //SYSPRINT DD SYSOUT=A //SEQOUT DD DSN=le.fichier.en.sortie,UNIT=disk,DISP=(,CATLG), // DCB=(RECFM=FB,LRECL=80), // SPACE=(TRK,(10,10)) //SYSIN DD * DSD OUTPUT=(SEQOUT) FD NAME=FIELD1,LENGTH=70,STARTLOC=1,FORMAT=AL,ACTION=TL CREATE QUANTITY=100,NAME=(FIELD1),FILL=X'FF' END /* +---------------------------------------------------------------------------------------+
IEBEDIT permet de copier tout ou partie de jobs depuis un fichier vers un autre fichier (ou vers l'INTERNAL-READER.
C'est un programme qui ne devrait plus être utilisé dans une production "normale". Certains schéduler (OPC PAR EX.) font cela très bien.
C'est le programme de copie de fichiers séquentiels, avec ou sans transformation des records.
Si les enregistrements doivent être reformatés, mieux vaut utiliser le tri (SORT), c'est plus facile.
+DOC------------------------------------------------------------------------------------+ ¦ ¦ ¦ GENERATE [,MAXNAME=n] ¦ ¦ [,MAXFLDS=n] ¦ ¦ [,MAXGPS=n] ¦ ¦ [,MAXLITS=n] ¦ ¦ [,DBCS={YES|NO}] ¦ ¦ ¦ ¦ EXIT ===>voir doc originale ¦ ¦ ¦ ¦ LABELS [DATA={YES|NO|ALL|ONLY|INPUT}] ¦ ¦ ¦ ¦ MEMBER NAME=(name[,alias 1][,alias 2][,...]) ¦ ¦ ¦ ¦ RECORD [{IDENT|IDENTG}=(length,'name',input-location)]¦ ¦ ¦ [,FIELD=([length],[{input-location|'literal'}],¦ ¦ ¦ [conversion],[output-location])] ¦ ¦ [,FIELD=..¦] ¦ ¦ [,LABELS=n] ¦ ¦ ¦ ¦---------------------------------------------------------------------------------------¦
+EXEMPLE 1-copie simple de fichier -----------------------------------------------------+ //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=le.fichier.en.entree,DISP=.... //SYSUT2 DD DSN=le.fichier.en.sortie, // DISP=(,CATLG), // SPACE=(TRK,(10,10)) //SYSIN DD DUMMY +---------------------------------------------------------------------------------------+
+EXEMPLE 2-copie simple de fichier -----------------------------------------------------+ //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=le.fichier.en.entree,DISP=.... //SYSUT2 DD DSN=le.fichier.en.sortie, // DISP=(,CATLG), // SPACE=(TRK,(10,10)) //SYSIN DD * a faire +---------------------------------------------------------------------------------------+
IEBIMAGE est un utilitaire qui permet de maintenir (création et/ou modification) l'environnement PRINTER des 3800 et 4248.
Voir la documentation originale
IEBISAM est un programme de copie de fichier format "ISAM", méthode d'accès obsolète.
Voir la documentation originale
IEBPTPCH est un utilitaire permettant de "PUNCHER" ou d'imprimer tout ou partie d'in fichier séquentiel ou d'un PDS. Pour la plupart de ces opérations, il est plus facile d'utiliser SORT ou IDCAMS.
+DOC------------------------------------------------------------------------------------+ ¦ ¦ ¦ PRINT|PUNCH [PREFOM={A|B}] ¦ ¦ [,TYPORG={PS|PO}] ¦ ¦ [,TOTCONV={XE|PZ}] ¦ ¦ [,CNTRL={n|1}] ¦ ¦ [,STRTAFT=n] ¦ ¦ [,STOPAFT=n] ¦ ¦ [,SKIP=n] ¦ ¦ [,MAXNAME=n] ¦ ¦ [,MAXFLDS=n] ¦ ¦ [,MAXGPS=n] ¦ ¦ [,MAXLITS=n] ¦ ¦ [,DBCS={YES|NO}] ¦ ¦ [,INITPG=n] ¦ ¦ [,MAXLINE=n] ¦ ¦ [,CDSEQ=n] ¦ ¦ [,CDINCR=n] ¦ ¦ ¦ ¦ TITLE ITEM=('title'[,output-location]) ¦ ¦ ¦ ¦ MEMBER NAME=member ¦ ¦ ¦ ¦ RECORD [IDENT=(length,'name',input-location)] ¦ ¦ [,FIELD=(length,[input-location],[conversion],output-location])] ¦ ¦ [,FIELD.....] ¦ ¦ ¦ ¦ LABELS [CONV={PZ|XE}] ¦ ¦ [,DATA={YES|NO|ALL|ONLY]} ¦ ¦ ¦ ¦---------------------------------------------------------------------------------------¦
+EXEMPLE-impression d'un PDS------------------------------------------------------------+ //STEP1 EXEC PGM=IEBPTPCH //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=le.fichier.en.entree,DISP=.... //SYSUT2 DD SYSOUT=* //SYSIN DD * PRINT TYPORG=P0,MAXNAME=1,MAXFLDS=1 RECORD FIELD=(80) +---------------------------------------------------------------------------------------+
IEBUPDATE permet de créer ou modifier des PDS. Ce programme ne travaille qu'avec des fichiers ayant comme format "LRECL=80,RECFM=FB".
IEBUPDATE est surtoututilisé pour transporter des programmes ou des jcls d'un site à un autre.Mais il a tendance à être remplacé par d'autres utilitaires plus pratiques et plus simples.
+DOC---------------------------------------------------------------------+ ¦ ./[label] ¦ {ADD|CHANGE| ¦ [LIST=ALL] ¦ ¦ ¦ REPL|REPRO}¦ [,SEQFLD={ddl|(ddl,ddl)}] ¦ ¦ ¦ ¦ [,NEW={PO|PS}] ¦ ¦ ¦ ¦ [,MEMBER=membername] ¦ ¦ ¦ ¦ [,COLUMN={nn|1}] ¦ ¦ ¦ ¦ [,UPDATE=INPLACE] ¦ ¦ ¦ ¦ [,INHDR=routinename] ¦ ¦ ¦ ¦ [,INTLR=routinename] ¦ ¦ ¦ ¦ [,OUTHDR=routinename] ¦ ¦ ¦ ¦ [,OUTTLR=routinename] ¦ ¦ ¦ ¦ [,TOTAL=(routinename,size)] ¦ ¦ ¦ ¦ [,NAME=membername] ¦ ¦ ¦ ¦ [,LEVEL=hh] ¦ ¦ ¦ ¦ [,SOURCE=x] ¦ ¦ ¦ ¦ [,SSI=hhhhhhhh] ¦ ¦ ¦ ¦ ¦ +------------------------------------------------------------------------+ ¦ ./[label] ¦ {NUMBER| ¦ [SEQ1={cccccccc|ALL}] ¦ ¦ ¦ DELETE} ¦ [,SEQ2=cccccccc] ¦ ¦ ¦ ¦ [,NEW1=cccccccc] ¦ ¦ ¦ ¦ [,INCR=cccccccc] ¦ ¦ ¦ ¦ [,INSERT=YES] ¦ ¦ ¦ ¦ ¦ +------------------------------------------------------------------------¦ ¦ ./[name] ¦ LABEL ¦ ¦ +------------------------------------------------------------------------+ ¦ ./[label] ¦ ALIAS ¦ NAME=aliasname ¦ +------------------------------------------------------------------------+ ¦ ./[label] ¦ ENDUP ¦ ¦ +------------------------------------------------------------------------+
+EXEMPLE, ajout de membres dans un PDS--------------------------------------------------+ //STEP1 EXEC PGM=IEBUPDTE,PARM=MOD //SYSPRINT DD SYSOUT=* //SYSUT2 DD DSN=un.pds,DISP=OLD //SYSIN DD DATA ./ ADD NAME=MEMB1,LEVEL=00,SOURCE=0,LIST=ALL (Coder ici votre jcl pour memb1) ./ ADD NAME=MEMB2,LEVEL=00,SOURCE=0,LIST=ALL (Coder ici votre jcl pour memb2) ./ ADD NAME=MEMB3,LEVEL=00,SOURCE=0,LIST=ALL (Coder ici votre jcl pour memb3) ./ ENDUP /* +---------------------------------------------------------------------------------------+
IEHINTT est l'utilitaire permettant d'initaliser des bandes magnétiques sur une ou plisieurs unités. Ce programme est normalement protégé par RACF car son utilisation sans précautions peut être désastreuse.
Attention aux programmes de gestion de magnétothèque (CA1, TLMS, CONTROL-M,...), ils peuvent imposer certaines contraintes d'utilisation.
+------------------------------------------------------------------------+ ¦ ddname ¦ INITT ¦ SER=serial number ¦ ¦ ¦ ¦ [,DISP={REWIND|UNLOAD}] ¦ ¦ ¦ ¦ [,OWNER='name'] ¦ ¦ ¦ ¦ [,NUMBTAPE={n|1}] ¦ ¦ ¦ ¦ [,LABTYPE=AL] ¦ ¦ ¦ ¦ [,VERSION={3|4 }] ¦ ¦ ¦ ¦ [,ACCESS=c] ¦ +------------------------------------------------------------------------+
+EXEMPLE, init d'1 k7 3480 ------------------------------------------------------------+ //STEP1 EXEC PGM=IEHINITT //SYSPRINT DD SYSOUT=* //LABEL DD UNIT=(3480,DEFER) //SYSIN DD * LABEL INITT SER=001234,NUMBTAPE=1 /* +---------------------------------------------------------------------------------------+
IEHLIST est un programme qui permet de lister les entrées des VTOC ou de PDS. Pour imprimer le contenu d'un PDS ou d'une VTOC, le disque DOIT être alloué dans le jcl. Pour imprimer le contenu d'un PDS, il est préférable de passer par les outils ISPF.
+DOC---------------------------------------------------------------------+ ¦ [label] ¦ LISTPDS ¦ DSNAME=(name[,name[,...]]) ¦ ¦ ¦ ¦ [,VOL=device=serial] ¦ ¦ ¦ ¦ [,{DUMP|FORMAT}] ¦ +------------------------------------------------------------------------+ ¦ [label] ¦ LISTVTOC ¦ [{DUMP|FORMAT[,PDSESPACE]}] ¦ ¦ ¦ ¦ [,INDEXDSN=SYS1.VTOCIX.xxxx] ¦ ¦ ¦ ¦ [,DATE={dddyy|dddyyyy}] ¦ ¦ ¦ ¦ [,VOL=device=serial] ¦ ¦ ¦ ¦ [,DSNAME=(name[,name[,...]]) ¦ +------------------------------------------------------------------------+
+EXEMPLE, liste d'une VTOC -------------------------------------------------------------+ //STEP1 EXEC PGM=IEHLIST /* 111111 est le volser */ //SYSPRINT DD SYSOUT=* //DD2 DD UNIT=3390,VOLUME=SER=111111,DISP=OLD //SYSIN DD * LISTVTOC FORMAT,VOL=3390=111111 /* +---------------------------------------------------------------------------------------+
IEHMOVE n'est plus supporté par IBM. Utiliser DFDSS (ADRDSSU).
IEHPROGM est un programme qui permet de renommer ou effacer des fichiers. Il permet aussi quelques opérations sur les CVOL (vieux trucs dont je ne parle pas).
L'utilisation de ce programme est réservée aux spécialistes. Il est préférable de remplacer IEHPROGM par IDCAMS.
IFHSTATR est un programme qui imprime les "record de type 21 du SMF". Il n'y a pas de paramètres à coder pour cet utilitaire.
+EXEMPLE--------------------------------------------------------------------------------+ //STEP1 EXEC PGM=IFHSTATR //SYSUT1 DD DSNAME=le.fichier.smf,DISP=OLD //SYSUT2 DD SYSOUT=* /* +---------------------------------------------------------------------------------------+