JCL – IEBCOMPR

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éesPériphériqueCommentairesExemple
COMPARESéquentielCassette 9 pistes Aucune routine utilisateur.
Entrée bloquée.
Exemple 1 : Comparer des ensembles de
données résidant sur bande
COMPARESéquentielCassette 7 pistesAucune routine utilisateur.
Entrée bloquée.
Exemple 2 : Comparer des ensembles de données séquentielles résidant sur bande
COMPARESéquentielBande 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
COMPARESéquentielFlux 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 COMPARESéquentielDisque ou bandeAucune 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
COMPAREpartitionné
DisqueAucune routine utilisateur.
Entrée bloquée.
Exemple 6 : Comparer deux ensembles de données partitionnés
COPY (avec IEBCOPY) et COMPAREpartitionnéDisqueRoutine 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
COMPAREPDSE
DisqueAucune 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.