Les exemples du tableau 1 illustrent certaines des utilisations d’IEBCOMPR.
Les nombres dans la colonne Exemple font référence aux exemples qui suivent.
Les exemples qui utilisent un disque ou une bande à la place des noms ou des numéros de périphérique réels doivent être modifiés avant utilisation.
Les noms ou numéros de périphérique réels dépendent de la façon dont votre installation a défini les périphériques sur votre système.
Tableau 1. Répertoire d’exemple IEBCOMPR
Opération | Organisation du jeu de données | Périphérique | Commentaires | Exemple |
---|---|---|---|---|
COMPARE | Séquentiel | Cassette 9 pistes | Aucune routine utilisateur. Entrée bloquée. | Exemple 1 : Comparer des ensembles de données résidant sur bande |
COMPARE | Séquentiel | Cassette 7 pistes | Aucune routine utilisateur. Entrée bloquée. | Exemple 2 : Comparer des ensembles de données séquentielles résidant sur bande |
COMPARE | Séquentiel | Bande 7 pistes et bande 9 pistes | Routines utilisateur. Entrée bloquée. Bandes de différentes densités. | Exemple 3 : Comparer des ensembles de données séquentielles écrites à différentes densités |
COMPARE | Séquentiel | Flux d’ entrée système Bande 9 pistes | Aucune routine utilisateur. Entrée bloquée. | Exemple 4 : Comparer des ensembles de données séquentielles : flux d’entrée et entrée de bande |
COPY (avec IEBGENER) et COMPARE | Séquentiel | Disque ou bande | Aucune routine utilisateur. Entrée bloquée. Deux étapes de travail ; les ensembles de données sont transmis à la deuxième étape du travail. | Exemple 5 : copier et comparer un ensemble de données séquentielles en deux steps de job |
COMPARE | partitionné | Disque | Aucune routine utilisateur. Entrée bloquée. | Exemple 6 : Comparer deux ensembles de données partitionnés |
COPY (avec IEBCOPY) et COMPARE | partitionné | Disque | Routine utilisateur. Entrée bloquée. Deux étapes de travail ; les ensembles de données sont transmis à la deuxième étape du travail. | Exemple 7 : Copier et comparer un ensemble de données partitionnées en deux steps de job |
COMPARE | PDSE | Disque | Aucune routine utilisateur. Ensembles de données gérés par SMS. | Exemple 8 : Comparer deux PDSE |
EXEMPLE
Exemple 1 : Comparer des ensembles de données résidant sur bande
Dans cet exemple, deux ensembles de données séquentielles résidant sur des volumes de bande à 9 pistes sont comparés.
//TAPETAPE JOB ...
// EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=SET1,UNIT=tape,LABEL=(,NL),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000),
// DISP=(OLD,KEEP),VOLUME=SER=001234
//SYSUT2 DD DSNAME=SET2,UNIT=tape,LABEL=(,NL),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=1040),
// DISP=(OLD,KEEP),VOLUME=SER=001235
//SYSIN DD DUMMY
/*
Les instructions de contrôle de travail sont décrites comme suit :
- SYSUT1 DD définit un ensemble de données d’entrée (SET1), qui réside sur un volume de bande 9 pistes sans étiquette.
- SYSUT2 DD définit un ensemble de données d’entrée (SET2), qui réside sur un volume de bande 9 pistes sans étiquette.
- SYSIN DD définit un jeu de données factice.
Étant donné qu’aucune routine utilisateur n’est utilisée et que les ensembles de données d’entrée ont une organisation séquentielle, les instructions de contrôle de l’utilitaire ne sont pas nécessaires.
Exemple 2 : Comparer des ensembles de données séquentielles résidant sur bande
Dans cet exemple, deux ensembles de données séquentielles résidant sur des volumes de bande à 7 pistes sont comparés.
//TAPETAPE JOB ...
// EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=SET1,LABEL=(2,SUL),DISP=(OLD,KEEP),
// VOL=SER=001234,DCB=(DEN=2,RECFM=FB,LRECL=80,
// BLKSIZE=2000,TRTCH=C),UNIT=tape
//SYSUT2 DD DSNAME=SET2,LABEL=(,SUL),DISP=(OLD,KEEP),
// VOL=SER=001235,DCB=(DEN=2,RECFM=FB,LRECL=80,
// BLKSIZE=2000,TRTCH=C),UNIT=tape
//SYSIN DD *
COMPARE TYPORG=PS
LABELS DATA=ONLY
/*
Les instructions de contrôle sont discutées comme suit
:
- SYSUT1 DD définit un ensemble de données d’entrée, SET1, qui réside sur un volume de bande étiqueté à 7 pistes.
L’ensemble de données bloqué a été initialement écrit à une densité de 800 bits par pouce (DEN=2) avec le convertisseur de données activé (TRTCH=C). - SYSUT2 DD définit un jeu de données d’entrée, SET2, qui est le premier ou le seul jeu de données sur un volume de bande étiqueté à 7 pistes.
L’ensemble de données bloqué a été initialement écrit à une densité de 800 bits par pouce (DEN=2) avec le convertisseur de données activé (TRTCH=C). - SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
- COMPARE TYPORG=PS spécifie que les ensembles de données d’entrée sont organisés de manière séquentielle.
- LABELS DATA=ONLY spécifie que les étiquettes d’en-tête utilisateur doivent être traitées comme des données et comparées.
Toutes les autres étiquettes sur la bande sont ignorées.
Exemple 3 : Comparer des ensembles de données séquentiels écrits à différentes densités
Dans cet exemple, deux ensembles de données séquentielles qui ont été écrites à des densités différentes sur différentes unités de bande sont comparées.
//TAPETAPE JOB ...
// EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=SET1,LABEL=(,SUL),DISP=(OLD,KEEP),
// VOL=SER=001234,DCB=(DEN=1,RECFM=FB,LRECL=80,
// BLKSIZE=320,TRTCH=C),UNIT=tape
//SYSUT2 DD DSNAME=SET2,LABEL=(,SUL),DISP=(OLD,KEEP),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=640),
// UNIT=tape,VOLUME=SER=001235
//SYSIN DD *
COMPARE TYPORG=PS
EXITS INHDR=HDRS,INTLR=TLRS
LABELS DATA=NO
/*
Les instructions de contrôle sont discutées comme suit :
- SYSUT1 DD définit un jeu de données d’entrée, SET1, qui est le premier ou le seul jeu de données sur un volume de bande étiqueté à 7 pistes.
L’ensemble de données bloqué a été initialement écrit à une densité de 556 bits par pouce (DEN=1) avec le convertisseur de données activé (TRTCH=C). - SYSUT2 DD définit un ensemble de données d’entrée, SET2, qui est le premier ou le seul ensemble de données bloquées sur un volume de bande étiqueté.
Dans cet exemple, supposons que SYSUT2 se trouve sur un lecteur de bande à 9 pistes. - SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
- COMPARE TYPORG=PS spécifie que les ensembles de données d’entrée sont organisés de manière séquentielle.
- EXITS identifie les noms des routines à utiliser pour traiter les étiquettes d’en-tête d’entrée utilisateur et les étiquettes de fin.
- LABELS DATA=NO spécifie que les étiquettes d’en-tête et de fin d’entrée utilisateur pour chaque ensemble de données ne doivent pas être comparées.
Exemple 4 : Comparer des ensembles de données séquentiels – Flux d’entrée et entrée de bande
Dans cet exemple, deux ensembles de données séquentiels (flux d’entrée et bande) sont comparés.
//CARDTAPE JOB ...
// EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=A
//SYSIN DD DUMMY
//SYSUT2 DD UNIT=tape,VOLUME=SER=001234,LABEL=(,NL),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000),
// DISP=(OLD,KEEP)
//SYSUT1 DD DATA
(jeu de données d'entrée)
/*
Les instructions de contrôle sont décrites comme suit :
- SYSIN DD définit un jeu de données de contrôle factice.
Étant donné qu’aucune routine utilisateur n’est fournie et que les ensembles de données d’entrée sont séquentiels, les instructions de contrôle de l’utilitaire ne sont pas nécessaires. - SYSUT2 DD définit un ensemble de données d’entrée, qui réside sur un volume de bande sans étiquette.
- SYSUT1 DD définit un ensemble de données de flux d’entrée système.
Exemple 5 : Copier et comparer un jeu de données séquentiel en deux step de job
Dans cet exemple, un jeu de données séquentiel sur disque ou sur bande est copié et comparé en deux step de job.
//TAPETAPE JOB ...
//STEPA EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSN=WAREHOUS.COPYSET1,DISP=(OLD,PASS),
//SYSUT2 DD DSNAME=WAREHOUS.COPYSET2,DISP=(,PASS),LABEL=(,SL),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=640),
// UNIT=tape,VOLUME=SER=001235
//SYSIN DD DUMMY
//STEPB EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=*.STEPA.SYSUT1,DISP=(OLD,KEEP)
//SYSUT2 DD DSNAME=*.STEPA.SYSUT2,DISP=(OLD,KEEP)
//SYSIN DD DUMMY
Le premier step de job copie l’ensemble de données et transmet les ensembles de données d’origine et copiés au deuxième step de job.
Le deuxième step de job compare les deux ensembles de données.
Les instructions de contrôle pour le step de job IEBCOMPR sont présentées comme suit :
- SYSUT1 DD définit un ensemble de données d’entrée transmis à partir du step de job précédent (COPYSET1).
L’ensemble de données réside sur un volume de bande étiqueté. - SYSUT2 DD définit un ensemble de données d’entrée transmis à partir du step de job précédent (COPYSET2).
L’ensemble de données, qui a été créé au step de job précédent, réside sur un volume de bande étiqueté. - SYSIN DD définit un jeu de données de contrôle factice.
Etant donné que l’entrée est séquentielle et qu’aucun exit utilisateur n’est fourni, aucune instruction de contrôle d’utilitaire n’est requise.
Exemple 6 : Comparer deux ensembles de données partitionnés
Dans cet exemple, deux ensembles de données partitionnés sont comparés.
//DISKDISK JOB ...
//STEP1 EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=PDSSET1,UNIT=disk,DISP=SHR,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000),
// VOLUME=SER=111112
//SYSUT2 DD DSNAME=PDSSET2,UNIT=disk,DISP=SHR,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000),
// VOLUME=SER=111113
//SYSIN DD *
COMPARE TYPORG=PO
/*
Les instructions de contrôle sont décrites comme suit :
- SYSUT1 DD définit un ensemble de données partitionnées en entrée, PDSSET1.
L’ensemble de données bloqué réside sur un volume de disque. - SYSUT2 DD définit un ensemble de données partitionnées en entrée, PDSSET2.
L’ensemble de données bloqué réside sur un volume de disque. - SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
- COMPARE TYPORG=PO indique que les ensembles de données d’entrée sont partitionnés.
Exemple 7 : Copier et comparer un ensemble de données partitionné en deux step de job
Dans cet exemple, un ensemble de données partitionné est copié et comparé en deux step de job.
//DISKDISK JOB ...
//STEPA EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=MAINDB.LOG.OLDSET,DISP=SHR
//SYSUT2 DD DSNAME=NEWMEMS,UNIT=disk,DISP=(,PASS),
// VOLUME=SER=111113,SPACE=(TRK,(5,5,5)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=640)
//SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(1))
//SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(1))
//SYSIN DD *
COPY OUTDD=SYSUT2,INDD=SYSUT1
SELECT MEMBER=(A,B,D,E,F)
/*
//STEPB EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSNAME=OLDSET,DISP=(OLD,KEEP)
//SYSUT2 DD DSNAME=NEWMEMS,DISP=(OLD,KEEP)
//SYSIN DD *
COMPARE TYPORG=PO
EXITS ERROR=SEEERROR
/*
Le premier step de job copie l’ensemble de données et transmet les ensembles de données d’origine et copiés au deuxième step de job.
Le deuxième step de job compare les deux ensembles de données.
Les instructions de contrôle pour l’étape de travail IEBCOMPR sont abordées comme suit :
- SYSUT1 DD définit un ensemble de données d’entrée bloquées (MAINDB.LOG.OLDSET) transmis à partir du step précédent.
L’ensemble de données réside sur un volume de disque ou de bande. - SYSUT2 DD définit un ensemble de données d’entrée bloquées (MAINDB.LOG.NEWMEMS) transmis à partir du step précédent.
L’ensemble de données réside sur un volume de disque. - SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
- COMPARE TYPORG=PO spécifie une organisation partitionnée.
- EXITS spécifie qu’une routine d’erreur utilisateur, SEEERROR, doit être utilisée.
Étant donné que les noms des ensembles de données d’entrée ne sont pas identiques, les ensembles de données peuvent être récupérés par leurs noms d’ensemble de données.
Exemple 8 : Comparer deux PDSE
Dans cet exemple, deux PDSE sont comparés.
//DISKDISK JOB ...
// EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSN=PDSE1,DISP=SHR
//SYSUT2 DD DSN=PDSE2,DISP=SHR
//SYSIN DD *
COMPARE TYPORG=PO
/*
Les PDSE ne doivent plus être gérés par SMS.
Étant donné que ces PDSE sont catalogués, vous n’avez pas besoin de spécifier les paramètres UNIT ou VOLUME.
Les instructions de contrôle sont décrites comme suit :
- SYSUT1 DD et SYSUT2 DD définissent les PDSE d’entrée, PDSE1 et PDSE2.
Étant donné qu’aucune valeur DCB n’est spécifiée, les valeurs DCB qui ont été spécifiées lors de la création des ensembles de données seront utilisées. - SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
- COMPARE TYPORG=PO indique que les ensembles de données d’entrée sont des PDSE.