Datei kopieren
Komponente: | BS2000 |
Funktionsbereich: | Dateiverarbeitung |
Anwendungsbereich: | FILE |
Privilegierung: | TSOS |
Berechtigungsschlüssel: | $ (bei NBCONOPI=N) bzw. E (bei NBCONOPI=Y) |
Funktionsbeschreibung
Das Kommando COPY-FILE kopiert Dateien, Dateigenerationen oder Dateigenerationsgruppen blockweise, ohne sie zu ändern. Das Kommando kann daher nicht verwendet werden, um Dateimerkmale zu verändern. Es kann zum Beispiel eine SAM-Datei nicht in eine ISAM-Datei umwandeln oder Sätze fester Länge nicht in Sätze mit variabler Länge ändern.
Eine Änderung der Dateieigenschaft BLOCK-CONTROL-INFO kann zugelassen werden (siehe Operand BLOCK-CONTROL-INFO).
Banddateien mit BLOCK-CONTROL-INFO=*PAMKEY müssen das Standard-Blockformat haben, damit sie mit COPY-FILE bearbeitet werden können.
Wenn die Empfangsdatei (Kopie) noch nicht katalogisiert ist, dann wird sie bei Bearbeitung des Kommandos COPY-FILE automatisch auf gemeinschaftlichem Datenträger angelegt (wie bei einem CREATE-FILE mit Standardwerten für die angegebene Empfangsdatei).
Soll die Empfangsdatei auf einem anderen Datenträger (Net-Storage-Volume, Privatplatte oder Band) gespeichert werden, muss sie vor Aufruf des Kommandos COPY-FILE mit dem Kommando CREATE-FILE (Operanden DEVICE-TYPE, VOLUME) eingerichtet werden. Wenn die Empfangsdatei ein SAM-Node-File ist, kann im Kommando CREATE-FILE der Net-Coded-Character-Set vergeben werden. Das ist der Zeichensatz, in dem die Daten des Node-Files auf Net-Storage abgelegt werden. Beim anschließenden Kopieren einer SAM-Datei von Public-Space nach Net-Storage bleibt der Net-Coded-Character-Set der Empfangsdatei erhalten.
Beim Kopieren eines SAM-Node-Files in ein SAM-Node-File wird der Net-Coded-Character-Set der Quelldatei in die Empfangsdatei übernommen. Beim Kopieren eines SAM-Node-Files nach Public-Space wird der Net-Coded-Character-Set nicht in die SAM-Datei auf Public-Space übernommen.
Das Kommando COPY-FILE verwendet als interne Dateikettungsnamen DMCOPY11 (FROM-FILE) und DMCOPY22 (TO-FILE). Beide Dateikettungsnamen werden nach der Verarbeitung wieder freigegeben, auch wenn sie der Benutzer explizit angegeben hatte. Bei Verwendung von Musterzeichen im Dateinamen wird ein existierender TFT-Eintrag daher nur beim Kopieren der ersten zu bearbeitenden Datei wirksam.
Ist die Plattendatei, in die kopiert werden soll, noch nicht katalogisiert, so wird die Primär- und Sekundärzuweisung von der Originalplattendatei übernommen (siehe auch Kommando CREATE-FILE, Operand PRIMARY-ALLOCATION).
Liegt die Originaldatei auf Band, erhält die Empfangsdatei auf der Platte eine Standardzuweisung.
Das Kommando COPY-FILE wird zurückgewiesen, wenn die Empfangsdatei nur gelesen werden darf (ACCESS=READ bzw. kein Schreibrecht bei Schutz mit BASIC-ACL oder GUARDS), bei Kennwortschutz gegen unberechtigtes Schreiben, bei vereinbarter Schutzfrist (EXPIR-DATE > Tagesdatum) oder wenn die Sekundärzuweisung der Ausgabedatei den Wert null hat und die Primärzuweisung nicht ausreicht.
Der Benutzer kann vereinbaren, ob die Schutzmerkmale der Sendedatei in die Empfangsdatei übernommen werden sollen (Operand PROTECTION).
Privilegierte Funktionen
Der Benutzer mit dem Privileg TSOS kann mit dem Operanden IGNORE-PROTECTION explizit den Dateischutz für Quell- und Zieldatei, der ein Kopieren der Datei verhindern würde, umgehen.
Kontrolle bei der Kommandoausführung
Der Benutzer kann die Kommandoausführung kontrollieren. Die Nutzung der Kontrollmöglichkeiten bietet sich besonders bei der Angabe einer Dateimenge (teilqualifizierter Dateiname oder Verwendung von Musterzeichen) an.
Der Operand REPLACE-OLD-FILES steuert, ob eine bereits existierende Zieldatei erst nach einer Kontrollabfrage überschrieben wird.
Der Operand DIALOG-CONTROL steuert, ob mit dem Benutzer ein Kontrolldialog geführt werden soll. Im Operanden OUTPUT kann der Benutzer angeben, ob jeder bearbeitete Dateiname in einer garantierten Meldung nach SYSOUT protokolliert werden soll. Die bearbeiteten Dateinamen können dem Meldungsstrom entnommen werden (siehe Kommando ASSIGN-STREAM, Operand STREAM-NAME=SYSMSG bzw. Kommando EXECUTE-CMD, Operand MSG-STRUCTURE-OUTPUT im Handbuch „SDF-P“ [34]).
Dateigenerationsgruppen
Eine Dateigenerationsgruppe lässt sich nur dann in eine andere Dateigenerationsgruppe kopieren, wenn eine der folgenden Bedingungen erfüllt ist:
Die Gruppeneinträge der beiden Dateigenerationsgruppen stimmen überein (d.h. im Katalogeintrag sind die Werte von MAXIMUM, FIRST-GEN, LAST-GEN und BASE-NUM gleich). Für die Dateigenerationsgruppe, in die das DVS die Kopie schreibt, müssen bereits die Generationen von FIRST-GEN bis LAST-GEN katalogisiert sein.
Der Wert von MAXIMUM ist für beide Dateigenerationsgruppen gleich und die Dateigenerationsgruppe, in die das DVS die Kopie schreibt, enthält noch keine Generation (d.h. im Katalogeintrag haben die Felder FIRST-GEN, LAST-GEN und BASE-NUM den Wert null).
Eine zu kopierende Dateigenerationsgruppe darf keine Generationen auf Band enthalten.
Nur eine Dateigenerationsgruppe, die aus SAM-Dateigenerationen mit gleichen Eigenschaften (z.B. gleiche Satz- und Blocklänge, gleiches Satzformat, gleicher BLK-CONTR-Wert) besteht, kann in eine einzelne Datei oder in eine Dateigeneration kopiert werden. Dabei darf diese Dateigeneration nicht zu der Dateigenerationsgruppe gehören, die kopiert werden soll.
Dateien auf Privatplatten
Besitzt eine Datei auf privater Platte nur einen Eintrag im Systemkatalog, aber keinen im F1-Kennsatz, wird der Katalogeintrag gelöscht. Ist diese Datei die Eingabedatei, wird das Kommando zurückgewiesen. Bei einer Empfangsdatei wird eine neue Datei im gemeinschaftlichen Speicherbereich angelegt. Ein COPY-FILE-Kommando für eine ISAM-Datei auf Privatplatten mit Index-/Datentrennung wird zurückgewiesen.
Banddateien
K-Banddateien Banddateien mit BLK-CONTR=PAMKEY müssen Standardblockformat haben (Katalogeintrag für BUF-LEN=*STD(n)), damit das Kommando COPY-FILE sie bearbeiten kann).
NK-Banddateien Banddateien mit BLK-CONTR=DATA/NO und einem BUF-LEN-Wert von einem Vielfachen von 2048 Byte können kopiert werden.
- Fremddateien auf Band Werden NK-Dateien auf Band kopiert, erlischt die BLK-CONTR-Information, wenn der Katalogeintrag gelöscht wird. Soll eine Banddatei kopiert werden, die nicht katalogisiert ist, muss sie zunächst mit IMPORT-FILE katalogisiert werden. Handelt es sich um eine NK-Datei (BLK-CONTR= DATA/NO) muss der Anwender die Operanden im Kommando ADD-FILE-LINK richtig versorgen, d.h. dem tatsächlichen Dateiformat entsprechend BLOCK-CONTROL-INFO=*NO/*WITHIN-DATA-BLOCK sowie LINK-NAME = DMCOPY11 und ACCESS-METHOD angeben.
Wird eine K-Datei (BLK-CONTR=PAMKEY) versehentlich als NK-Datei (BLK-CONTR=DATA) kopiert, ist die entstandene Plattendatei nicht lesbar, da die ersten 16 Byte einer jeden PAM-Seite, die bei BLK-CONTR=PAMKEY Daten enthalten, mit Verwaltungsinformationen überschrieben werden.
Das Kommando COPY-FILE arbeitet intern mit der Zugriffsmethode UPAM, die keine Folgebandverarbeitung zulässt. So können zwar mehrere Dateien auf ein Band kopiert werden. Es können jedoch keine Dateien kopiert werden, die sich über mehrere Bänder erstrecken.
PLAM-Bibliotheken
PLAM-Bibliotheken können nur kopiert werden, wenn die Bibliothek keine besonders geschützten Daten enthält (siehe Handbuch „LMS“ [21]).
Eine mit BASIC-ACL oder GUARDS geschützte PLAM-Bibliothek in einem fernen System kann nicht kopiert werden.
Fern-Dateizugriff - Remote File ACCESS (siehe auch Handbuch „RFA“ [31])
Das Kopieren von Fernsystem zu Fernsystem mit Eingabe und Ausgabe auf verschiedenen Systemen wird durch eine übergeordnete Ausführungsroutine unterstützt. Das lokale System dient hierbei nur als Zwischenstation beim Datentransfer.
Vor dem Kopieren muss für beide Fernsysteme das Kommando SET-RFA-CONNECTION abgesetzt werden.
Beim Kopieren einer Ferndatei auf eine lokale Datei mit dem Operanden PROTECTION= *SAME werden die Kennwörter nicht übernommen.
Bei unterschiedlichen BS2000-Versionen gilt grundsätzlich:
Das Kommando COPY-FILE sollte in dem System mit der höchsten Version abgesetzt werden.
Die Datei sollte vorher bzw. nachher mit dem Dienstprogramm PAMCONV in geeigneter Weise konvertiert werden.
Die angegebenen Operanden müssen von der Betriebssystem-Version des fernen Systems unterstützt werden.
Falls eine Datei von Fernsystem zu Fernsystem kopiert werden soll, wobei Ein- und Ausgabe auf 2 verschiedenen Systemen liegen, so wird dies durch die übergeordnete Ausführungsroutine unterstützt. Das lokale System dient als Zwischenstation beim Datentransfer.
Das Kopieren ist nur möglich, wenn für beide Fernsysteme das SET-RFA-CONNECTION-Kommando vor dem Kopiervorgang abgesetzt wurde.
Dateiverschlüsselung
Zum Kopieren von verschlüsselten Dateien ist im Normalfall der Eintrag des Crypto-Kennworts in der Crypto-Kennwort-Tabelle der Task nicht erforderlich, da der Dateiinhalt ohne Entschlüsselung übertragen wird.
Bei folgenden Kopiervorgängen ist Entschlüsselung während des Kopierens erforderlich:
Verschlüsselten Dateien werden auf Band oder Privatplatte kopiert.
Im TFT-Eintrag der internen Dateikettungsnamen DMCOPY11 bzw. DMCOPY22 wurde Shared-Update-Verarbeitung vereinbart (siehe Kommando ADD-FILE-LINK).
Format
COPY-FILE | Kurzname: CPF |
FROM-FILE = <filename 1..54 with-wild(80)> ,TO-FILE = <filename 1..54 with-wild-constr(80)> ,PROTECTION = *STD / *SAME ,CHANGE-DATE = *STD / *SAME ,REPLACE-OLD-FILES = *YES / *NO / *BY-DIALOG ,BLOCK-CONTROL-INFO = *KEEP-ATTRIBUTE / *IGNORE-ATTRIBUTE / *CHECK-REMOVAL ,IGNORE-PROTECTION = *NO / list-poss(2): *SOURCE-FILE / *TARGET-FILE ,DIALOG-CONTROL = STD / *NO / *ERROR / *FILE-CHANGE / *MORE-THAN-ONE-FILE / *USER-ID-CHANGE / *CATALOG-CHANGE ,OUTPUT = *NO / *SYSOUT |
Operandenbeschreibung
FROM-FILE = <filename 1..54 with-wild(80)>
Name der Datei, Dateigeneration, Dateigenerationsgruppe die zu kopieren ist (Sendedatei).
Enthält der Dateiname Musterzeichen (Wildcards) oder erfolgt die Angabe teilqualifiziert, wird das Kommando für die entsprechende Dateimenge ausgeführt. Die Verarbeitung kann über die Operanden DIALOG-CONTROL und OUTPUT gesteuert und kontrolliert werden. Nur die Systembetreuung darf innerhalb der Benutzerkennung Musterzeichen verwenden. Ist die Originaldatei (FROM-FILE) nicht unter der Benutzerkennung des Auftrags katalogisiert, muss die Benutzerkennung im Kommando angegeben werden und die aufrufende Benutzerkennung auf diese Datei/Dateigeneration/FGG zugriffsberechtigt sein (USER-ACCESS=ALL-USERS oder Leserecht über BASIC-ACL oder GUARDS bzw. Miteigentümer).
Ist die Originaldatei eine Dateigenerationsgruppe, muss die Empfangsdatei (TO-FILE) ebenfalls eine FGG sein (Ausnahme: die FGG (FROM-FILE) besteht aus SAM-Dateigeneration mit gleichen Eigenschaften bzgl. Satzformat, Satz- und Blocklänge, sowie Block-Kontroll-Information. In diesem Fall kann in eine einzelne Datei oder in eine Dateigeneration kopiert werden. Diese Dateigeneration darf nicht zu der Dateigenerationsgruppe gehören, die kopiert werden soll.
TO-FILE = <filename 1..54 with-wild-constr(80)>
Name der Datei, Dateigeneration, Dateigenerationsgruppe, in die kopiert werden soll (Empfangsdatei).
Wurde im Operanden FROM-FILE eine Dateimenge angegeben, kann in einer Konstruktionszeichenfolge angegeben werden, wie die Dateinamen der Empfangsdateien zu bilden sind. Die Konstruktionszeichenfolge sollte so gewählt werden, dass die Namen der Empfangsdateien eindeutig sind.
Wird z.B. für eine Dateimenge ein vollqualifizierter Dateiname als Empfangsdatei angegeben, so wird die erste Sendedatei in diese Datei kopiert. Für die folgenden Sendedateien existiert die Empfangsdatei bereits. Abhängig von der Einstellung des Operanden REPLACE-OLD-FILES wird jede folgende Sendedatei ebenfalls in die Empfangsdatei kopiert oder das Kopieren abgewiesen. Am Ende der Kommandoverarbeitung enthält dann die Empfangsdatei den Inhalt der ersten oder der letzten Sendedatei.
Ist die Empfangsdatei noch nicht katalogisiert, darf nur die eigene Benutzerkennung (die des SET-LOGON-PARAMETERS-Kommandos) oder eine Benutzerkennung, für die der Benutzer Miteigentümer ist, angegeben werden.
Soll die noch nicht katalogisierte Empfangsdatei auf einem SM-Pubset angelegt werden, versucht das System sie anhand der Eigenschaften der Quelldatei (Performance, Verfügbarkeit) auf einem geeigneten Volume-Set anzulegen.
Ist die Empfangsdatei unter einer fremden Benutzerkennung katalogisiert, muss die Benutzerkennung angegeben werden und die aufrufende Benutzerkennung muss auf die Datei zugriffsberechtigt sein (USER-ACCESS=ALL-USERS oder entsprechende Zugriffsrechte müssen über BASIC-ACL oder GUARDS vereinbart sein).
Ist die Empfangsdatei eine Dateigenerationsgruppe, muss auch Sendedatei eine Dateigenerationsgruppe sein.
Soll die Datei auf private Datenträger kopiert werden, so muss die Empfangsdatei zuvor entsprechend katalogisiert werden (CREATE-FILE).
Das Kommando COPY-FILE wird in folgenden Fällen zurückgewiesen:
Für die Empfangsdatei ist kein schreibender Zugriff erlaubt, d.h., es ist ACCESS= READ vereinbart bzw. über BASIC-ACL oder GUARDS ist der Schreibzugriff untersagt.
Es besteht noch eine Schutzfrist für die Empfangsdatei (EXPIR-DATE > Tagesdatum).
Die Empfangsdatei ist mit einem Kennwort gegen unberechtigtes Schreiben geschützt.
Für eine Empfangsdatei auf Platte ist die Primärzuweisung nicht ausreichend und die Sekundärzuweisung mit 0 vereinbart.
PROTECTION = *STD / *SAME
Gibt an, ob die Merkmale bezüglich Dateischutz und Dateisicherung der Sendedatei auch für die Empfangsdatei gelten sollen.
Die im Katalog eingetragene Codier-Tabelle (COD-CH-SET) wird in jedem Fall in den Katalogeintrag der Empfangsdatei übernommen.
Die Performance-Merkmale der Sendedatei werden nicht übernommen (siehe Ausgabefelder IO(PERF), IO(USAGE), DISK-WRITE, Kommando SHOW-FILE-ATTRIBUTES).
PROTECTION = *STD
Die Merkmale bezüglich Dateischutz und Dateisicherung werden nicht in die Empfangsdatei übernommen. Eine neu zu erstellende Empfangsdatei erhält die Merkmale, die sich aus den Voreinstellungen des Kommandos CREATE-FILE ergeben. Für eine bereits bestehende Empfangsdatei bleiben die bisherigen Schutzmerkmale erhalten.
PROTECTION = *SAME
Die Empfangsdatei erhält die gleichen Dateisicherungs- und Dateischutzmerkmale wie die Sendedatei (bzgl. BACKUP-CLASS, SAVED-PAG, NUM-OF-BACKUP-VERS, EXPIR-DATE, EXPIR-TIME, DESTROY, FREE-FOR-DEL, MANAGE-CLASS, USER-ACC, ACCESS, sowie die gleichen Kennwörter). Der AUDIT-Wert und die Sperre gegen Speicherplatzfreigabe (SP-REL-LOCK=YES) werden nicht übernommen. Für eine BASIC-ACL sowie vereinbarte GUARDS sind folgende Fälle zu unterscheiden:
Empfangsdatei auf gemeinschaftlicher Platte oder auf Net-Storage-Volume:
Die Schutzmerkmale BASIC-ACL oder GUARDS werden übernommen.Empfangsdatei auf privater Platte:
Bei Schutz mit GUARDS werden System-Standardmerkmale gesetzt (USER-ACCESS=OWNER-ONLY, ACCESS=WRITE). Ist die Datei nur mit einer BASIC-ACL geschützt, wird diese übernommen.Empfangsdatei auf Band:
Die Schutzmerkmale werden in jedem Fall auf System-Standardmerkmale gesetzt(USER-ACCESS=ALL-USERS, ACCESS=WRITE).
Die Angabe PROTECTION=*SAME wird in folgenden Fällen ignoriert:
Die Empfangsdatei ist eine temporäre Datei.
Die Empfangsdatei ist eine Dateigeneration (Merkmale bezüglich Dateischutz bzw. Dateisicherung für eine Dateigeneration werden im Gruppeneintrag festgelegt).
Ein nichtprivilegierter Benutzer gibt eine Empfangsdatei mit einer fremden Benutzerkennung an.
Da Management-Klassen pubset-spezifisch sind, können sie nur übernommen werden, wenn Quell- und Zieldatei auf demselben Pubset liegen. Beim Kopieren auf einen anderen Pubset behält eine existierende Zieldatei ihre Management-Klasse, eine neue Zieldatei erhält MANAGEMENT-CLASS=*NONE
(so wie bei PROTECTION=*STD
).
Wird eine temporäre in eine permanente Datei kopiert, erhält diese bei Angabe von PROTECTION=*SAME die Eigenschaft BACKUP=E, d.h. die neue Datei wird bei ARCHIVE-Sicherungsläufen nicht berücksichtigt. Der BACKUP-Wert muss mit dem Kommando MODIFY-FILE-ATTRIBUTES verändert werden, wenn die Datei mit ARCHIVE automatisch gesichert werden soll.
Wird eine permanente in eine temporäre Datei kopiert, erhält diese bei Angabe von PROTECTION=*SAME die Eigenschaft NUM-OF-BACKUP-VERS=0, d.h. die Datei nimmt nicht am Versions-Backup teil.
Wird eine temporäre in eine permanente Datei kopiert, erhält sie die Eigenschaft NUM-OF-BACKUP-VERS=0, d.h. sie nimmt nicht am Versions-Backup teil. Wenn die Datei am Versions-Backup teilnehmen soll, muss mit dem Kommando MODIFY-FILE-ATTRIBUTES ein Wert > 0 vereinbart werden.
Beim Kopieren von einer fremden Benutzerkennung gilt für nichtprivilegierte Benutzer: Ist die Sendedatei mit BASIC-ACL oder GUARDS (siehe Handbuch „SECOS“ [35]) geschützt, werden die Schutzmerkmale USER-ACCESS, ACCESS, BASIC-ACL und GUARDS der Empfangsdatei auf System-Standardwerte (siehe Kommando CREATE-FILE) gesetzt.
CHANGE-DATE = *STD / *SAME
Gibt an, ob die Zieldatei das gleiche Änderungsdatum (CHANGE-DATE) wie die Quelldatei erhalten soll.
CHANGE-DATE = *STD
Das Änderungsdatum der Zieldatei wird aktualisiert.
CHANGE-DATE = *SAME
Das Änderungsdatum der Quelldatei wird auf die Zieldatei übertragen. Die Angabe gilt auch in folgenden Fällen:
Die Zieldatei liegt unter einer fremden Benutzerkennung.
Die Zieldatei ist eine Dateigeneration.
REPLACE-OLD-FILES = *YES / *NO / *BY-DIALOG
Der Anwender kann angeben, ob für den Fall, dass unter dem Namen der Empfangsdatei bereits eine Datei katalogisiert ist, diese überschrieben werden soll bzw. eine Abfrage auf Überschreiben (REPLACE-OLD-FILES=*BY-DIALOG) erfolgen soll.
Im Batchbetrieb gilt immer die Einstellung REPLACE-OLD-FILES=*NO.
Ist die Empfangsdatei eine Banddatei, wird der Operand REPLACE-OLD-FILES ignoriert. Eine bereits existierende Banddatei gleichen Namens wird ohne Meldung überschrieben. Ist die Empfangsdatei leer, wird sie ohne Meldung überschrieben.
REPLACE-OLD-FILES = *YES
Eine bereits existierende Plattendatei wird ohne Meldung überschrieben.
REPLACE-OLD-FILES = *NO
Die bereits existierende Datei wird nicht überschrieben. Das Kommando wird abgewiesen. In Prozeduren wird die Fehlerbehandlung ausgelöst (Spin-Off-Mechanismus in Nicht-S-Prozeduren oder SDF-P-Fehlerbehandlung in S-Prozeduren).
REPLACE-OLD-FILES = *BY-DIALOG
Der Operandenwert *BY-DIALOG wird nur im Dialogbetrieb ausgewertet. Der Benutzer kann im Dialog mit dem System entscheiden, ob eine bereits vorhandene Empfangsdatei überschrieben werden soll oder nicht. Es erscheint die Abfrage „OVERWRITE (Y/N?)“. Bei Antwort „Y“ wird die Empfangsdatei ohne weitere Meldung überschrieben.
Bei Antwort „N“ wird die Empfangsdatei nicht überschrieben und eine entsprechende Meldung ausgegeben.
BLOCK-CONTROL-INFO = *KEEP-ATTRIBUTE / *IGNORE-ATTRIBUTE / *CHECK-REMOVAL
Gibt an, ob sich die Sende- und die Empfangsdatei (bzw. der TFT-Eintrag DMCOPY22) bezüglich der Dateieigenschaft BLOCK-CONTROL-INFO (BLK-CONTR) unterscheiden dürfen.
Beim Kopieren wird blockweise übertragen, d.h. ohne Rücksicht auf die innere Blockstruktur der Datei. Deshalb sollte eine Datei im K-Format (BLK-CONTR=PAMKEY) nicht in eine Datei im NK-Format (BLK-CONTR=DATA oder NO) oder umgekehrt kopiert werden. Eine solche Übertragung sollte mit einem Dienstprogramm erfolgen, das die interne Blockstruktur berücksichtigt (z.B. PERCON, PAMCONV).
Voreingestellt ist *KEEP-ATTRIBUTE, d.h. beide Dateien (bzw. der TFT-Eintrag DMCOPY22) müssen dieselbe BLOCK-CONTROL-INFO-Eigenschaft besitzen.
Für Dateien, deren innere Blockstruktur nicht von der BLOCK-CONTROL-INFO-Eigenschaft abhängt, kann das Kopieren zugelassen werden (z.B. PLAM-Bibliotheken). Mit den Operandenwerten IGNORE-ATTRIBUTE bzw. CHECK-REMOVAL kann eine unterschiedliche BLOCK-CONTROL-INFO-Eigenschaft zugelassen werden.
Es wird empfohlen BLOCK-CONTROL-INFO=*CHECK-REMOVAL anzugeben, wenn vorher mit /ADD-FILE-LINK LINK-NAME=DMCOPY22 der Operand BLOCK-CONTROL-INFO festgelegt wird.
BLOCK-CONTROL-INFO = *KEEP-ATTRIBUTE
Der TFT-Eintrag der Empfangsdatei bzw. ihr Katalogeintrag für diese Eigenschaft muss mit dem der Sendedatei übereinstimmen. Anderenfalls wird das Kommando abgewiesen.
BLOCK-CONTROL-INFO = *IGNORE-ATTRIBUTE
Eine Ungleichheit bezüglich der BLOCK-CONTROL-INFO-Eigenschaft kann in bestimmten Fällen ignoriert werden.
Die PAM-Schlüssel der Sendedatei (BLK-CONTR=PAMKEY) werden beim Kopiervorgang in eine Datei mit BLOCK-CONTROL-Information BLK-CONTR=NO bzw. BLK-CONTR=DATA nicht auf mögliche Benutzerdaten im PAM-Schlüssel überprüft.
Diese Benutzerinformation aus dem PAM-Schlüssel ist in der Empfangsdatei nicht mehr vorhanden. In einer Empfangsdatei mit BLK-CONTR=DATA werden die ersten zwölf Bytes eines übertragenen logischen Blocks mit der BLOCK-CONTROL-Information überschrieben.
Ein Kopieren ist in folgenden Fällen möglich:
BLOCK-CONTROL-INFO im Ausgabefeld BLK-CONTR (SHOW-FILE-ATTRIBUTES) | |
---|---|
Sendedatei | Empfangsdatei |
PAMKEY | DATA (nur Plattendatei) |
PAMKEY | NO |
DATA (nur Plattendatei) | PAMKEY |
NO | PAMKEY |
BLOCK-CONTROL-INFO = *CHECK-REMOVAL
Eine Ungleichheit bezüglich der BLOCK-CONTROL-INFO Eigenschaft wird nur ignoriert, wenn bei der Übertragung keine Benutzerdaten aus dem PAM-Schlüssel verloren gehen würden. Die PAM-Schlüssel einer Sendedatei mit BLOCK-CONTROL-INFO-Eigenschaft BLK-CONTR=PAMKEY werden bei Übertragung auf eine Empfangsdatei im NK-Format (BLK-CONTR=DATA oder NO) auf Informationen im Benutzerteil überprüft. Enthält der PAM-Schlüssel Informationen im Benutzerteil, so wird das Kommando COPY-FILE abgewiesen. Damit wird sichergestellt, dass keine Benutzerinformation verloren geht.
Ein Kopieren ist in folgenden Fällen möglich (falls keine Benutzerinformation verloren geht):
BLOCK-CONTROL-INFO im Ausgabefeld BLK-CONTR (SHOW-FILE-ATTRIBUTES) | |
---|---|
Sendedatei | Empfangsdatei |
PAMKEY | DATA (nur Plattendatei) |
PAMKEY | NO |
IGNORE-PROTECTION = *NO / *SOURCE-FILE / *TARGET-FILE
Vereinbart, ob und gegebenenfalls für welche Datei die Systembetreuung den Dateischutz umgehen möchte.
IGNORE-PROTECTION = *NO
Als Voreinstellung gilt, dass der bestehende Dateischutz für Quell- und Zieldatei beachtet wird.
IGNORE-PROTECTION = *SOURCE-FILE
Die Schutzattribute der Quelldatei, die der Eigentümer der Datei beim Anlegen der Datei vereinbart hat, sollen für den privilegierten Aufrufer (Systembetreuung) ignoriert werden. Die Schutzattribute können READ- bzw. EXEC-PASSWORD sowie die erweiterten Schutzmaßnahmen über BASIC-ACL oder GUARDS sein.
IGNORE-PROTECTION = *TARGET-FILE
Die Schutzattribute der Zieldatei sollen beim Übertragen der Quelldatei für den privilegierten Aufrufer (Systembetreuung) ignoriert werden. Die Schutzattribute können ACCESS- bzw. EXPIRATION-DATE, READ-/WRITE- oder EXEC-PASSWORD sowie die erweiterten Schutzmaßnahmen über BASIC-ACL oder GUARDS sein.
DIALOG-CONTROL = *STD / *NO / *ERROR / *FILE-CHANGE / *MORE-THAN-ONE-FILE /
*CATALOG-CHANGE / *USER-ID-CHANGE
Gibt an, ob und unter welchen Bedingungen während der Kommandoausführung ein Kontrolldialog mit dem Benutzer geführt werden soll. Mit dem Kontrolldialog kann der Benutzer die Kommandoverarbeitung kontrollieren und ggf. eingreifen.
Ein Kontrolldialog ist nur im Dialogbetrieb, dort aber auch in Prozeduren, möglich. Im Batchbetrieb wirken alle Operandenwerte wie *NO.
Tritt ein im Operanden DIALOG-CONTROL angegebenes Ereignis (außer bei *ERROR) ein, wird ein Kontrolldialog gestartet. Der Benutzer wird mit der Meldung DMS0810 gefragt, ob das Kommando für die angezeigte Datei oder Dateimenge ausgeführt werden soll. Für die eingegebene Antwort gelten die SDF-Abkürzungsregeln. Mit der Eingabe eines Fragezeichens werden die möglichen Antworten angezeigt.
Syntax der Antwort auf die Meldung DMS0810 (Kontrolldialog):
|
Bedeutung der Operanden
Die Bedeutung der untergeordneten Operanden DIALOG-CONTROL und OUTPUT entspricht jeweils den Operanden des Kommandos. Der Operandenwert
*UNCHANGED lässt die bisherige Einstellung unverändert.
Antwort *YES(...)
Die in der Meldung angezeigte Dateimenge wird verarbeitet.
Bei der Angabe eines neuen Wertes im Operanden DIALOG-CONTROL, der eine Eingrenzung (im Sinne von Verkleinerung) der in der Dialogmeldung angezeigten Dateimenge fordert (z.B. bei Änderung von *CATALOG-CHANGE auf *FILE-CHANGE), wird die angezeigte Dateimenge zuerst unter Berücksichtigung des neuen Wertes eingegrenzt und dann ein erneuter Kontrolldialog für diese kleinere Dateimenge durchgeführt.
Die Bedeutung der untergeordneten Operanden DIALOG-CONTROL und OUTPUT entspricht den Operanden des Kommandos.
Antwort *NO(...)
Die in der Meldung angezeigte Dateimenge wird nicht verarbeitet. Eine Änderung im Operanden DIALOG-CONTROL führt erst bei Eintreten des entsprechenden Ereignisses zu erneuten Kontrollabfrage. Sind bis zum Eintreten des Ereignisses noch weitere Dateien zu bearbeiten, werden diese ohne Kontrollabfrage bearbeitet.
Antwort *TERMINATE
Die in der Meldung angezeigte Dateimenge wird nicht verarbeitet und die Kommandoverarbeitung wird abgebrochen. Innerhalb einer Prozedur wird die Fehlerbehandlung (Spin-Off bzw. SDF-P-Fehlerbehandlung) ausgelöst.
Tritt bei der Verarbeitung eines ausgewählten Dateinamens ein Fehler auf und ist zu diesem Zeitpunkt DIALOG-CONTROL ungleich *NO eingestellt, wird ein Fehlerkontrolldialog gestartet. Dem Benutzer werden mit der garantierten Meldung DMS0812 die Dateinamen der betroffenen Sende- und Zieldatei und der DMS-Fehlercode mitgeteilt. Anschließend wird er mit der Meldung DMS0813 gefragt, ob bzw. wie die Kommandoausführung fortgesetzt werden soll. Für die eingegebene Antwort gelten die SDF-Abkürzungsregeln. Mit der Eingabe eines Fragezeichens werden die möglichen Antworten angezeigt.
Syntax der Antwort auf die Meldung DMS0813 (Fehlerkontrolldialog)
|
Bedeutung der Operanden
Die Bedeutung der untergeordneten Operanden DIALOG-CONTROL und OUTPUT entspricht jeweils den Operanden des Kommandos. Der Operandenwert *UNCHANGED lässt die bisherige Einstellung unverändert.
Antwort *YES(...)
Die Verarbeitung soll mit dem nächsten Dateinamen fortgesetzt werden.
Antwort *RETRY(...)
Die Verarbeitung soll für denselben Dateinamen noch einmal versucht werden.
Antwort *SKIP-CATALOG(...)
Die Verarbeitung soll mit den Dateinamen des nächsten ausgewählten Kataloges fortgesetzt werden. Diese Angabe ist nur relevant, wenn in der Katalogkennung Musterzeichen verwendet wurden.
Antwort *SKIP-USER-ID(...)
Die Verarbeitung soll mit den Dateinamen der nächsten ausgewählten Benutzerkennung fortgesetzt werden. Wurden Dateinamen einer Benutzerkennung auf verschiedenen Pubsets ausgewählt, soll die Verarbeitung mit den Dateinamen der nächsten ausgewählten Katalogkennung fortgesetzt werden.
Diese Angabe ist nur relevant, wenn in der Benutzer- oder Katalogkennung Musterzeichen verwendet wurden.
DIALOG-CONTROL = *STD
Die Voreinstellung STD entspricht im interaktiven Dialog (SYSCMD ist der Datensichtstation zugeordnet) dem Wert *MORE-THAN-ONE-FILE, in Prozeduren und im Batchbetrieb dem Wert *NO.
DIALOG-CONTROL = *NO
Alle ausgewählten Dateien werden ohne Eingriffsmöglichkeit des Benutzers verarbeitet.
DIALOG-CONTROL = *MORE-THAN-ONE-FILE
Ein Kontrolldialog wird gestartet, wenn mehrere Dateien ausgewählt wurden.
Die Kontrollabfrage erfolgt für alle ausgewählten Dateien. Enthalten die Katalog- und/oder Benutzerkennung Musterzeichen, wird die Kontrollabfrage für jeden Katalog und/oder Benutzerkennung durchgeführt.
Implizit gilt auch DIALOG-CONTROL=*ERROR.
DIALOG-CONTROL = *ERROR
Tritt bei der Verarbeitung eines ausgewählten Dateinamens ein Fehler auf, wird ein Fehler-Kontrolldialog gestartet.
DIALOG-CONTROL = *FILE-CHANGE
Für jeden ausgewählten Dateinamen wird ein Kontrolldialog gestartet. Implizit gilt auch DIALOG-CONTROL=*ERROR.
DIALOG-CONTROL = *CATALOG-CHANGE
Die Kontrollabfrage erfolgt für alle ausgewählten Dateinamen eines Katalogs. Implizit gilt auch DIALOG-CONTROL=*ERROR.
DIALOG-CONTROL = *USER-ID-CHANGE
Die Kontrollabfrage erfolgt für alle ausgewählten Dateinamen einer Benutzerkennung innerhalb eines Katalogs.
Implizit gilt auch DIALOG-CONTROL=*ERROR.
OUTPUT = *NO / *SYSOUT
Gibt an, ob die verarbeiteten Dateinamen nach SYSOUT protokolliert werden.
OUTPUT = *NO
Es werden nur eventuell aufgetretene Fehler nach SYSOUT protokolliert.
OUTPUT = *SYSOUT
Es werden die verarbeiteten Dateinamen und eventuell aufgetretene Fehler nach SYSOUT protokolliert (garantierte Meldungen DMS0816 und DMS0812).
Handelt es sich um einen Zugriff auf Dateien auf einem fremden System über RFA und ist der RFA-Übergabebereich für die zu übertragende Information zu gering, so wird die Meldung DMS0817 ausgegeben.
Syntax der Antwort auf die Meldung DMS0817 (Kontrolldialog):
|
Bedeutung der Operanden
Die Bedeutung der untergeordneten Operanden DIALOG-CONTROL und OUTPUT entspricht jeweils den Operanden des Kommandos. Der Operandenwert
*UNCHANGED lässt die bisherige Einstellung unverändert.
Antwort *YES(...)
Die in der Meldung angezeigte Dateimenge wird verarbeitet.
Bei der Angabe eines neuen Wertes im Operanden DIALOG-CONTROL, der eine Eingrenzung (im Sinne von Verkleinerung) der in der Dialogmeldung angezeigten Dateimenge fordert (z.B. bei Änderung von *CATALOG-CHANGE auf *FILE-CHANGE), wird die angezeigte Dateimenge zuerst unter Berücksichtigung des neuen Wertes eingegrenzt und dann ein erneuter Kontrolldialog für diese kleinere Dateimenge durchgeführt.
Ist der RFA-Übergabebereich für die zu übertragenden Dateimenge weiterhin zu gering, so wird dies durch die Meldung DMS063B angezeigt. Die geforderte COPY-FILE Anweisung wird nur teilweise ausgeführt.
Die Bedeutung der untergeordneten Operanden DIALOG-CONTROL und OUTPUT entspricht den Operanden des Kommandos.
Antwort *NO(...)
Die in der Meldung angezeigte Dateimenge wird nicht verarbeitet und es wird die Meldung DMS0841 ausgegeben. Eine Änderung im Operanden DIALOG-CONTROL führt erst bei Eintreten des entsprechenden Ereignisses zu erneuten Kontrollabfrage. Sind bis zum Eintreten des Ereignisses noch weitere Dateien zu bearbeiten, werden diese ohne Kontrollabfrage bearbeitet.
Antwort *TERMINATE
Die in der Meldung angezeigte Dateimenge wird nicht verarbeitet und die Kommandoverarbeitung wird abgebrochen. Innerhalb einer Prozedur wird die Fehlerbehandlung (Spin-Off bzw. SDF-P-Fehlerbehandlung) ausgelöst.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung / garantierte Meldungen |
---|---|---|---|
0 | CMD0001 | Kommando ausgeführt | |
2 | 0 | DMS0546 | Katalogeintrag der angegebenen Datei hat Maximalgröße erreicht |
2 | 0 | DMS054A | Plattenspeichermangel oder Zugriff auf eine Platte nicht möglich |
2 | 0 | DMS05F5 | Einige Blöcke der Quelldatei konnten nicht kopiert werden. |
2 | 0 | DMS063B | RFA Übergabebereich für angeforderte Information zu klein |
1 | CMD0202 | Syntax- oder Semantikfehler im Kommando | |
32 | DMS0584 | Während der Verarbeitung wurde ein Zustand gemeldet, der die Fortführung der Funktion nicht zulässt. | |
32 | DMS05C7 | Unerwarteter interner Fehler im DVS | |
64 | DMS0585 | Während der Katalogverarbeitung bzw. während der Mehrrechnerverarbeitung wurde ein Fehler festgestellt. | |
64 | CMD0102 | Unterbrechung mit K2-Taste | |
64 | CMD0216 | Privilegien-Fehler | |
64 | DMS0501 | Angeforderter Katalog nicht verfügbar | |
64 | DMS0512 | Angeforderter Katalog nicht gefunden | |
64 | DMS051A | Datei existiert bereits | |
64 | DMS051B | Gewünschte Benutzerkennung nicht im Pubset | |
64 | DMS051C | Benutzer hat auf Pubset kein Zugriffsrecht | |
64 | DMS0533 | Angegebene Datei im Pubset nicht gefunden | |
64 | DMS0535 | Angegebene Datei nicht mehrfach benutzbar | |
64 | DMS057B | Ungültiger Operand für migrierte Datei | |
64 | DMS057C | Bearbeitung wegen HSMS-Fehler nicht möglich | |
64 | DMS057E | Datei migriert, HSMS nicht verfügbar | |
64 | DMS0586 | Der Zugriff bzw. die Belegung eines Datenträgers ist derzeit nicht möglich | |
64 | DMS0587 | Die Benutzung des angegebenen Kommandos wurde von der Systembetreuung eingeschränkt | |
64 | DMS0588 | Die Plattenspeicher-Zuweisung konnte nicht durchgeführt werden | |
64 | DMS05F8 | DVS-Fehler wurde gemeldet | |
64 | DMS05F9 | Unvereinbare Datei-Eigenschaften von Quell- und Zieldatei | |
64 | DMS05FC | Angegebene Benutzer-Kennung nicht im HOME-Pubset | |
64 | DMS0609 | Zugriff auf Systemdatei nicht möglich | |
64 | DMS0610 | Aktion mit Auswahlangabe (Wildcards): Die Kommandoausführung war für mindestens eine selektierte Datei fehlerhaft | |
64 | DMS0698 | Datei-Generationsgruppen haben nicht die gleichen Attribute | |
64 | DMS06B5 | Datei eröffnet oder Katalogeintrag nach Systemfehler nicht aktualisiert | |
64 | DMS06B6 | Dateiattribute passen nicht zur Dateigenerationsgruppe | |
64 | DMS06C4 | Datei-Generationsgruppe noch nicht katalogisiert | |
64 | DMS06D0 | Angegebene Dateigeneration nicht vorhanden | |
64 | DMS06FF | BCAM Verbindung unterbrochen | |
128 | DMS0506 | Funktion wegen Masterwechsel nicht ausgeführt | |
130 | DMS0524 | Systemadressraum erschöpft | |
130 | DMS053C | In der Katalog-Datei des Pubsets kein Platz | |
130 | DMS0582 | Die Datei ist derzeit gesperrt oder in Gebrauch und kann nicht bearbeitet werden | |
130 | DMS0585 | Während der Katalogverarbeitung bzw. während der Mehrrechnerverarbeitung wurde ein Fehler festgestellt. | |
130 | DMS0586 | Der Zugriff bzw. die Belegung eines Datenträgers ist derzeit nicht möglich | |
130 | DMS0588 | Die Plattenspeicher-Zuweisung konnte nicht durchgeführt werden | |
130 | DMS0594 | Nicht genügend virtueller Speicherplatz vorhanden | |
130 | DMS05C8 | Maximale erlaubte Anzahl von Dateien erreicht |
Beispiele
Beispiel 1: Kopieren mit PROTECTION=*SAME
/sh-f-at paul.file.2,inf=(sec=*yes) —————————————————————————————————— (1)
%0000000003 :2OSG:$USER1.PAUL.FILE.2 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % OWNER = R W X GROUP = - - - OTHERS = - - - % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-18 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/copy-file from=paul.file.2,to=karl.p-2 —————————————————————————————— (2)
/show-file-attr karl.p-2,sec=*yes ————————————————————————————— (3)
%0000000003 :2OSG:$USER1.KARL.P-2 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/copy-file from=paul.file.2,to=karl.p-2,prot=*same ————————————————————— (4)
/show-file-attr karl.p-2,sec=*yes ————————————————————————————— (5)
%0000000003 :2OSG:$USER1.KARL.P-2 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % OWNER = R W X GROUP = - - - OTHERS = - - - % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/show-file-attr proc.mini.2,inf=(sec=*yes) ——————————————————————————— (6)
%0000000003 :2OSG:$USER1.PROC.MINI.2 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = YES % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-18 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/show-file-attr bsp.proc.1,inf=(sec=*yes) ——————————————————————— (7)
% ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = YES EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-18 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/copy-file from=proc.mini.2,to=bsp.proc.1,prot=*same —————————————————————— (8)
% DMS05F3 REQUIRED PASSWORD IS NOT IN PASSWORD TABLE. ENTER PASSWORD AND RETRY COMMAND LATER
/add-pass 'maxi' ———————————————————————————————————————————————— (9)
/copy-file from=proc.mini.2,to=bsp.proc.1,prot=*same —————————————————— (10)
% DMS05F3 REQUIRED PASSWORD IS NOT IN PASSWORD TABLE. ENTER PASSWORD AND RETRY COMMAND LATER
/add-pass 'otto' ———————————————————————————————————————————————— (11)
/copy-file from=proc.mini.2,to=bsp.proc.1,prot=*same ————————————————— (12)
/show-file-attr bsp.proc.1,inf=(sec=*yes) ——————————————————————— (13)
%0000000003 :2OSG:$USER1.BSP.PROC.1 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = YES % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
(1) | Ausgabe der Dateischutzmerkmale der Datei PAUL.FILE.2. Die Datei besitzt einen BASIC-ACL-Eintrag. Die Zugriffskontrolle erfolgt über diesen BASIC-ACL-Eintrag (höchster aktivierter Zugriffsschutz). |
(2) | Kopieren der Datei PAUL.FILE.2 in die Datei KARL.P-2, deren Katalogeintrag dadurch mit Standardmerkmalen erzeugt wird (siehe Kommando CREATE-FILE). |
(3) | Ausgabe der Dateischutzmerkmale der Datei KARL.P-2. Die Datei ist nur über die Standard-Zugriffskontrolle geschützt (ACCESS u. USER-ACCESS). |
(4) | Erneutes Kopieren der Datei PAUL.FILE.2 in die Datei KARL.P-2. Diesmal wurde mit PROTECTION=*SAME die Übernahme der Schutzmerkmale der Sendedatei vereinbart. |
(5) | Ausgabe der Dateischutzmerkmale der Datei KARL.P-2. Die Datei besitzt dieselben Schutzmerkmale wie die Sendedatei PAUL.FILE.2 (siehe Punkt 1). |
(6) | Ausgabe der Dateischutzmerkmale der Datei PROC.MINI.2. Die Datei ist mit einem Ausführungskennwort (’MAXI’) geschützt. |
(7) | Ausgabe der Dateischutzmerkmale der Datei BSP.PROC.1. Die Datei ist mit einem Schreibkennwort (’OTTO’) geschützt. |
(8) | Kopieren der Datei PROC.MINI.2 in die Datei BSP.PROC.1. Das Kennwort für den lesenden Zugriff auf PROC.MINI.2 ist noch nicht in der Kennwort-Tabelle der Task enthalten. Das COPY-FILE-Kommando wird abgewiesen. |
(9) | Eintrag des Kennworts ’MAXI’ in die Kennwort-Tabelle der Task (siehe Punkt 6). |
(10) | Kopieren der Datei PROC.MINI.2 in die Datei BSP.PROC.1. Das Kennwort für den schreibenden Zugriff auf BSP.PROC.1 ist noch nicht in der Kennwort-Tabelle der Task enthalten. Das COPY-FILE-Kommando wird abgewiesen. |
(11) | Eintrag des Kennworts ’OTTO’ in die Kennwort-Tabelle der Task (siehe Punkt 7). |
(12) | Kopieren der Datei PROC.MINI.2 in die Datei BSP.PROC.1. |
(13) | Ausgabe der Dateischutzmerkmale der Datei BSP.PROC.1. Wegen der Angabe PROTECTION=*SAME besitzt die Datei dieselben Schutzmerkmale wie die Sendedatei PROC.MINI.2, d.h. sie ist jetzt mit dem Ausführungskennwort ’MAXI’ geschützt. |
Beispiel 2: Dateigenerationsgruppe in eine Datei kopieren
/show-file-attr max.group.2,select=(gen=*yes) ————————————————————— (1)
% 0 :2OS2:$USER1.MAX.GROUP.2 (FGG) % 3 :2OS2:$USER1.MAX.GROUP.2(*0011) % 3 :2OS2:$USER1.MAX.GROUP.2(*0012) % 3 :2OS2:$USER1.MAX.GROUP.2(*0013) %:2OS2: PUBLIC: 4 FILES RES= 9 FRE= 6 REL= 0 PAGES
/show-file-attr max.group.2,inf=(org=*yes) ————————————————————— (2)
%0000000000 :2OS2:$USER1.MAX.GROUP.2 (FGG) (3) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 11 OVERFL-OPT = CYCL-REPL % FIRST-GEN = 11 LAST-GEN = 13 %:2OS2: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/show-file-attr max.file.1,inf=(org=*yes) ———————————————————— (4)
%0000000003 :2OS2:$USER1.MAX.FILE.1 % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = NONE BUF-LEN = NONE BLK-CONTR = NONE % IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE % REC-FORM = NONE REC-SIZE = 0 % AVAIL = *STD %:2OS2: PUBLIC: 1 FILE RES= 3 FRE= 3 REL= 3 PAGES /copy-file from=max.group.2,to=max.file.1
/copy-file from=max.group.2,to=max.file.1
/show-file-attr max.file.1,inf=(org=*yes) ———————————————————— (5)
%0000000003 :2OS2:$USER1.MAX.FILE.1 % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = SAM BUF-LEN = STD(1) BLK-CONTR = PAMKEY % IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE % REC-FORM = (V,N) REC-SIZE = 0 %:2OS2: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/show-file max.file.1 ———————————————————————————————————————————————————— (6)
************************************************************ ******* Inhalt von MAX.GROUP.2(*0011) ****** ************************************************************ ...................................................(Ende)... ************************************************************ ******* Inhalt von MAX.GROUP.2(*0012) ****** ************************************************************ ...................................................(Ende)... ************************************************************ ******* Inhalt von MAX.GROUP.2(*0013) ****** ************************************************************ ...................................................(Ende)... % SHO0301 WARNING: END OF FILE REACHED e S*SOF+ 1( 1)
(1) | Ausgabe der Katalogeinträge der Dateigenerationsgruppe MAX.GROUP.2 mit den zugehörigen Generationen. Es existieren die Generationen *0011, *0012 und *0013. |
(2) | Ausgabe des Gruppeneintrags mit den spezifischen Merkmalen einer Dateigenerationsgruppe. |
(3) | Ausgabe des Katalogeintrags der Datei MAX.FILE.1 mit den Informationen über den Dateiaufbau. Die Datei wurde noch nicht schreibend geöffnet (siehe z.B. FILE-STRUC=NONE). |
(4) | Kopieren der Dateigenerationsgruppe MAX.GROUP.2 in die Datei MAX.FILE.1. |
(5) | Ausgabe des Katalogeintrags der Datei MAX.FILE.1 mit den Informationen über den Dateiaufbau. Die Datei wurde als SAM-Datei angelegt und belegt jetzt 3 PAM-Seiten (siehe FRE=0). |
(6) | Ausgabe des Dateiinhalts der Datei MAX.FILE.1 mit dem Kommando SHOW-FILE. Die Ausgabe wird mit E (END) beendet. |
Beispiel 3: Dateigenerationsgruppe in Dateigenerationsgruppe kopieren
/show-file-attr max.group.2,inf=(org=*yes) —————————————————————— (1)
%0000000000 :2OS2:$USER1.MAX.GROUP.2 (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 11 OVERFL-OPT = CYCL-REPL % FIRST-GEN = 11 LAST-GEN = 13 %:2OS2: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/cre-file-group group=max.group.2.copy,gen-par=(max=3) ————————————————— (2)
/show-file-attr max.group.2.copy,inf=(org=*yes) —————————————————————— (3)
%0000000000 :2OS2:$USER1.MAX.GROUP.2.COPY (FGG) % ------------------------------- GENERATION-INFO ---------------------------- % MAXIMUM = 3 BASE-NUM = 0 OVERFL-OPT = CYCL-REPL % FIRST-GEN = 0 LAST-GEN = 0 %:2OS2: PUBLIC: 1 FILE RES= 0 FRE= 0 REL= 0 PAGES
/copy-file from=max.group.2,to=max.group.2.copy —————————————————————— (4)
/show-file-attr max.group.2.copy,gen=*yes ————————————————————— (5)
% 0 :2OS2:$USER1.MAX.GROUP.2.COPY (FGG) % 3 :2OS2:$USER1.MAX.GROUP.2.COPY(*0001) % 3 :2OS2:$USER1.MAX.GROUP.2.COPY(*0002) % 3 :2OS2:$USER1.MAX.GROUP.2.COPY(*0003) %:2OS2: PUBLIC: 4 FILES RES= 9 FRE= 6 REL= 0 PAGES
/show-file max.group.2.copy(*1) —————————————————————————————————————————— (6)
************************************************************ ******* Inhalt von MAX.GROUP.2(*0011) ****** ************************************************************ ...................................................(Ende)... % SHO0301 WARNING: END OF FILE REACHED e S*SOF+ 1( 1)
/show-file max.group.2.copy(*2) ———————————————————————————————————————— (7)
************************************************************ ******* Inhalt von MAX.GROUP.2(*0012) ****** ************************************************************ ...................................................(Ende)... % SHO0301 WARNING: END OF FILE REACHED e S*SOF+ 1( 1)
/show-file max.group.2.copy(*3) —————————————————————————————————————————— (8)
************************************************************ ******* Inhalt von MAX.GROUP.2(*0013) ****** ************************************************************ ...................................................(Ende)... % SHO0301 WARNING: END OF FILE REACHED e S*SOF+ 1( 1)
(1) | Ausgabe des Gruppeneintrags MAX.GROUP.2 mit den spezifischen Merkmalen einer Dateigenerationsgruppe. Es existieren die 3 Generationen *0011, *0012 und *0013 (siehe LAST-GEN=13 bzw. auch Beispiel 2). |
(2) | Erzeugen eines Gruppeneintrags für die Dateigenerationsgruppe MAX.GROUP.2.COPY. Das Maximum wird auf 3 Generationen festgelegt, wie bei MAX.GROUP.2. |
(3) | Ausgabe des neu erzeugten Gruppeneintrags MAX.GROUP.2.COPY mit den spezifischen Merkmalen einer Dateigenerationsgruppe. |
(4) | Kopieren der Dateigenerationsgruppe MAX.GROUP.2 in die Dateigenerationsgruppe MAX.GROUP.2.COPY. |
(5) | Ausgabe der Katalogeinträge der Dateigenerationsgruppe MAX.GROUP.2.COPY mit den zugehörigen Generationen. Es wurden die Generationen *0001, *0002 und *0003 angelegt. |
(6) | Ausgabe des Dateiinhalts der Generation MAX.GROUP.2.COPY(*0001) mit dem Kommando SHOW-FILE. In die erste Generation wurde der Inhalt der ersten Generation von MAX.GROUP.2, d.h. der Generation *0011 kopiert. Die Ausgabe wird mit E (END) beendet. |
(7) | Ausgabe des Dateiinhalts der Generation MAX.GROUP.2.COPY(*0002) mit dem Kommando SHOW-FILE. In die zweite Generation wurde der Inhalt der zweiten Generation von MAX.GROUP.2, d.h. der Generation *0012 kopiert. Die Ausgabe wird mit E (END) beendet. |
(8) | Ausgabe des Dateiinhalts der Generation MAX.GROUP.2.COPY(*0003) mit dem Kommando SHOW-FILE. In die dritte Generation wurde der Inhalt der dritten Generation von MAX.GROUP.2, d.h. der Generation *0013 kopiert. Die Ausgabe wird mit E (END) beendet. |
Beispiel 4: Temporäre Dateien kopieren
/show-file-attr proc.mini.2,inf=(sec=*yes,backup=*yes) ————————————————— (1)
%0000000003 :2OSG:$USER1.PROC.MINI.2 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = YES % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE % ------------------------------- BACKUP ------------------------------- % BACK-CLASS = A SAVED-PAG = COMPL-FILE VERSION = 1 % MIGRATE = ALLOWED % #BACK-VERS = 0 %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/add-pass 'maxi' ——————————————————— (2)
/copy-file from=proc.mini.2,to=#temp.file.1,prot=*same —————————————————— (3)
/show-file-attr #temp.file.1,inf=(sec=*yes,backup=*yes) ————————————————— (4)
%0000000003 :2OSG:$USER1.S.163.34JG.TEMP.FILE.1 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE % ------------------------------- BACKUP ------------------------------- % BACK-CLASS = E SAVED-PAG = COMPL-FILE VERSION = 1 % MIGRATE = INHIBITED % #BACK-VERS = 0 %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/copy-file from=#temp.file.1,to=max.file.2,prot=*same —————————————————— (5)
/show-file-attr max.file.2,inf=(sec=*yes,backup=*yes) ————————————————— (6)
%0000000003 :2OSG:$USER1.MAX.FILE.2 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE % ------------------------------- BACKUP ------------------------------- % BACK-CLASS = E SAVED-PAG = COMPL-FILE VERSION = 1 % MIGRATE = INHIBITED % #BACK-VERS = 0 %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
/show-file-attr max.file.3,inf=(sec=*yes,backup=*yes) ———————————————— (7)
%0000000003 :2OSG:$USER1.MAX.FILE.3 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % OWNER = R W X GROUP = - - - OTHERS = - - - % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = NONE % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = NONE % SP-REL-LOCK= NO ENCRYPTION = *NONE % ------------------------------- BACKUP ------------------------------- % BACK-CLASS = A SAVED-PAG = COMPL-FILE VERSION = 0 % MIGRATE = ALLOWED % #BACK-VERS = 0 %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 3 REL= 3 PAGES
/copy-file from=#temp.file.1,to=max.file.3 —————————————————— (8)
/show-file-attr max.file.3,inf=(sec=*yes,backup=*yes) ———————————————— (9)
%0000000003 :2OSG:$USER1.MAX.FILE.3 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % OWNER = R W X GROUP = - - - OTHERS = - - - % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE % ------------------------------- BACKUP ------------------------------- % BACK-CLASS = A SAVED-PAG = COMPL-FILE VERSION = 1 % MIGRATE = ALLOWED % #BACK-VERS = 0 %:2OSG: PUBLIC: 1 FILE RES= 3 FRE= 0 REL= 0 PAGES
(1) | Ausgabe des Katalogeintrags der Datei PROC.MINI.2 mit den Dateimerkmalen für den Dateischutz und die Datensicherung. Die Datei ist für alle Benutzer zugreifbar (USER-ACCESS=ALL-USER), die zusätzlich das vereinbarte Ausführungskennwort ’MAXI’ kennen. |
(2) | Eintrag des Kennworts ’MAXI’ in die Kennwort-Tabelle der Task. |
(3) | Kopieren der Datei PROC.MINI.2 in die temporäre Datei #TEMP.FILE.1 mit PROTECTION=*SAME. |
(4) | Ausgabe des Katalogeintrags der temporären Datei #TEMP.FILE.1 mit den Dateimerkmalen für den Dateischutz und die Datensicherung. Für die temporäre Datei wurden Standardmerkmale gesetzt, da beispielswiese ein Kennwort, BACKUP-CLASS=A oder USER-ACCESS=ALL-USERS nicht übernommen werden können (siehe auch Kommando CREATE-FILE). |
(5) | Kopieren der temporären Datei TEMP.FILE.1 in die Datei MAX.FILE.2 mit PROTECTION=*SAME. |
(6) | Der Katalogeintrag zeigt, dass die Merkmale für den Dateischutz und die Datensicherung von der temporären Datei übernommen wurden. |
(7) | Ausgabe des Katalogeintrags der Datei MAX.FILE.3 mit den Merkmalen für Dateischutz und Datensicherung. Die Datei ist mit einer BASIC-ACL geschützt. |
(8) | Kopieren der temporären Datei #TEMP.FILE.1 in die Datei MAX.FILE.3. |
(9) | Ausgabe des Katalogeintrags der Datei MAX.FILE.3 mit den Merkmalen für Dateischutz und Datensicherung. Die Merkmale der Datei (Dateischutz und Datensicherung) wurden nicht verändert. |
Beispiel 5: Kopieren in bereits existierende Datei im Dialog
/copy-file from=max.file.1,to=max.file.10,replace-old=*by-dialog —————— (1)
% DMS0518 FILE ':2OS2:$USER1.MAX.FILE.10' ALREADY EXISTS. OVERWRITE? REPLY (Y=YES; N=NO)?
n ————————————————————————————————————————————————— (2)
% DMS0519 COPY COMMAND WITHDRAWN BY CALLER
/copy-file from=max.file.1,to=max.file.11,replace-old=*by-dialog ———————— (3)
(1) | Kopieren der Datei MAX.FILE.1 in die Datei MAX.FILE.10, wobei eine existierende Empfangsdatei nur nach einer Kontrollabfrage überschrieben werden soll. |
(2) | Die Datei MAX.FILE.10 existiert bereits. Die Kontrollabfrage wird mit N beantwortet. Das COPY-FILE-Kommando wird nicht ausgeführt. |
(3) | Kopieren der Datei MAX.FILE.1 in die Datei MAX.FILE.11, wobei eine existierende Empfangsdatei nur nach einer Kontrollabfrage überschrieben werden soll. Da die Empfangsdatei noch nicht existiert, wird das COPY-FILE-Kommando ohne Kontrollabfrage ausgeführt. |
Beispiel 6: Datei auf Privatplatte kopieren
/cre-file max.priv-file.1,sup=priv(vol=work01,dev-type=d3435) ————————— (1)
/show-file-attr max.priv-file.1,inf=(org=*yes,alloc=*yes) ——————— (2)
%0000000003*:2OSG:$USER1.MAX.PRIV-FILE.1 % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = NONE BUF-LEN = NONE BLK-CONTR = NONE % IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE % REC-FORM = NONE REC-SIZE = 0 % AVAIL = *STD % ------------------------------- ALLOCATION ------------------------------- % SUPPORT = PVT S-ALLOC = 9 HIGH-US-PA = 0 % EXTENTS VOLUME DEVICE-TYPE EXTENTS VOLUME DEVICE-TYPE % 1 WORK01 D3435 % NUM-OF-EXT = 1 %:2OSG: PRDISC: 1 FILE RES= 3 FRE= 3 REL= 0 PAGES
/copy-file from=max.file.1,to=max.priv-file.1 ———————————— (3)
/show-file-attr max.priv-file.1,inf=(org=*yes,alloc=*yes) ————————— (4)
%0000000003*:2OSG:$USER1.MAX.PRIV-FILE.1 % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = NONE BUF-LEN = NONE BLK-CONTR = NONE % IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE % REC-FORM = NONE REC-SIZE = 0 % AVAIL = *STD % ------------------------------- ALLOCATION ------------------------------- % SUPPORT = PVT S-ALLOC = 9 HIGH-US-PA = 0 % EXTENTS VOLUME DEVICE-TYPE EXTENTS VOLUME DEVICE-TYPE % 1 WORK01 D3435 % NUM-OF-EXT = 1 %:2OSG: PRDISC: 1 FILE RES= 3 FRE= 3 REL= 0 PAGES
(1) | Erzeugen eines Katalogeintrags für die Datei MAX.PRIV-FILE.1, deren Daten auf der privaten Platte WORK01 gespeichert werden sollen. |
(2) | Ausgabe des neu erzeugten Katalogeintrags mit Informationen über den Dateiaufbau und die Datenträgerbelegung. Da die Datei noch nicht geöffnet wurde, sind noch keine Informationen über den Dateiaufbau vorhanden (z.B. FILE-STRUC= NONE). |
(3) | Kopieren der Datei MAX.FILE.1 in die Datei MAX.PRIV-FILE.1. |
(4) | Ausgabe des Katalogeintrags der Datei MAX.PRIV-FILE.1 mit Informationen über den Dateiaufbau und die Datenträgerbelegung. Die Dateimerkmale wurde beim Bearbeiten mit COPY-FILE eingetragen (z.B. FILE-STRUC=ISAM). |
Beispiel 7: Datei in Banddatei (Magnetbandkassette) kopieren
/show-file-attr max.tape-file.1,inf=(org=*yes,alloc=*yes) ———————— (1)
% :2OS2:$USER1.MAX.TAPE-FILE.1 % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = NONE BUF-LEN = NONE BLK-CONTR = NONE % REC-FORM = NONE REC-SIZE = 0 % CODE = NONE LABEL = NONE FILE-SEQ = NONE % BLK-OFFSET = 0 % ------------------------------- ALLOCATION ------------------------------- % SUPPORT = PVT BLK-COUNT = 0 % EXTENTS VOLUME DEVICE-TYPE EXTENTS VOLUME DEVICE-TYPE % ( D2315K TAPE-C4 ) %:2OS2: TAPE : 1 FILE
/add-file-link link=dmcopy22,file-name=max.tape-file.1,
sup=*tape(vol=*catalog) ———————— (2)
/show-file-attr max.file.<4,5>,inf=(sec=*yes,org=y*es) ———————— (3)
%0000000018 :2OS2:$USER1.MAX.FILE.4 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % OWNER = R W X GROUP = - - - OTHERS = - - - % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = SAM BUF-LEN = STD(1) BLK-CONTR = PAMKEY % IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE % REC-FORM = (V,N) REC-SIZE = 0 %00000006 :2OS2:$USER1.MAX.FILE.5 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = OWNER-ONLY ACCESS = WRITE ACL = NO % OWNER = R W X GROUP = - - - OTHERS = - - - % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % SP-REL-LOCK= NO ENCRYPTION = *NONE % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = SAM BUF-LEN = STD(1) BLK-CONTR = PAMKEY % IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE % REC-FORM = (V,N) REC-SIZE = 0 %:2OS2: PUBLIC: 2 FILES RES= 24 FRE= 5 REL= 3 PAGES
/show-file-link link=dmcopy22,inf=(file-contr=*yes) ————————— (4)
% %-- LINK-NAME --------- FILE-NAME --------------------------------------------- % T DMCOPY22 :2OS2:$USER1.MAX.TAPE-FILE.1 % -------------------- FILE-CONTROL-BLOCK - GENERAL ATTRIBUTES ------------- % ACC-METH = *BY-PROG OPEN-MODE = *BY-PROG REC-FORM = *BY-PROG % REC-SIZE = *BY-PROG BUF-LEN = *BY-PROG BLK-CONTR = *BY-PROG % F-CL-MSG = STD CLOSE-MODE = *BY-PROG % -------------------- FILE-CONTROL-BLOCK - DISK FILE ATTRIBUTES ----------- % SHARED-UPD = *BY-PROG WR-CHECK = *BY-PROG IO(PERF) = *BY-PROG % IO(USAGE) = *BY-PROG LOCK-ENV = *BY-PROG % -------------------- FILE-CONTROL-BLOCK - TAPE FILE ATTRIBUTES ----------- % LABEL = *BY-PROG (DIN-R-NUM = *BY-PROG, TAPE-MARK = *BY-PROG) % CODE = *BY-PROG EBCDIC-TR = *BY-PROG F-SEQ = *BY-PROG % CP-AT-BLIM = *BY-PROG CP-AT-FEOV = *BY-PROG BLOCK-LIM = *BY-PROG % REST-USAGE = *BY-PROG BLOCK-OFF = *BY-PROG TAPE-WRITE = *BY-PROG % STREAM = *BY-PROG % -------------------- FILE-CONTROL-BLOCK - ISAM FILE ATTRIBUTES ----------- % KEY-POS = *BY-PROG KEY-LEN = *BY-PROG POOL-LINK = *BY-PROG % LOGIC-FLAG = *BY-PROG VAL-FLAG = *BY-PROG PROPA-VAL = *BY-PROG % DUP-KEY = *BY-PROG PAD-FACT = *BY-PROG READ-I-ADV = *BY-PROG % WR-IMMED = *BY-PROG POOL-SIZE = *BY-PROG
/copy-file from=max.file.5,to=max.tape-file.1,prot=*same ————————— (5)
/show-file-attr max.tape-file.1,inf=(org=*yes,alloc=yes,sec=*yes) ———— (6)
% :2OS2:$USER1.MAX.TAPE-FILE.1 % ------------------------------- HISTORY ------------------------------- % CRE-DATE = 2012-03-19 ACC-DATE = 2012-03-19 CHANG-DATE = 2012-03-19 % CRE-TIME = 00:00:00 ACC-TIME = 00:00:00 CHANG-TIME = 00:00:00 % ACC-COUNT = 1 S-ALLO-NUM = 0 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = ALL-USERS ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % ------------------------------- BACKUP ------------------------------- % BACK-CLASS = A SAVED-PAG = COMPL-FILE VERSION = 1 % #BACK-VERS = 0 % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = SAM BUF-LEN = STD(1) BLK-CONTR = PAMKEY % REC-FORM = (V,N) REC-SIZE = 2044 % CODE = EBCDIC LABEL = (STD,1) FILE-SEQ = 1 % BLK-OFFSET = 4 % ------------------------------- ALLOCATION ------------------------------- % SUPPORT = PVT BLK-COUNT = 5 % EXTENTS VOLUME DEVICE-TYPE EXTENTS VOLUME DEVICE-TYPE % D2315K TAPE-C4 %:2OS2: TAPE : 1 FILE
/cre-file max.tape-file.2,sup=*tape(vol=d2315k,dev-type=tape-c4) ——————— (7)
/add-file-link link=dmcopy22,file-name=max.tape-file.2, ———————————————— (8)
sup=tape(vol=*catalog,file-sequence=*new)
/show-file-link link=dmcopy22,inf=(file-contr=*yes) ————————— (9)
% %-- LINK-NAME --------- FILE-NAME --------------------------------------------- % T DMCOPY22 :2OS2:$USER1.MAX.TAPE-FILE.2 % -------------------- FILE-CONTROL-BLOCK GENERAL ATTRIBUTES ------------- % ACC-METH = *BY-PROG OPEN-MODE = *BY-PROG REC-FORM = *BY-PROG % REC-SIZE = *BY-PROG BUF-LEN = *BY-PROG BLK-CONTR = *BY-PROG % F-CL-MSG = STD CLOSE-MODE = *BY-PROG % -------------------- FILE-CONTROL-BLOCK DISK FILE ATTRIBUTES ----------- % SHARED-UPD = *BY-PROG WR-CHECK = *BY-PROG IO(PERF) = *BY-PROG % IO(USAGE) = *BY-PROG LOCK-ENV = *BY-PROG % -------------------- FILE-CONTROL-BLOCK TAPE FILE ATTRIBUTES ----------- % LABEL = *BY-PROG (DIN-R-NUM = *BY-PROG, TAPE-MARK = *BY-PROG) % CODE = *BY-PROG EBCDIC-TR = *BY-PROG F-SEQ = NEW % CP-AT-BLIM = *BY-PROG CP-AT-FEOV = *BY-PROG BLOCK-LIM = *BY-PROG % REST-USAGE = *BY-PROG BLOCK-OFF = *BY-PROG TAPE-WRITE = *BY-PROG % STREAM = *BY-PROG % -------------------- FILE-CONTROL-BLOCK ISAM FILE ATTRIBUTES ----------- % KEY-POS = *BY-PROG KEY-LEN = *BY-PROG POOL-LINK = *BY-PROG % LOGIC-FLAG = *BY-PROG VAL-FLAG = *BY-PROG PROPA-VAL = *BY-PROG % DUP-KEY = *BY-PROG PAD-FACT = *BY-PROG READ-I-ADV = *BY-PROG % WR-IMMED = *BY-PROG POOL-SIZE = *BY-PROG
/copy-file from=max.file.4,to=max.tape-file.2,prot=*same ——————————— (10)
/show-file-attr max.tape-file.2,inf=(org=*yes,alloc=*yes,prot=*yes) ———— (11)
% :2OS2:$USER1.MAX.TAPE-FILE.2 % ------------------------------- HISTORY ------------------------------- % CRE-DATE = 2012-03-19 ACC-DATE = 2012-03-19 CHANG-DATE = 2012-03-19 % CRE-TIME = 00:00:00 ACC-TIME = 00:00:00 CHANG-TIME = 00:00:00 % ACC-COUNT = 1 S-ALLO-NUM = 0 % ------------------------------- SECURITY ------------------------------- % READ-PASS = NONE WRITE-PASS = NONE EXEC-PASS = NONE % USER-ACC = ALL-USERS ACCESS = WRITE ACL = NO % AUDIT = NONE FREE-DEL-D = *NONE EXPIR-DATE = 2012-03-19 % DESTROY = NO FREE-DEL-T = *NONE EXPIR-TIME = 00:00:00 % ------------------------------- BACKUP ------------------------------- % BACK-CLASS = A SAVED-PAG = COMPL-FILE VERSION = 1 % #BACK-VERS = 0 % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = SAM BUF-LEN = STD(1) BLK-CONTR = PAMKEY % REC-FORM = (V,N) REC-SIZE = 2044 % CODE = EBCDIC LABEL = (STD,1) FILE-SEQ = 2 % BLK-OFFSET = 4 % ------------------------------- ALLOCATION ------------------------------- % SUPPORT = PVT BLK-COUNT = 14 % EXTENTS VOLUME DEVICE-TYPE EXTENTS VOLUME DEVICE-TYPE % D2315K TAPE-C4 %:2OS2: TAPE : 1 FILE
(1) | Ausgabe des Katalogeintrags der Datei MAX.TAPE-FILE.1 mit Informationen über Dateiaufbau und Datenträgerbelegung. Es existiert nur der Katalogeintrag. Die Datei ist noch nicht geöffnet worden (z.B. FILE-STRUC=NONE). Die Daten der Datei sollen auf der Magnetbandkassette D2315K vom Volume-Typ TAPE-C4 gespeichert werden. Da noch kein Datenträger belegt ist, wird das Datenträgerkennzeichen in Klammern angezeigt. |
(2) | Erstellen eines TFT-Eintrags mit dem Kettungsnamen DMCOPY22 für die Datei MAX.TAPE-FILE.1. Es wird der Standard-Kettungsname des COPY-FILE für die Empfangsdatei verwendet. |
(3) | Ausgabe der Katalogeinträge für die Dateien MAX.FILE.4 und MAX.FILE.5 mit Informationen über den Dateischutz. Beide Dateien besitzen einen BASIC-ACL-Eintrag als höchste aktivierte Zugriffskontrolle. Das Merkmal USER-ACCESS ist jeweils mit ALL-USERS eingetragen. |
(4) | Ausgabe des TFT-Eintrags mit dem Kettungsnamen DMCOPY22 mit Informationen über die Dateiverarbeitung. |
(5) | Kopieren der Datei MAX.FILE.5 in die Banddatei MAX.TAPE-FILE.1 mit PROTECTION=*SAME. |
(6) | Ausgabe des Katalogeintrags der Datei MAX.TAPE-FILE.1 mit Informationen über Dateischutz,Dateiaufbau und Datenträgerbelegung. Die Dateimerkmale sind aktualisiert (z.B. FILE-STRUC=SAM). Die Datei belegt den Datenträger D2315K. Die BASIC-ACL konnte nicht übernommen werden. Die Datei ist nur der Standard-Zugriffskontrolle geschützt, wobei das Merkmal USER-ACCESS auf OWNER-ONLY gesetzt wurde. |
(7) | Erzeugen eines Katalogeintrags für die Banddatei MAX.TAPE-FILE.2, deren Daten ebenfalls auf der Magnetbandkassette D2315K gespeichert werden sollen. |
(8) | Erstellen eines TFT-Eintrags mit dem Kettungsnamen DMCOPY22 für die Datei MAX.TAPE-FILE.2. Es wird der Standard-Kettungsname des COPY-FILE für die Empfangsdatei verwendet. Da die Datei als zweite Datei auf der Magnetbandkassette abgespeichert werden soll, muss zusätzlich FILE-SEQUENCE=*NEW vereinbart werden (alternativ wäre auch FILE-SEQUENCE=2 möglich). Ohne diese Vereinbarung würde beim Kopiervorgang der Standardwert FILE-SEQUENCE=1 angenommen und die erste Datei dabei überschrieben. |
(9) | Ausgabe des TFT-Eintrags mit dem Kettungsnamen DMCOPY22 mit Informationen über die Dateiverarbeitung (siehe Ausgabefeld F-SEQ). |
(10) | Kopieren der Datei MAX.FILE.5 in die Banddatei MAX.TAPE-FILE.2 mit PROTECTION=*SAME. |
(11) | Ausgabe des Katalogeintrags der Datei MAX.TAPE-FILE.2 mit Informationen über Dateischutz, Dateiaufbau und Datenträgerbelegung. Die Dateimerkmale sind aktualisiert (z.B. FILE-STRUC=SAM). Die Datei belegt als zweite Datei den Datenträger D2315K. Die BASIC-ACL konnte nicht übernommen werden. Die Datei ist nur durch die Standard-Zugriffskontrolle geschützt, wobei das Merkmal USER-ACCESS auf *ALL-USERS gesetzt wurde. |
Beispiel 8: Kopieren mit unterschiedlicher BLOCK-CONTROL-INFO
/show-file-attr ah.lib,org=*yes —————————————————————————————— (1)
%0000000273 :2OSG:$USER1.ASS.PLAMLIB % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = PAM BUF-LEN = STD(1) BLK-CONTR = PAMKEY % IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE % TYPE = PLAM-LIB % AVAIL = *STD % WORK-FILE = *NO F-PREFORM = *NONE S0-MIGR = *ALLOWED %:2OSG: PUBLIC: 1 FILE RES= 273 FRE= 47 REL= 45 PAGES
/add-file-link link=dmcopy22,file-name=max.file.12,
block-contr=*no —————— (2)
/copy-file from=ah.lib,to=max.file.12,block-contr=*check-removal —————— (3)
/show-file-attr max.file.12,org=*yes —————————————————————————————— (4)
%0000000273 :2OSG:$USER1.MAX.FILE.12 % ------------------------------- ORGANIZATION ------------------------------- % FILE-STRUC = PAM BUF-LEN = STD(1) BLK-CONTR = NO % IO(USAGE) = READ-WRITE IO(PERF) = STD DISK-WRITE = IMMEDIATE % TYPE = PLAM-LIB % AVAIL = *STD % WORK-FILE = *NO F-PREFORM = *NONE S0-MIGR = *ALLOWED %:2OSG: PUBLIC: 1 FILE RES= 273 FRE= 47 REL= 45 PAGES
(1) | Ausgabe des Katalogeintrags der Datei ASS.PLAMLIB mit Informationen über den Dateiaufbau. Die Datei ist eine PLAM-Bibliothek, die mit BLOCK-CONTROL-INFO = *PAMKEY erstellt wurde. Die Datei soll in eine NK-Datei mit BLOCK-CONTROL-INFO = *NO kopiert werden. Da die innere Blockstruktur der Datei nicht vom PAM-Schlüssel abhängt, kann in diesem Fall eine unterschiedliche BLOCK-CONTROL-INFO beim Kopieren zugelassen werden. |
(2) | Erzeugen eines TFT-Eintrag mit dem Kettungsnamen DMCOPY22 für die Empfangsdatei MAX.FILE.12 mit BLOCK-CONTROL-INFO=*NO. Es wird der Standard-Kettungsname des COPY-FILE für die Empfangsdatei verwendet. |
(3) | Kopieren der Datei ASS.PLAMLIB in die Datei MAX.FILE.12 mit BLOCK-CONTROL-INFO = *CHECK-REMOVAL (Kopieren nur, wenn keine Benutzerinformation aus dem PAM-Schlüssel verloren geht). |
(4) | Ausgabe des Katalogeintrags der Empfangsdatei MAX.FILE.12 mit Informationen über den Dateiaufbau. Die Datei wurde mit BLOCK-CONTOL-INFO=*NO erzeugt. |
Beispiel 9: Kopieren mehrerer Dateien mit einem COPY-FILE-Kommando
/copy-file from=<proc>.<ptest>.*,to=<2>-backup.<1>edure.<3>,
output=*sysout,dialog-contr=*file-change ——————————————————— (1)
% DMS0810 EXECUTE JOB FOR FILE(S) ':2OSG:$USER1.PROC.PTEST.EDT' (Y=YES; N=NO; T =TERMINATE; ?=HELP/FURTHER OPTIONS)?y % DMS0816 JOB FOR THE FILE NAME ':2OSG:$USER1.PROC.PTEST.EDT' SUCCESSFULLY EXEC UTED WITH FILE NAME ':2OSG:$USER1.PTEST-BACKUP.PROCEDURE.EDT' % DMS0810 EXECUTE JOB FOR FILE(S) ':2OSG:$USER1.PROC.PTEST.KOSTEN' (Y=YES; N=NO ; T=TERMINATE; ?=HELP/FURTHER OPTIONS)?y % DMS0816 JOB FOR THE FILE NAME ':2OSG:$USER1.PROC.PTEST.KOSTEN' SUCCESSFULLY E XECUTED WITH FILE NAME ':2OSG:$USER1.PTEST-BACKUP.PROCEDURE.KOSTEN' % DMS0810 EXECUTE JOB FOR FILE(S) ':2OSG:$USER1.PROC.PTEST.KOSTEN1' (Y=YES; N=N O; T=TERMINATE; ?=HELP/FURTHER OPTIONS)?y % DMS0816 JOB FOR THE FILE NAME ':2OSG:$USER1.PROC.PTEST.KOSTEN1' SUCCESSFULLY EXECUTED WITH FILE NAME ':2OSG:$USER1.PTEST-BACKUP.PROCEDURE.KOSTEN1' % DMS0810 EXECUTE JOB FOR FILE(S) ':2OSG:$USER1.PROC.PTEST.KOSTEN2' (Y=YES; N=N O; T=TERMINATE; ?=HELP/FURTHER OPTIONS)?y % DMS0816 JOB FOR THE FILE NAME ':2OSG:$USER1.PROC.PTEST.KOSTEN2' SUCCESSFULLY EXECUTED WITH FILE NAME ':2OSG:$USER1.PTEST-BACKUP.PROCEDURE.KOSTEN2' % DMS0810 EXECUTE JOB FOR FILE(S) ':2OSG:$USER1.PROC.PTEST.REVERSE' (Y=YES; N=N O; T=TERMINATE; ?=HELP/FURTHER OPTIONS)?y % DMS0816 JOB FOR THE FILE NAME ':2OSG:$USER1.PROC.PTEST.REVERSE' SUCCESSFULLY EXECUTED WITH FILE NAME ':2OSG:$USER1.PTEST-BACKUP.PROCEDURE.REVERSE' % DMS0810 EXECUTE JOB FOR FILE(S) ':2OSG:$USER1.PROC.PTEST.STEUER' (Y=YES; N=NO ; T=TERMINATE; ?=HELP/FURTHER OPTIONS)?y % DMS0816 JOB FOR THE FILE NAME ':2OSG:$USER1.PROC.PTEST.STEUER' SUCCESSFULLY E XECUTED WITH FILE NAME ':2OSG:$USER1.PTEST-BACKUP.PROCEDURE.STEUER'
/copy-file from=prot.*fehl/,to=fehlerprotokoll-/.*,output=*sysout———————— (2)
% DMS0810 EXECUTE JOB FOR FILE(S) ':2OSG:$USER1.PROT.*FEHL/' (Y=YES; N=NO; T=TE RMINATE; ?=HELP/FURTHER OPTIONS)?y % DMS0812 '05A9' DMS ERROR CODE OCCURRED DURING EXECUTION OF THE JOB FOR THE FI LE NAME ':2OSG:$USER1.PROT.SDFFRAME.FEHL1' WITH THE FILE NAME ':2OSG:$USER1.FEHL ERPROTOKOLL-1.SDFFRAME.'. FURTHER INFORMATION: /HELP-MSG DMS05A9 % DMS0813 CONTINUE JOB AFTER ERROR (Y=YES; N=NO; R=RETRY; ?=HELP/FURTHER OPTIONS?
y ————————————————————————————————————————————————————————————————————— (3)
% DMS0816 JOB FOR THE FILE NAME ':2OSG:$USER1.PROT.VARFEHL1' SUCCESSFULLY EXECU TED WITH FILE NAME ':2OSG:$USER1.FEHLERPROTOKOLL-1.VAR' % DMS0816 JOB FOR THE FILE NAME ':2OSG:$USER1.PROT.VARFEHL2' SUCCESSFULLY EXECU TED WITH FILE NAME ':2OSG:$USER1.FEHLERPROTOKOLL-2.VAR'
(1) | Es sollen alle Dateien kopiert werden, deren erster Teilname PROC und deren zweiter Teilname PTEST ist. Die neu zu bildenden Namen sollen PTEST (in der Index-Schreibweise die zweite Suchzeichenfolge) und -BACKUP als ersten Teilnamen besitzen. Der zweite Teilname soll aus PROC (erste Suchzeichenfolge) und EDURE bestehen. Der dritte Namensteil der Suchzeichenfolge soll bestehen bleiben. Der Kopiervorgang soll für jede Datei bestätigt werden (DIALOG-CONTROL) und es soll der neue Name nach SYSOUT ausgegeben werden (OUTPUT). |
(2) | Es sollen alle Dateien kopiert werden, die mit dem Teilnamen PROT beginnen, eine beliebige Zeichenfolge enthalten und mit der Zeichenfolge FEHL und einem weiteren Zeichen enden. Die neuen Namen sollen mit dem Teilnamen beginnen, der sich aus der Zeichenfolge FEHLERPROTOKOLL- und dem letzten Zeichen der Suchzeichenfolge zusammensetzt. Anschließen soll die Zeichenfolge folgen, die in der Suchzeichenfolge mit * bezeichnet wurde. |
(3) | Bei der Bearbeitung der Datei PROT.SDFFRAME.FEHL1 trat ein Fehler auf. Der neu gebildete Name der Zieldatei würde mit einem Punkt enden und kann deshalb nicht vergeben werden. Mit YES wird die Bearbeitung fortgesetzt. |