Tous les articles par Mr COBOL

JCL – IFHSTATR

Dans cet exemple, IFHSTATR est utilisé pour imprimer les enregistrements SMF de type 21.

//REPORT   JOB  ...
//STEP1    EXEC PGM=IFHSTATR
//SYSUT1   DD  UNIT=3480,DSNAME=SYS1.MAN,LABEL=(,SL),
//             VOL=SER=volid,DISP=OLD
//SYSUT2   DD  SYSOUT=A
/*

L’ensemble de données de sortie peut résider sur n’importe quel périphérique de sortie pris en charge par BSAM.

Remarque : Les paramètres d’entrée LRECL et BLKSIZE ne sont pas spécifiés par IFHSTATR.
Ces informations sont extraites du paramètre DCB de l’instruction DD SYSUT1 ou de l’étiquette de la bande.

JCL – IEHPROGM

Les exemples suivants illustrent certaines des utilisations de IEHPROGM.
Le tableau 1 peut être utilisé comme guide de référence rapide pour les exemples IEHPROGM.
Les nombres dans la colonne Exemple pointent vers les exemples qui suivent.

Tableau 1. Répertoire d’exemples IEHPROGM

OpérationDispositifCommentairesExemple
SCRATCHDisqueLe DSCB des jeux de données est rayé.Exemple 1 : Scratch des ensembles de données système temporaires
SCRATCH, UNCATLGDisqueDeux ensembles de données sont rayés et leurs entrées supprimées du catalogue.Exemple 2 : Scratch et Uncatalog Two Data Sets
RENAME, UNCATLG, CATLGDisqueUn ensemble de données est renommé sur deux appareils montables ; l’ancien nom de l’ensemble de données est supprimé. Le jeu de données est catalogué sous son nouveau nom.Exemple 3 : Renommer un catalogue d’ensembles de données multi-volumes
UNCATLGDisqueLes structures d’index pour les ensembles de données de trois générations sont supprimées du catalogue.Exemple 4 : Décataloguer trois ensembles de données
RENAME, DELETEP, ADDDisqueUn ensemble de données est renommé. Les anciens mots de passe sont supprimés et de nouveaux mots de passe sont attribués.Exemple 5 : Renommer un ensemble de données et définir de nouveaux mots de passe
LIST, REPLACEDisqueUne entrée de mot de passe est répertoriée. Le mode et l’état de la protection sont modifiés et des données utilisateur sont ajoutées.Exemple 6 : répertorier et remplacer les informations de mot de passe
RENAMEDisqueUn membre d’un ensemble de données partitionné est renommé.Exemple 7 : renommer un membre d’ensemble de données partitionné

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.

Exemples

Exemple 1 : Jeux de données système temporaires Scratch

Dans cet exemple, tous les ensembles de données système temporaires sont rayés de la table des matières du volume.

//SCRVTOC  JOB  ...
//STEP1    EXEC PGM=IEHPROGM
//SYSPRINT DD  SYSOUT=A
//DD2      DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//SYSIN    DD  *
      SCRATCH  VTOC,VOL=disk=222222,SYS
/*

Les instructions de contrôle sont décrites comme suit :

  • L’instruction DD2 définit un volume.
    Étant donné que le volume de résidence du système n’est pas référencé, une instruction DD est nécessaire pour le définir.
  • L’instruction SCRATCH, avec SYS spécifié, indique que tous les ensembles de données système temporaires dont les dates d’expiration ont expiré sont supprimés du volume spécifié.

Exemple 2 : Scratch et Uncatalog deux ensembles de données

Dans cet exemple, deux ensembles de données sont effacés : SET1 et ABCDE sont effacés du volume 222222.
Les deux ensembles de données ne sont pas catalogués.

//SCRDSETS JOB  ...
//STEP1    EXEC PGM=IEHPROGM
//SYSPRINT DD  SYSOUT=A
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  UNIT=disk,DISP=OLD,VOLUME=SER=222222
//SYSIN    DD  *
      SCRATCH  DSNAME=SET1,VOL=disk=222222
      UNCATLG  DSNAME=SET1
      SCRATCH  DSNAME=A.B.C.D.E,VOL=disk=222222
      UNCATLG  DSNAME=A.B.C.D.E
/*

Les déclarations de contrôle d’utilité sont discutées comme suit :

  • La première instruction SCRATCH spécifie que SET1, qui réside sur le volume 222222, est rayé.
  • La première instruction UNCATLG spécifie que SET1 n’est pas catalogué.
  • La deuxième instruction SCRATCH spécifie que ABCDE, qui réside sur le volume 222222, est rayé.
  • La deuxième instruction UNCATLG spécifie que ABCDE n’est pas catalogué.

Exemple 3 : Renommer un catalogue de jeux de données multi-volumes

Dans cet exemple, le nom d’un ensemble de données est modifié sur deux volumes montables.
L’ancien nom d’ensemble de données est supprimé et l’ensemble de données est catalogué sous son nouveau nom d’ensemble de données.

//RENAMEDS JOB  ...
//STEP1    EXEC PGM=IEHPROGM
//SYSPRINT DD  SYSOUT=A
//DD1      DD  VOLUME=SER=111111,UNIT=disk,DISP=OLD
//DD2      DD  UNIT=(disk,,DEFER),DISP=OLD,
//             VOLUME=(PRIVATE,SER=(222222,333333))
//SYSIN    DD  *
  RENAME   DSNAME=A.B.C,NEWNAME=NEWSET,VOL=disk=(222222,333333)
  UNCATLG  DSNAME=A.B.C
  CATLG    DSNAME=NEWSET,VOL=disk=(222222,333333)
/*

Les instructions de contrôle sont décrites comme suit :

  • RENAME spécifie que l’ensemble de données ABC, qui réside sur les volumes 222222 et 333333, doit être renommé NEWSET.
  • UNCATLG spécifie que l’ensemble de données ABC n’est pas catalogué.
  • CATLG spécifie que NEWSET, qui réside sur les volumes 222222 et 333333, est catalogué.

Exemple 4 : Décataloguer trois jeux de données

Dans cet exemple, trois ensembles de données, ABCDEFSET1, ABCGHSET2 et ABIJKSET3, ne sont pas catalogués.

//DLTSTRUC JOB  ...
//STEP1    EXEC PGM=IEHPROGM
//SYSPRINT DD  SYSOUT=A
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//SYSIN    DD  *
      UNCATLG   DSNAME=A.B.C.D.E.F.SET1
      UNCATLG   DSNAME=A.B.C.G.H.SET2
      UNCATLG   DSNAME=A.B.I.J.K.SET3
/*

Les instructions de contrôle sont discutées comme suit :

Les instructions UNCATLG spécifient que les ensembles de données ABCDEFSET1, ABCGHSET2 et ABIJKSET3 ne sont pas catalogués.

Exemple 5 : Renommer un ensemble de données et définir de nouveaux mots de passe

Dans cet exemple, un ensemble de données est renommé.
Les mots de passe d’ensemble de données attribués à l’ancien nom d’ensemble de données sont supprimés.
Ensuite, deux mots de passe sont attribués au nouveau nom de l’ensemble de données.
Si l’ensemble de données n’est pas catalogué, un message est émis indiquant que la macro-instruction LOCATE s’est terminée sans succès.

//ADDPASS  JOB  ...
//STEP1    EXEC PGM=IEHPROGM,PARM='NOPRINT'
//SYSPRINT DD  SYSOUT=A
//DD1      DD  VOLUME=SER=222222,DISP=OLD,
//             UNIT=disk
//SYSIN    DD  *
   RENAME DSNAME=OLD,VOL=disk=222222,NEWNAME=NEW
  DELETEP DSNAME=OLD,PASWORD1=KEY
      ADD DSNAME=NEW,PASWORD2=KEY,TYPE=1,                              X
               DATA='SECONDARY IS READ'
      ADD DSNAME=NEW,PASWORD2=READ,CPASWORD=KEY,TYPE=2,                X
               DATA='ASSIGNED TO J. DOE'
/*

Les déclarations de contrôle d’utilité sont discutées comme suit :

  • RENAME spécifie que l’ensemble de données appelé OLD est renommé NEW.
    L’opérateur doit fournir un mot de passe pour renommer l’ancien ensemble de données.
  • DELETEP spécifie que l’entrée pour le mot de passe KEY est supprimée.
    Étant donné que KEY est un mot de passe de contrôle dans cet exemple, toutes les entrées de mot de passe pour le nom de l’ensemble de données sont supprimées.
    Le paramètre VOL n’est pas nécessaire car l’état de protection de l’ensemble de données tel qu’il est défini dans le DSCB ne doit pas être modifié ; la protection en lecture/écriture est actuellement définie dans le DSCB, et la protection en lecture/écriture est souhaitée lorsque les mots de passe sont réattribués sous le nouveau nom d’ensemble de données.
  • Les instructions ADD spécifient que des entrées sont ajoutées pour les mots de passe KEY et READ. KEY devient le mot de passe de contrôle et permet à la fois l’accès en lecture et en écriture à l’ensemble de données.
    READ devient un mot de passe secondaire et n’autorise qu’un accès en lecture à l’ensemble de données.
    Le paramètre VOL n’est pas nécessaire, car l’état de protection de l’ensemble de données est toujours défini dans le DSCB.

Exemple 6 : Répertorier et remplacer les informations de mot de passe

Dans cet exemple, les informations d’une entrée de mot de passe sont répertoriées.
Ensuite, le mode de protection du mot de passe, l’état de protection de l’ensemble de données et les données utilisateur sont modifiés.

//REPLPASS JOB  ...
//STEP1    EXEC PGM=IEHPROGM,PARM='NOPRINT'
//SYSPRINT DD  SYSOUT=A
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  VOLUME=(PRIVATE,SER=(222222,333333)),
//             UNIT=(disk,,DEFER),DISP=OLD
//SYSIN    DD  *
     LIST   DSNAME=A.B.C,PASWORD1=ABLE
  REPLACE   DSNAME=A.B.C,PASWORD1=ABLE,PASWORD2=ABLE,TYPE=3,            X
             VOL=disk=(222222,333333),                                  X
             DATA='NO SECONDARIES; ASSIGNED TO DEPT 31'
/*

Les déclarations de contrôle d’utilité sont discutées comme suit :

  • LIST spécifie que le compteur d’accès, le mode de protection et les données utilisateur de l’entrée pour le mot de passe ABLE sont répertoriés.
    Le fait de lister l’entrée permet d’enregistrer le contenu du compteur d’accès avant que le compteur ne soit remis à zéro par l’instruction REPLACE.
  • REPLACE spécifie que le mode de protection du mot de passe ABLE doit être modifié pour autoriser à la fois l’accès en lecture et en écriture et que l’état de protection de l’ensemble de données est modifié en protection en écriture seule.
    Le paramètre VOL est obligatoire car l’état de protection du jeu de données est modifié et le jeu de données, dans cet exemple, n’est pas catalogué.
    Comme il s’agit d’un mot de passe de contrôle, le paramètre CPASWORD n’est pas requis.

Exemple 7 : Renommer un membre d’ensemble de données partitionné

Dans cet exemple, un membre d’un ensemble de données partitionnées est renommé.

//REN      JOB  ...
//STEP1    EXEC PGM=IEHPROGM
//SYSPRINT DD  SYSOUT=A
//DD1      DD  VOL=SER=222222,DISP=OLD,UNIT=disk
//SYSIN    DD  *
   RENAME VOL=disk=222222,DSNAME=DATASET,NEWNAME=BC,MEMBER=ABC
/*

Les instructions de contrôle sont discutées comme suit :

  • DD1 DD définit un volume monté en permanence.
  • SYSIN DD définit l’ensemble de données d’entrée, qui suit dans le flux d’entrée.
  • RENAME spécifie que le membre ABC dans l’ensemble de données partitionnées DATASET, qui réside sur un volume de disque, est renommé BC.

JCL – IEHMOVE

Ces exemples illustrent certaines des utilisations de IEHMOVE.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEHMOVE.

Tableau 1. Répertoire d’exemples IEHMOVE

OpérationOrganisation de l’ensemble de
données
DispositifCommentairesExemple
MOVEGroupe d’ensembles de donnéesDisqueLe groupe d’ensembles de données est déplacé.Exemple 1 : Déplacer des ensembles de données séquentiels d’un volume de disque vers des volumes distincts
MOVEpartitionnéDisqueUn ensemble de données partitionné est déplacé ; un membre d’un autre ensemble de données partitionné est fusionné avec lui.Exemple 2 : Déplacer l’ensemble de données partitionnées vers le volume de disque et fusionner
MOVEVolumeDisqueUn volume d’ensembles de données est déplacé vers un volume de disque.Exemple 3 : Déplacer le volume des ensembles de données vers le volume du disque
MOVEpartitionnéDisqueUn ensemble de données est déplacé vers un volume sur lequel de l’espace a été précédemment alloué.Exemple 4 : Déplacer l’ensemble de données partitionné vers l’espace alloué
MOVEpartitionnéDisqueTrois ensembles de données sont déplacés et déchargés vers un volume sur lequel de l’espace a été précédemment alloué.Exemple 5 : déplacer et décharger le volume d’ensembles de données partitionnés
MOVESéquentielDisque et bandeUn ensemble de données séquentielles est déchargé sur un volume de bande à 9 pistes sans étiquette.Exemple 6 : Décharger un jeu de données séquentiel sur un volume de bande sans étiquette
MOVESéquentielDisque et bandeLes ensembles de données déchargés sont chargés à partir d’un seul volume.Exemple 7 : charger des ensembles de données séquentielles déchargées à partir d’une bande étiquetée
MOVESéquentielDisqueLe volume source est démonté une fois la tâche terminée. Deux disques montables.Exemple 8 : Déplacer un groupe d’ensembles de données catalogués

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.

Exemples

Exemple 1 : Déplacer des ensembles de données séquentiels d’un volume de disque vers des volumes distincts

Dans cet exemple, trois ensembles de données séquentiels (SEQSET1, SEQSET2 et SEQSET3) sont déplacés d’un volume de disque vers trois volumes de disque distincts.
Chacun des trois volumes de réception est monté lorsque requis par IEHMOVE.
Les ensembles de données source ne sont pas catalogués. L’espace est alloué par IEHMOVE.

//MOVEDS   JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=333333,DISP=OLD
//DD1      DD  UNIT=(disk,,DEFER),DISP=OLD,
//             VOLUME=(PRIVATE,,SER=(222222))
//DD2      DD  UNIT=(disk,,DEFER),DISP=OLD,
//             VOLUME=(PRIVATE,,SER=(222333))
//DD3      DD  UNIT=(disk,,DEFER),DISP=OLD,
//             VOLUME=(PRIVATE,,SER=(222444))
//DD4      DD  VOLUME=(PRIVATE,RETAIN,SER=(444444)),
//             UNIT=disk,DISP=OLD
//SYSIN    DD  *
     MOVE   DSNAME=SEQSET1,TO=disk=222222,FROM=disk=444444
     MOVE   DSNAME=SEQSET2,TO=disk=222333,FROM=disk=444444
     MOVE   DSNAME=SEQSET3,TO=disk=222444,FROM=disk=444444
/*

Les instructions de contrôle sont discutées comme suit :

  • SYSUT1 DD définit le périphérique de disque qui doit contenir l’ensemble de données de travail.
  • DD1, DD2 et DD3 DD définissent les volumes de réception.
  • DD4 DD définit un périphérique sur lequel le volume source est monté.
    Comme le sous-paramètre RETAIN est inclus, le volume reste monté jusqu’à ce que la tâche soit terminée.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE déplace les ensembles de données source vers les volumes 222222, 222333 et 222444, respectivement.
    Les ensembles de données source sont rayés.

Exemple 2 : Déplacer l’ensemble de données partitionnées vers le volume de disque et fusionner

Dans cet exemple, un ensemble de données partitionné (PARTSET1) est déplacé vers un volume de disque.
De plus, un membre (PARMEM3) d’un autre ensemble de données partitionné (PARTSET2) est fusionné avec les membres source sur le volume de réception.
L’ensemble de données partitionnées source (PARTSET1) est rayé. L’espace est alloué par IEHMOVE.

//MOVEPDS  JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=333000,DISP=OLD
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  UNIT=disk,VOLUME=SER=222111,DISP=OLD
//DD3      DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD4      DD  UNIT=disk,VOLUME=SER=222333,DISP=OLD
//SYSIN    DD  *
     MOVE   PDS=PARTSET1,TO=disk=222333,FROM=disk=222111
  INCLUDE   DSNAME=PARTSET2,MEMBER=PARMEM3,FROM=disk=222222
/*

Les instructions de contrôle sont discutées comme suit :

  • SYSUT1 DD définit le volume de disque qui doit contenir l’ensemble de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • Les instructions DD2, DD3 et DD4 DD définissent les périphériques qui doivent contenir les deux volumes source et le volume de réception.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE définit l’ensemble de données partitionné source, le volume qui le contient et son volume de réception.
  • INCLUDE inclut un membre d’un deuxième ensemble de données partitionnées dans l’opération.

Exemple 3 : Déplacer le volume d’ensembles de données vers le volume de disque

Dans cet exemple, un volume d’ensembles de données est déplacé vers un volume de disque.
Tous les ensembles de données déplacés avec succès sont supprimés du volume source ;
cependant, les entrées de catalogue appartenant à ces ensembles de données ne sont pas modifiées.
L’espace est alloué par IEHMOVE.

//MOVEVOL  JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD3      DD  UNIT=disk,VOLUME=SER=333333,DISP=OLD
//SYSIN    DD  *
         MOVE   VOLUME=disk=333333,TO=disk=222222,PASSWORD
/*

Les instructions de contrôle sont décrites comme suit :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit le périphérique sur lequel le volume de réception est monté.
  • DD3 DD définit un périphérique sur lequel le volume source est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE spécifie une opération de déplacement pour un volume d’ensembles de données et définit les volumes source et récepteur.
    Cette déclaration indique également que des ensembles de données protégés par mot de passe sont inclus dans l’opération.

Exemple 4 : Déplacer l’ensemble de données partitionné vers l’espace alloué

Dans cet exemple, un ensemble de données partitionné est déplacé vers un volume de disque sur lequel de l’espace a été précédemment alloué pour l’ensemble de données.
L’ensemble de données source est barré.

//MOVEPDS  JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD3      DD  UNIT=disk,VOLUME=SER=333333,DISP=OLD
//SYSIN    DD  *
         MOVE   PDS=PDSSET1,TO=disk=222222,FROM=disk=333333
/*

Les instructions de contrôle sont décrites comme suit :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit l’appareil sur lequel le volume de réception doit être monté.
  • DD3 DD définit un périphérique sur lequel le volume source est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE spécifie une opération de déplacement pour l’ensemble de données partitionnées PDSSET1 et définit les volumes source et récepteur.

Exemple 5 : Déplacer et décharger un volume d’ensembles de données partitionnés

Dans cet exemple, trois ensembles de données partitionnés sont déplacés de trois volumes source distincts vers un volume de disque.
L’ensemble de données source PDSSET3 est déchargé.
La taille de l’enregistrement dépasse la capacité des pistes du volume de réception.

//MOVEPDS  JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  UNIT=(disk,,DEFER),DISP=OLD,
//             VOLUME=(PRIVATE,,SER=(333333))
//DD3      DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//SYSIN    DD  *
    MOVE  PDS=PDSSET1,TO=disk=222222,FROM=disk=333333
    MOVE  PDS=PDSSET2,TO=disk=222222,FROM=disk=222222
    MOVE  PDS=PDSSET3,TO=disk=222222,FROM=disk=444444,UNLOAD
/*

PDSSET1, PDSSET2 et PDSSET3 sont déjà alloués sur le volume de réception.
PDSSET3 est alloué en tant qu’ensemble de données séquentiel ; PDSSET1 et PDSSET2 sont alloués en tant qu’ensembles de données partitionnés.
Étant donné que PDSSET3 est déplacé vers un ensemble de données séquentiel, il est déchargé.

Les attributs DCB de PDSSET3 sont :

DCB=(RECFM=U,BLKSIZE=5000)

Les attributs déchargés sont :

DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

Les instructions de contrôle sont décrites comme suit :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel les volumes source sont montés selon les besoins.
  • DD3 DD définit un périphérique sur lequel le volume de réception est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE spécifie les opérations de déplacement pour les ensembles de données partitionnés et définit les volumes source et récepteur pour chaque ensemble de données.

Exemple 6 : déchargement d’un jeu de données séquentiel sur un volume de bande sans étiquette

Dans cet exemple, un ensemble de données séquentielles est déchargé sur un volume de bande non étiqueté à 9 pistes (800 bits par pouce).

//UNLOAD   JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//TAPEOUT  DD  UNIT=tape,VOLUME=SER=SCRCH2,DISP=OLD,
//             DCB=(DEN=2,RECFM=FB,LRECL=80,BLKSIZE=800),
//             LABEL=(,NL)
//SYSIN    DD  *
    MOVE DSNAME=SEQSET1,TO=tape=SCRCH2,
FROM=disk=222222,TODD=TAPEOUT
/*

Les instructions de contrôle sont discutées comme suit :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel le volume source est monté.
  • TAPEOUT DD définit un périphérique sur lequel le volume de bande récepteur est monté.
    Cette instruction fournit également des informations sur l’étiquette et le mode.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE déplace l’ensemble de données séquentielles SEQSET1 d’un volume de disque vers le volume de bande récepteur.
    L’ensemble de données est déchargé. Le paramètre TODD de cette instruction fait référence à l’instruction TAPEOUT DD pour les informations d’étiquette et de mode.

Exemple 7 : Chargement d’ensembles de données séquentiels déchargés à partir d’une bande étiquetée

Dans cet exemple, trois ensembles de données séquentielles déchargées sont chargées à partir d’un volume de bande étiqueté à 7 pistes (556 bits par pouce) vers un volume de disque.
L’espace est alloué par IEHMOVE.
L’exemple suppose que le volume de disque est capable de prendre en charge les ensembles de données dans leurs formes d’origine.

//LOAD     JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//TAPESETS DD  UNIT=tape,VOLUME=SER=001234,DISP=OLD,
//             LABEL=(1,SL),DCB=(DEN=1,TRTCH=C)
//SYSIN    DD  *
         MOVE   DSNAME=UNLDSET1,T0=disk=222222,             X
               FROM=tape=(001234,1),FROMDD=TAPESETS
         MOVE   DSNAME=UNLDSET2,TO=disk=222222,             X
               FROM=tape=(001234,2),FROMDD=TAPESETS
         MOVE   DSNAME=UNLDSET3,TO=disk=222222,             X
               FROM=tape=(001234,3),FROMDD=TAPESETS
/*

Les instructions de contrôle sont décrites comme suit :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel le volume de réception est monté.
  • TAPESETS DD définit un périphérique sur lequel le volume de bande source est monté.
    Les informations DCB sont fournies dans cette déclaration.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE déplace les ensembles de données déchargés vers le volume de réception.
  • Pour déplacer un ensemble de données d’un volume de bande contenant plusieurs ensembles de données, vous devez spécifier le numéro de séquence de l’ensemble de données dans la zone de liste du paramètre FROM de l’instruction de contrôle de l’utilitaire.

Exemple 8 : Déplacer un groupe d’ensembles de données catalogués

Dans cet exemple, le groupe d’ensembles de données catalogués ABC, qui comprend les ensembles de données ABCX, ABCY et ABCZ, est déplacé de deux volumes de disque vers un troisième volume.
L’espace est alloué par IEHMOVE.
Le catalogue est mis à jour pour faire référence au volume de réception.
Les ensembles de données source sont rayés.

//MOVEDSG  JOB  ...
//STEP1    EXEC PGM=IEHMOVE
//SYSPRINT DD  SYSOUT=A
//SYSUT1   DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD1      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//DD2      DD  UNIT=disk,VOLUME=SER=222222,DISP=OLD
//DD3      DD  UNIT=disk,VOLUME=SER=333333,DISP=OLD
//DD4      DD  UNIT=disk,VOLUME=SER=444444,DISP=OLD
//SYSIN    DD  *
         MOVE   DSGROUP=A.B.C,TO=disk=222222
/*

Les instructions de contrôle sont discutées comme suit :

  • SYSUT1 DD définit l’appareil qui doit contenir le jeu de données de travail.
  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel le volume de réception est monté.
  • DD3 DD définit un périphérique sur lequel l’un des volumes source est monté.
  • DD4 DD définit un périphérique sur lequel l’un des volumes source est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • MOVE déplace les ensembles de données spécifiés vers le volume 222222.
  • Cet exemple peut être utilisé pour produire le même résultat sans l’utilisation de l’instruction DD4 DD, en utilisant un périphérique de disque montable de moins.
    Avec DD3 et DD4, les deux volumes source sont montés au début de la tâche.
    Avec DD3 uniquement, le volume 333333 est monté au début de la tâche.
    Une fois le volume 333333 traité, l’utilitaire demande à l’opérateur de monter le volume 444444.
    Dans ce cas, l’instruction DD3 est codée :
//DD3 DD UNIT=(disque,,DEFER),DISP=OLD, 
// VOLUME=(PRIVATE,,SER=(333333))

JCL – IEHLIST

Ces exemples illustrent certaines des utilisations de IEHLIST.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEHLIST.

Tableau 1. Répertoire d’exemples IEHLIST

OpérationDispositifCommentairesExemple
LISTEPDSDisque et périphérique de sortie systèmeUn répertoire PDSE et deux répertoires d’ensembles de données partitionnés sont répertoriés.Exemple 1 : Répertorier les répertoires partitionnés à l’aide de DUMP et FORMAT
LISTEVTOCDisque et périphérique de sortie systèmeLa table des matières du volume est répertoriée sous forme éditée; les blocs de contrôle d’ensemble de données sélectionnés sont répertoriés sous une forme non éditée.Exemple 2 : Lister la table des matières des volumes non indexés
Tableau 1. Répertoire d’exemples IEHLIST 

Les exemples qui utilisent le disque à la place des numéros ou des noms de périphériques réels doivent être modifiés avant utilisation.
Les numéros ou noms de périphériques réels dépendent de la façon dont votre installation a défini les périphériques sur votre système.

EXEMPLES

Exemple 1 : Répertorier les répertoires partitionnés à l’aide de DUMP et FORMAT

Dans cet exemple, le répertoire d’un PDSE est répertorié.
En outre, les répertoires de deux ensembles de données partitionnés qui résident sur le volume de résidence du système sont répertoriés.

//LISTPDIR JOB  ...
//STEP1    EXEC PGM=IEHLIST
//SYSPRINT DD  SYSOUT=A
//DD1      DD  UNIT=diskB,VOLUME=REF=SYS1.NUCLEUS,DISP=OLD
//DD2      DD  UNIT=diskA,VOLUME=SER=222222,DISP=OLD
//SYSIN    DD  *
      LISTPDS   DSNAME=D42.PDSE1,VOL=diskA=222222
      LISTPDS   DSNAME=(D55.PART1,D55.PART2),FORMAT
/*

Les instructions de contrôle sont les suivantes :

  • DD1 DD définit le dispositif de résidence du système.
  • DD2 DD définit un périphérique sur lequel un volume de disque (222222) est monté.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • La première instruction LISTPDS indique que le répertoire PDSE appartenant à l’ensemble de données D42.PDSE1 doit être listé.
    La liste est dans un format non édité (dump). Cet ensemble de données réside sur le volume 222222.
  • La deuxième instruction LISTPDS indique que les répertoires d’ensembles de données partitionnés appartenant aux ensembles de données D55.PART1 et D55.PART2 doivent être répertoriés.
    La liste est au format modifié. Ces ensembles de données existent sur le volume de résidence du système.
  • La liste non modifiée d’un ensemble de données partitionnées affiche une entrée non modifiée pour un membre partitionné.
    L’entrée modifiée d’un membre partitionné affiche une entrée modifiée.

Exemple 2 : Lister la table des matières d’un volume non indexé

Dans cet exemple, une table des matières de volume non indexé est répertoriée dans le premier format modifié.
La liste éditée est complétée par une liste non éditée de blocs de contrôle d’ensembles de données sélectionnés.

//VTOCLIST JOB  ...
//STEP1    EXEC PGM=IEHLIST
//SYSPRINT DD  SYSOUT=A
//DD2      DD  UNIT=disk,VOLUME=SER=111111,DISP=OLD
//SYSIN    DD  *
     LISTVTOC   FORMAT,VOL=disk=111111
     LISTVTOC   DUMP,VOL=disk=111111,DSNAME=(SET1,SET2,SET3)
/*

Les instructions de contrôle sont les suivantes :

  • DD2 DD définit un périphérique contenant la table des matières du volume spécifié.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • La première instruction LISTVTOC indique que la table des matières du volume sur le volume de disque spécifié doit être répertoriée sous forme modifiée.
  • La deuxième instruction LISTVTOC indique que les blocs de contrôle d’ensemble de données représentant les ensembles de données SET1, SET2 et SET3 doivent être répertoriés sous une forme non éditée.

JCL – IEHINITT

Ces exemples illustrent certaines des utilisations de IEHINITT.
Vous pouvez utiliser le tableau 1 comme guide de référence rapide pour les exemples IEHINITT.

Tableau 1. Répertoire d’exemples IEHINITT

OpérationCommentairesExemple
LABELTrois bandes 9 pistes sont à étiqueter.Exemple 1 : écriture d’étiquettes EBCDIC sur trois bandes
LABELUne bande 9 pistes doit être étiquetée en ISO/ANSI.Exemple 2 : écriture d’une étiquette ISO/ANSI sur une bande
LABELDeux groupes de volumes de bande 9 pistes doivent être étiquetés.Exemple 3 : placer deux groupes de numéros de série sur six volumes de bande
LABELLes volumes de bande 9 pistes doivent être étiquetés. Les numéros de séquence doivent être incrémentés de 10.Exemple 4 : placer le numéro de série sur huit volumes de bande
LABELTrois volumes de bande 9 pistes doivent être étiquetés. Une étiquette alphanumérique doit être apposée sur un volume de bande ; des étiquettes numériques sont placées sur les deux volumes de bande restants.Exemple 5 : écrire des étiquettes EBCDIC dans différentes densités
LABELDeux volumes de bande 9 pistes doivent être étiquetés. Le premier volume est étiqueté à une densité de 6250 bpi ; le second à une densité de 1600 bpi.Exemple 6 : Écrire des numéros de série sur des volumes de bande à deux densités
LABELUn volume de bande à 9 pistes est étiqueté au format ISO/ANSI avec un code d’accès non vierge.Exemple 7 : Écrire une étiquette ISO/ANSI avec un code d’accès

Les exemples qui utilisent une bande à la place des numéros de périphérique réels doivent être modifiés avant utilisation.
Les numéros de périphérique réels dépendent de la manière dont votre installation a défini les périphériques sur votre système.

Exemples

Exemple 1 : Ecrire des étiquettes EBCDIC sur trois bandes

Dans cet exemple, les numéros de série 001234, 001235 et 001236 sont placés sur trois volumes de bande.
Les étiquettes sont écrites en EBCDIC à 800 bits par pouce.
Chaque volume étiqueté est monté, lorsque cela est nécessaire, sur une seule unité de bande 9 pistes.

//LABEL1   JOB  ...
//STEP1    EXEC PGM=IEHINITT
//SYSPRINT DD  SYSOUT=A
//LABEL    DD  DCB=DEN=2,UNIT=(tape,1,DEFER)
//SYSIN    DD  *
LABEL   INITT  SER=001234,NUMBTAPE=3
/*

Les instructions de contrôle sont les suivantes :

  • LABEL DD définit l’unité de bande utilisée dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • LABEL INITT spécifie le nombre de bandes à étiqueter (3), en commençant par 001234.

Exemple 2 : Écrire une étiquette ISO/ANSI sur une bande

Dans cet exemple, le numéro de série 001001 est placé sur un volume de bande ISO/ANSI ; l’étiquette est écrite à 800 bits par pouce.
Le volume étiqueté est monté, si nécessaire, sur une unité de bande 9 pistes.

//LABEL2   JOB  ...
//STEP1    EXEC PGM=IEHINITT
//SYSPRINT DD  SYSOUT=A
//ASCIILAB DD  DCB=DEN=2,UNIT=(tape,1,DEFER)
//SYSIN    DD  *
ASCIILAB INITT   SER=001001,OWNER='SAM A. BROWN',LABTYPE=AL
/*

Les instructions de contrôle sont les suivantes :

  • ASCIILAB DD définit le volume de bande à utiliser dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • ASCIILAB INITT spécifie le numéro de série, l’ID du propriétaire et le type d’étiquette du volume.
    Étant donné que le mot clé VERSION n’a pas été spécifié, la bande ISO/ANSI sera créée en fonction de ce qui est spécifié dans le membre parmlib DEVSUPxx ou en tant que version 3 par défaut.

Exemple 3 : Placement de deux groupes de numéros de série sur six volumes de bande

Dans cet exemple, deux groupes de numéros de série (001234, 001235, 001236 et 001334, 001335, 001336) sont placés sur six volumes de bande.
Les étiquettes sont écrites en EBCDIC à 800 bits par pouce.
Chaque volume étiqueté est monté, lorsque cela est nécessaire, sur une seule unité de bande 9 pistes.

//LABEL3   JOB  ...
//STEP1    EXEC PGM=IEHINITT
//SYSPRINT DD  SYSOUT=A
//LABEL    DD  DCB=DEN=2,UNIT=(tape,1,DEFER)
//SYSIN    DD  *
LABEL   INITT   SER=001234,NUMBTAPE=3
LABEL   INITT   SER=001334,NUMBTAPE=3
/*

Les instructions de contrôle sont les suivantes :

  • LABEL DD définit l’unité de bande à utiliser dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • LABEL INITT définit les deux groupes de numéros de série à mettre sur six volumes de bande.

Exemple 4 : Placer le numéro de série sur huit volumes de bande

Dans cet exemple, les numéros de série 001234, 001244, 001254, 001264, 001274, etc., sont placés sur huit volumes de bande.
Les étiquettes sont écrites en EBCDIC à 800 bits par pouce.
Chaque volume étiqueté est monté, lorsque cela est nécessaire, sur l’une des quatre unités de bande à 9 pistes.

//LABEL4   JOB  ...
//STEP1    EXEC PGM=IEHINITT
//SYSPRINT DD  SYSOUT=A
//LABEL    DD  DCB=DEN=2,UNIT=(tape,4,DEFER)
//SYSIN    DD  *
LABEL   INITT   SER=001234
LABEL   INITT   SER=001244
LABEL   INITT   SER=001254
LABEL   INITT   SER=001264
LABEL   INITT   SER=001274
LABEL   INITT   SER=001284
LABEL   INITT   SER=001294
LABEL   INITT   SER=001304
/*

Les instructions de contrôle sont les suivantes :

  • LABEL DD définit l’unité de bande utilisée dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • Les instructions LABEL INITT définissent les bandes à étiqueter par numéro de série de volume.

Exemple 5 : Écrire des étiquettes EBCDIC dans différentes densités

Dans cet exemple, le numéro de série TAPE1 est placé sur un volume de bande et les numéros de série 001234 et 001235 sont placés sur deux volumes de bande.
Les étiquettes sont écrites en EBCDIC à 800 et 1600 bits par pouce, respectivement

//LABEL5   JOB  ...
//STEP1    EXEC PGM=IEHINITT
//SYSPRINT DD  SYSOUT=A
//LABEL1   DD  DCB=DEN=2,UNIT=(tape,1,DEFER)
//LABEL2   DD  DCB=DEN=3,UNIT=(tape,1,DEFER)
//SYSIN    DD  *
LABEL1  INITT   SER=TAPE1
LABEL2  INITT   SER=001234,NUMBTAPE=2
/*

Les instructions de contrôle sont les suivantes :

  • LABEL1 DD et LABEL2 DD définissent deux volumes de bande à utiliser dans l’opération d’étiquetage.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • LABEL1 INITT place le numéro de série TAPE1 sur le volume de bande défini dans LABEL1 DD.
    LABEL2 INITT place les numéros de série 001234 et 001235 sur le volume de bande défini dans LABEL2 DD.

Exemple 6 : Ecrire des numéros de série sur des volumes de bande à deux densités

Dans cet exemple, le numéro de série 006250 est écrit en EBCDIC sur un volume de bande à une densité de 6250 bpi, et le numéro de série 001600 est écrit en EBCDIC sur un second volume à une densité de 1600 bpi.

//LABEL6   JOB  ...
//STEP1    EXEC PGM=IEHINITT
//SYSPRINT DD  SYSOUT=A
//DDFIRST  DD  DCB=DEN=4,UNIT=(tape,1,DEFER)
//DDSECOND DD  DCB=DEN=3,UNIT=(tape,1,DEFER)
//SYSIN    DD  *
DDFIRST  INITT  SER=006250
DDSECOND INITT  SER=001600
/*

Les instructions de contrôle sont les suivantes :

  • DDFIRST DD définit le premier volume de bande à utiliser.
  • DDSECOND DD définit le deuxième volume de bande à utiliser.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • DDFIRST INITT écrit le numéro de série 006250 sur le volume défini dans DDFIRST DD.
    DDSECOND INITT écrit le numéro de série 001600 sur le volume défini dans DDSECOND DD.

Exemple 7 : Écrire une étiquette ISO/ANSI avec un code d’accès

Dans cet exemple, une bande étiquetée ISO/ANSI (AL) version 4 est créée avec un code d’accès non vierge.
Le numéro de série du volume est TAPE01.

//LABEL7   JOB  ...
//STEP1    EXEC PGM=IEHINITT
//SYSPRINT DD  SYSOUT=A
//LABEL    DD  UNIT=(tape,1,DEFER),DCB=DEN=4
//SYSIN    DD  *
LABEL  INITT  SER=TAPE01,OWNER=TAPOWNER,LABTYPE=AL,ACCESS=A,VERSION 4
/*

Les instructions de contrôle sont les suivantes :

  • LABEL DD définit le périphérique sur lequel la bande est montée.
  • SYSIN DD définit l’ensemble de données de contrôle, qui suit dans le flux d’entrée.
  • L’instruction INITT crée une étiquette ISO/ANSI Version 4 pour la bande avec le numéro de série de volume TAPE01, propriété de TAPOWNER.
    Le code d’ACCÈS est spécifié comme A, et le système d’exploitation qui reçoit ce volume doit être capable de reconnaître le A pour que le volume soit accepté.

Exemple 8 : Ecrire sur une bande après étiquetage sans démontage et remontage

Dans cet exemple, vous pouvez étiqueter une bande dans une étape d’un travail, puis, sans que le système démonte et remonte cette bande entre les étapes, écrivez sur la bande dans une étape suivante du même travail.
Le code JCL nécessaire suit :

     //STEP1     EXEC PGM=IEHINITT
     //SYSPRINT  DD  SYSOUT=*
(1)  //LABEL     DD  UNIT=(tape,1,DEFER),DISP=(,PASS)
     //SYSIN     DD    *
(2)  LABEL   INITT  SER=serial,DISP=REWIND
     //*
     //STEP2   EXEC PGM=user_program
     //INPUT   DD  DSN=input_dsn,DISP=SHR
     //OUTPUT  DD  DSN=dsname,DISP=(NEW,CATLG),
     //             DCB=(dcbinfo),
(3)  //             UNIT=tape,VOL=(,RETAIN,SER=serial)
Notes:
     (1) DISP=(NEW,PASS) ou VOL=(,RETAIN) doit être spécifié.
     (2) DISP=REWIND doit être spécifié dans l'instruction INITT.
     (3) VOL=SER=serial doit être spécifié.
         VOL=REF=*.STEP1.LABEL ne fonctionnera pas.

Exemple 9 : Rekey un volume de bande

Dans cet exemple, un volume de bande SL1000 doit être recréé avec deux étiquettes de clé.

//TAPEJOB	JOB	…
//STEP1	EXEC	PGM=IEHINITT
//SYSPRINT	DD	SYSOUT=A
//REKEY1	DD	UNIT=(TAPE,1,DEFER)
//SYSIN	DD	*
  REKEY1	REKEY	SER=SL1000,
		KEYLABL1=firstkeylabel,KEYENCD1=L,
		KEYLABL2=secondkeylabel,KEYENCD2=H
/*

Exemple 10 : plusieurs bandes spécifiées pour le mot clé SER

Dans cet exemple, cinq volumes de bande doivent être recréés avec les mêmes étiquettes de clé.

//TAPEJOB	JOB	…
//STEP1	EXEC	PGM=IEHINITT
//SYSPRINT	DD	SYSOUT=A
//REKEY2	DD	UNIT=(TAPE,1,DEFER)
//SYSIN	DD	*
  REKEY2	REKEY	SER=( AL1000,AL2000,AL3000,AL4000,AL5000),
		KEYLABL1=firstkeylabel,KEYENCD1=L,
		KEYLABL2=secondkeylabel,KEYENCD2=H
/*

Exemple 11 : Trois bandes avec NUMBTAPE spécifié

Dans cet exemple, trois volumes de bande 001200, 001201 et 001202 doivent être recréés avec les mêmes étiquettes de clé.

//TAPEJOB	JOB	…
//STEP1	EXEC	PGM=IEHINITT
//SYSPRINT	DD	SYSOUT=A
//REKEY3	DD	UNIT=(TAPE,1,DEFER)
//SYSIN	DD	*
  REKEY3	REKEY	SER=001200,NUMBTAPE=3,
		KEYLABL1=firstkeylabel,KEYENCD1=L,
		KEYLABL2=secondkeylabel,KEYENCD2=H
/*

Exemple 12 : Instructions de contrôle REKEY multiples

Dans cet exemple, deux volumes de bande, 005000 et SL8000, doivent être recréés.
Chaque volume de bande doit être recréé avec un ensemble différent d’étiquettes de clé et de mécanismes de codage.

//TAPEJOB	JOB	…
//STEP1	EXEC	PGM=IEHINITT
//SYSPRINT	DD	SYSOUT=A
//REKEY4	DD	UNIT=(TAPE,1,DEFER)
//REKEY5	DD	UNIT=(TAPE)
//SYSIN	DD	*
  REKEY4	REKEY	SER=005000,												
                        KEYLABL1=firstkeylabel,KEYENCD1=L,
		        KEYLABL2=secondkeylabel,KEYENCD2=H
  REKEY5	REKEY	SER=SL8000, 
		        KEYLABL1=differentfirstkeylabel,KEYENCD1=L,
      		        KEYLABL2=differentsecondkeylabel,KEYENCD2=H
/*

Exemple 13 : Instructions de contrôle multiples avec NUMBTAPE

Dans cet exemple, trois volumes de bande 001200, 001201 et 001202 doivent être recréés avec les mêmes étiquettes de clé spécifiées pour la première instruction de contrôle REKEY avec NUMBTAPE spécifié.
La deuxième instruction de contrôle spécifie qu’une bande SL8000 doit être réenregistrée avec différentes étiquettes de clé.
Notez que KEYLABL2 et son KEYENCD2 associé sont omis, ainsi les mêmes valeurs d’étiquette de clé et de mécanisme de codage spécifiées pour les mots-clés KEYLABL1 et KEYENCD1 sont utilisées pour les deux étiquettes de clé.

//TAPEJOB	JOB	…
//STEP1	EXEC	PGM=IEHINITT
//SYSPRINT	DD	SYSOUT=A
//REKEY6	DD	UNIT=(TAPE,1,DEFER)
//REKEY7	DD	UNIT=(TAPE)
//SYSIN	DD	*
  REKEY6	REKEY	SER=001200,NUMBTAPE=3,
			KEYLABL1=firstkeylabel,KEYENCD1=L,
			KEYLABL2=secondkeylabel,KEYENCD2=H
  REKEY7	REKEY	SER=SL8000, 
		        KEYLABL1=differentfirstkeylabel,KEYENCD1=L,
/*

Exemple 14 : Impression des spécifications de l’instruction INITT et des informations sur l’étiquette de volume initial

Dans cet exemple, une impression apparaît d’un ensemble de données de message comprenant l’instruction INITT et les informations d’étiquette de volume initiales.
Une instruction INITT a été utilisée pour placer les numéros de série 001122 et 001123 sur deux volumes de bande d’étiquettes standard.
VOL1001122 et VOL1001123 sont interprétés comme suit :

  • VOL1 indique qu’une étiquette de volume initiale a été écrite avec succès sur un volume de bande.
  • 001122 et 001123 sont les numéros de série qui ont été écrits sur les volumes.
  • Un espace vide après le numéro de série représente le champ Volume Security, qui n’est pas utilisé pendant le traitement OPEN/CLOSE/EOV sur une bande d’étiquettes standard.
  • Aucune erreur ne s’est produite lors du traitement.
SYSTEM SUPPORT UTILITIES   IEHINITT
 
ALL  INITT  SER=001122,NUMBTAPE=2,OWNER='P.T.BROWN',DISP=REWIND
 
VOL1001122                 P.T.BROWN
VOL1001123                 P.T.BROWN

JCL – IEFBR14

Utilitaire IEFBR14 : Ne (presque) rien faire

  • L’utilitaire IEFBR14 : ne fait (presque) rien
  • Gestion des données et du stockage sur z/OS
  • Le programme utilitaire IEFBR14 n’entreprend aucune action autre que de renvoyer un code d’achèvement de 0 ; cependant, “l’exécution” de cet utilitaire appelle d’autres composants système qui exécutent des tâches utiles.
  • Par exemple, si vous soumettez JCL pour exécuter IEFBR14, le planificateur de travaux z/OS vérifie la présence d’erreurs de syntaxe dans vos instructions JCL.
    Si votre JCL contient des instructions de définition de données (DD), l’initiateur z/OS alloue de l’espace pour les nouveaux ensembles de données et effectue le traitement de colocalisation pour tous les ensembles de données.

Le JCL suivant pour le travail nommé SMITH1 accomplit plusieurs tâches, même si IEFBR14 ne fait que renvoyer 0 :

//SMITH1 JOB 1,LEO,MSGCLASS=X
//       EXEC PGM=IEFBR14
//NEWDS  DD DSN=SMITH.LIB.CNTL,DISP=(NEW,CATLG),VOL=SER=WORK02,
//   UNIT=3390,SPACE=(CYL,(3,1,25)
//OLDDS  DD DSN=SMITH.OLD.DATA,DISP=(OLD,DELETE)
  • Le planificateur de travaux z/OS pour vérifier si vos instructions JCL contiennent des erreurs de syntaxe.
  • L’initiateur alloue le nouveau jeu de données défini par NEWDS (SMITH.LIB.CNTL) et conserve le jeu de données à la fin du job.
  • L’initiateur supprime également un ancien jeu de données défini par OLDDS (SMITH.OLD.DATA) à la fin du travail.

Les mêmes fonctions pour créer un ensemble de données et en supprimer un autre peuvent être effectuées via ISPF, par exemple, mais ces actions peuvent être nécessaires dans le cadre d’une séquence plus importante de travaux par lots.

Remarque : Cette explication du nom IEFBR14 peut vous aider à vous souvenir de ce que fait cet utilitaire… Un groupe IBM® écrivant le code OS/360 ancien utilisait le préfixe « IEF » pour tous ses modules de code.
En langage assembleur, “BR” signifie branche à l’adresse dans un registre.
Le branchement à l’adresse dans le registre général 14 est la manière standard de terminer un programme.