IEBCOPY

aus Wikipedia, der freien Enzyklopädie

IEBCOPY ist ein Hilfsprogramm, welches in IBM-Großrechnerbetriebssystemen seit OS/360 verwendet wird, wenn mittels JCL Dateioperationen auf Partitioned Datasetset (PDS oder PDSE, sowohl V1 als auch V2) vorgenommen werden sollen. Das Programm gehört in die Gruppe einer ganzen Reihe von Hilfsprogrammen (sogenannte Utility) zur Dateibearbeitung wie IEBGENER, IDCAMS und IEBUPDTE.

Funktionalität

  • Umwandeln eines PDS/PDSE in eine sequentielle Datei für eine Datensicherung oder Übertragungszwecke
  • Durchführung eines sogenannten "Compress" auf eine PDS Datei. Dabei wird Platz, welcher durch Löschung einzelner Member freigeworden ist, zur erneuten Verwendung freigegeben. Dieser PDS-Datei spezifische Vorgang darf nicht mit einer Datenkompression verwechselt werden. Für PDSE-Dateien spielt dieser "Compress" keine Rolle mehr, da PDSE-Dateien intern anders organisiert sind.
  • Kopieren einzelner Member einer PDS-/PDSE-Datei
  • Kopieren einer kompletten PDS-/PDSE-Datei
  • Zusammenfassen mehrerer PDS-/PDSE-Dateien zu einer einzelnen PDS-Datei
  • Für Sonderfälle: Änderung der Blockstruktur von Lademodulen welche auf einem PDS/PDSE gespeichert sind

Beispiele

Beispiel 1: Partielle PDS Kopie

//JOB1   JOB (12345),MSGCLASS=X,NOTIFY=SYSPROG1
//COPY EXEC PGM=IEBCOPY
//SYSUT1   DD DISP=SHR,DSN=MY.HLQ.TEMP.HUGO
//SYSUT2   DD DISP=SHR,DSN=MY.HLQ.TEMP.HUGO.COPY
//SYSPRINT DD    SYSOUT=*
//SYSIN    DD    *
     COPY INDD=SYSUT1,OUTDD=SYSUT2
     SELECT MEMBER=((TEST5,,R))

Diese JCL kopiert mit IEBCOPY ein Einzelmember namens TEST5 von einer PDS / PDSE Datei mit dem logischen Namen SYSUT1 und dem physischen Namen MY.HLQ.TEMP.HUGO in Ziel PDS / PDSE mit dem logischen Namen SYSUT2 und dem physischen Namen MY.HLQ.TEMP.HUGO.COPY. Quell- und Ziel Dataset müssen existieren (DISP=SHR). Ein bereits im Ziel existierendes Member mit identischem Namen wird überschrieben (Subparameter R, siehe Zeile 8).

Beispiel 2: Komplette PDSE Kopie inklusive Memberversionen

//JOB1   JOB (12345),MSGCLASS=X,NOTIFY=SYSPROG1
//COPY EXEC PGM=IEBCOPY
//SYSUT1   DD DSN=MY.HLQ.TEMP.HUGO,DISP=SHR
//SYSUT2   DD DSN=MY.HLQ.TEMP.HUGO.COPY,
//            DISP=(NEW,CATLG,DELETE),
//            SPACE=(CYL,(2,2),RLSE),
//            UNIT=3390,DSNTYPE=(LIBRARY,2),MAXGENS=10,
//            DCB=(DSORG=PO,RECFM=FB,LRECL=80)
//SYSPRINT DD    SYSOUT=*
//SYSIN    DD    *
  COPYGROUP INDD=SYSUT1,OUTDD=SYSUT2,GENS=ALL
/*

Diese JCL kopiert mittels IEBCOPY alle Member von einem Quell PDSE in ein Ziel PDSE. Das Quell PDSE muss existieren (DISP=SHR) während das Ziel PDSE neu angelegt wird (DISP=NEW) und zwar als PDSE/V2, also sogenanntes LIBRARY Format mit maximal 10 Generationen. Beim Kopieren werden von der Quelle neben allen Membern auch alle Generationen je Member (GENS=ALL) mitgenommen. Der Subparameter GENS=ALL wird nur für PDSE/V2 und auch nur bei COPYGROUP unterstützt, nicht aber bei Verwendung des COPY Kommandos.

Historie

  • Einführung IEBCOPY als reines PDS Tool in den 1960er Jahren mit OS/360
  • Erweiterung um PDSE Support mit dessen Einführung 1989
  • Mit Einführung des Betriebssystems z/OS V1 R13 wurde die APF Authorization entfernt und Laufzeitverbesserungen implementiert
  • Mit Einführung des Betriebssystems z/OS V2 R1 wurde die sog. "Copygropup" Syntax zur einfacheren Verarbeitung von Aliassen eingeführt und eine Wildcard Auswahl für Membernamen ermöglicht

Weblinks