Makrotyp: S-Typ (E-Form/L-Form/D-Form/C-Form/M-Form) (siehe "Typen von Makroaufrufen")
Der CATAL-Makroaufruf erstellt oder ändert Katalogeinträge. Insbesondere kann der Anwender damit Merkmale für Datei- und Datenschutz, sowie den gültigen Zeichensatz und Performance-Attribute festlegen; er kann auch temporäre Dateien in permanente umwandeln oder umgekehrt.
Sollen Merkmale bereits bestehender Katalogeinträge geändert werden, muss der Operand STATE=*UPDATE angegeben werden. Es werden allerdings nur die Dateimerkmale, d.h. die Felder des Katalogeintrags, geändert, deren zugehörige Operanden mit gültigem Operandenwert angegeben werden.
Ein Katalogeintrag kann nur geändert werden, wenn Schreibzugriff nicht durch ein Kennwort unterbunden ist. Dieses muss dann vor Zugriff auf den Katalogeintrag mit dem Kommando ADD-PASSWORD (siehe Handbuch „DVS Einführung“ [1]) in die Kennworttabelle des Auftrags eingetragen werden.
Mit CATAL können Dateien, Dateigenerationen und Dateigenerationsgruppen katalogisiert werden. Für Dateien und Dateigenerationsgruppen lassen sich die Schutzmerkmale verändern, die Schutzmerkmale von Dateigenerationen sind durch den Gruppeneintrag festgelegt.
Der Makro CATAL unterstützt die Funktion „Default-Protection“.
Die Verschlüsselungsmerkmale einer Datei können mit dem Makro CATAL nicht geändert werden.
Temporäre Dateien
Da temporäre Dateien auftragsabhängig sind, kann für sie kein Dateischutz vereinbart werden, d.h. die entsprechenden Standardmerkmale können nicht verändert werden. Beim Einrichten einer temporären Datei bzw. wenn eine permanente Datei in eine temporäre umkatalogisiert wird (oder umgekehrt), sind nachfolgende Punkte zu beachten.
Temporäre Dateien können von einem nichtprivilegierten Benutzer nur auf dem DefaultPubset seiner Benutzerkennung angelegt werden.
Einrichten einer temporären Datei:
Die temporäre Datei bekommt folgende Attribute (eine explizite Angabe anderer Werte ist hierfür generell nicht zulässig):
EXPIRATION-DATE = <tagesdatum> BACKUP-CLASS = *E USER-ACCESS = *OWNER-ONLY READ-PASSWORD = *NONE WRITE-PASSWORD = *NONE EXEC-PASSWORD = *NONE BASIC-ACL = *NONE GUARDS = *NONE FREE-FOR-DELETION = *NONE ACCESS = *WRITE MANAGEMENT-CLASS = *NONE AVAILABILITY = *STD NUM-OF-BACKUP-VERS = 0 Das Attribut DISK-WRITE wird standardmäßig auf *BY-CLOSE gesetzt, kann jedoch durch explizite Angabe auf *IMMEDIATE gesetzt werden. Ebenso kann für das Attribut MIGRATE mit dem Standardwert *INHIBITED durch explizite Angabe der Wert *FORBIDDEN gesetzt werden.
Umkatalogisieren von temporär nach permanent:
Wenn keine expliziten Angaben gemacht werden, bekommt die permanente Datei folgende Attribute:
BACKUP-CLASS = Wert der Class2-Option BACKUP NUM-OF-BACKUP-VERS = Wert der Class2-Option NUMBACK DISK-WRITE = *IMMEDIATE MIGRATE
Wenn für die temporäre Datei MIGRATE=*INHIBITED vereinbart war, wird für die permanente Datei *ALLOWED gesetzt (MIGRATE=*FORBIDDEN bleibt unverändert). Die übrigen Attribute werden unverändert von der temporären Datei übernommen.
Umkatalogisieren von permanent nach temporär:
Die temporäre Datei bekommt die gleichen Attribute wie beim Einrichten einer temporären Datei, siehe oben.
Der einzige Unterschied betrifft den Wert für MIGRATE: Wenn für die permanente Datei MIGRATE=*ALLOWED vereinbart war, wird für die temporäre Datei *INHIBITED gesetzt (MIGRATE=*FORBIDDEN bzw. *INHIBITED bleibt unverändert).
Das Umkatalogisieren wird abgewiesen, wenn der angegebene Wert für NUM-OF-BACKUP-VERS > 0 ist, unabhängig davon, ob die permanente Datei am Versions-Backup teilnimmt oder nicht.In einem SM-Pubset wird das Umbenennen von temporär nach permanent und umgekehrt abgewiesen, wenn eine gleichzeitige Änderung der Dateiattribute ein Umallokieren auf einen anderen Volume-Set (S0-Migration) erfordert.
Das Umkatalogisieren einer Arbeitsdatei (WORK-FILE) oder einer Datei auf einem Net-Storage-Volume in eine temporäre Datei oder umgekehrt ist nicht möglich.
Dateigenerationsgruppen (FGG)
Beim Erstellen oder beim Zugriff auf den Katalogeintrag von Dateigenerationsgruppen sind einige Besonderheiten zu beachten:
Will der Anwender mit einer Dateigenerationsgruppe arbeiten, muss er den Gruppeneintrag erstellen, bevor er die erste Generation katalogisiert. Im Gegensatz zu Dateien und Dateigenerationen, die auch mit FILE katalogisiert werden können, kann der Gruppeneintrag auf Programmebene nur mit dem CATAL-Makroaufruf erstellt werden.
Wenn der Index der Dateigenerationsgruppe auf öffentlichem Datenträger eingerichtet wird (keine Angabe von VOLUME und/oder DEVICE), können die Generationen sowohl auf öffentlichem Datenträger als auch auf Bändern (Programmschnittstelle FILE) angelegt werden.
Wird der Index der Dateigenerationsgruppe auf Privatplatte eingerichtet (Angabe von VOLUME/DEVICE), dann können den Generationen ebenfalls nur auf Privatplatten (Programmschnittstelle FILE) angelegt werden.
Dateien können in Dateigenerationen umkatalogisiert werden, wenn die Dateigenerationen noch nicht vorhanden sind. Eine Datei auf einem Net-Storage-Volume kann nicht in eine Dateigeneration umbenannt werden. Dateigenerationen können nicht in Dateien umkatalogisiert werden.
Für einzelne Dateigenerationen einer Dateigenerationsgruppe können die Attribute (Operanden) STOCLAS, IOPERF, IOUSAGE, DISKWR und S0MIGR vergeben bzw. verändert werden.
Die Einträge der Benutzer- bzw. Systemverwaltungs-Metainformation (Operanden USRINFO und ADMINFO) können für den Index der Dateigenerationsgruppe und jede einzelne Dateigeneration getrennt festgelegt werden.
Die übrigen Attribute können nur für die ganze Dateigenerationsgruppe festgelegt werden. Sie werden automatisch vom Index auf alle katalogisierten Generationen vererbt.
- Das Attribut USER-ACCESS darf bei Dateigenerationsgruppen nicht auf SPECIAL gesetzt werden.
- Die Vergabe von Ausführungsrechten ist für Dateigenerationsgruppen nicht möglich und auch nicht sinnvoll, da Generationen generell nicht ausgeführt werden können (Kommando CALL-PROCEDURE bzw. START-PROGRAM wird abgewiesen).
Die Schutzattribute READ-PASSWORD, WRITE-PASSWORD und EXPIRATION-DATE schützen nicht den Index einer Dateigenerationsgruppe vor dem Anlegen neuer Generationen mit CATAL. Es können also davon unabhängig neue Generationen katalogisiert und dementsprechend in Abhängigkeit von der gewählten OVERFLOW-OPTION auch alte Generationen gelöscht werden.
In eine Dateigenerationsgruppe mit dem Attribut ACCESS=READ kann mit CATAL <generationsname>,STATE=*NEW keine neue Generation angelegt werden, aber mit CATAL <datei>,<generationsname>,STATE=*UPDATE.
Die Schutzattribute BASIC-ACL und GUARDS schützen sowohl die Dateigenerationsgruppe (Index) also auch jede einzelne Dateigeneration. In einer mit diesen Attributen schreibgeschützten Dateigenerationsgruppe kann ein Aufrufer ohne Schreibrecht also keine neue Dateigeneration anlegen.
Dateigenerationsgruppen, die auf privaten Datenträgern gespeichert sind und für die kein Katalogeintrag existiert, werden als FOREIGN-Dateigenerationsgruppen bezeichnet. Sollen solche FGG wieder katalogisiert werden, muss zunächst der Gruppeneintrag erstellt werden. Für Dateigenerationsgruppen auf Privatplatte kann dazu der Operand STATE=*FOREIGN angegeben werden, wenn der Gruppeneintrag im F1-Kennsatz der Platte enthalten ist. Das System erstellt den Katalogeintrag dann aus dem F1-Kennsatz der über DEVICE- und VOLUME-Operand bezeichneten Privatplatte. Anschließend müssen die zugehörigen Dateigenerationen importiert werden (z.B. Makro FILE, Operand STATE=*FOREIGN).
Soll eine Dateigenerationsgruppe importiert werden, deren Generationen auf Band oder auf Privatplatte gespeichert sind, deren F1-Kennsatz den Gruppeneintrag nicht enthält, müssen im CATAL-Makroaufruf zur Rekonstruktion des Gruppeneintrages die Operanden FIRST und mindestens einer der Operanden BASE oder LAST angegeben werden.
Beim Einrichten einer Dateigenerationsgruppe im SM-Pubset muss implizit über die Vergabe einer Default-Storage-Klasse oder explizit durch Angabe des Operanden WORKGRP festgelegt werden, ob es sich um eine Gruppe von permanenten Generationen oder um eine Arbeits-Generationsgruppe handelt (Attribut WORK-FILE). Eine nachträgliche Änderung des Attributes ist nicht möglich.
Wenn den zugehörigen Generationen eine Storage-Klasse zugewiesen wird (bei Erst-Allokierung über Programmschnittstelle FILE) oder die Storage-Klasse ausgetauscht wird, muss das WORK-FILE-Attribut in der Storage-Klasse mit dem Attribut der Gruppe übereinstimmen.
Dateien auf Magnetband/Magnetbandkassetten
Beim Erstellen oder beim Zugriff auf den Katalogeintrag von Banddateien sind Besonderheiten zu beachten, die sich durch das Speichermedium ergeben.
Angaben zu Mehrbenutzbarkeit (SHARE), Zugriffsart (ACCESS) und Kennworte werden für Dateien mit Standardkennsätzen zum Zeitpunkt der Dateierstellung vom Katalogeintrag in die Dateikennsätze übertragen. Für FOREIGN-Dateien werden bei der Dateieröffnung die Angaben zu den Zugriffsrechten aus den Kennsätzen in den Katalogeintrag übernommen.
Da Dateikennsätze auf einem Band nicht geändert werden können, ohne die Datei zu zerstören (Hardware-Einschränkung), und der Inhalt des Katalogeintrags einer Datei mit dem Inhalt der Dateikennsätze übereinstimmen muss, können Zugriffsrechte und Freigabedatum mit CATAL nicht mehr geändert werden, wenn die Banddatei einmal ordnungsgemäß eröffnet und geschlossen wurde.
Wurde eine Banddatei mit einem FILE-Makroaufruf katalogisiert, können vor dem ersten Eröffnen der Datei die Dateischutzmerkmale mit CATAL verändert werden. Diese Merkmale werden dann bei der Dateierstellung ohne Prüfung in die Kennsätze übertragen. Auf diese Weise kann Schreibschutz (ACCESS=READ) für eine Datei vereinbart werden, die noch erstellt werden muss. Die Datei kann danach als Ausgabedatei eröffnet und erstellt werden; anschließend wird der Schreibschutz wirksam.
Hinweis
Wurde eine Banddatei mit FILE katalogisiert, ist sie mehrbenutzbar, wenn nicht mit CATAL vor dem ersten Eröffnen der Datei SHARE=NO vereinbart wird.
Wird für eine Banddatei Kennwortschutz vereinbart, übertragen die Kennsatzverarbeitungsroutinen bei der Dateierstellung die Kennwörter vom Katalogeintrag in den HDR3-Kennsatz, ohne sie zu prüfen (umgekehrt werden bei Datei-Import Kennwörter vom HDR3-Kennsatz in den Katalogeintrag übertragen).
Bei Dateiverarbeitung mit SECLEV=LOW wird die Prüfung der Kennwörter umgangen. Hat der Systemverwalter mit dem Systemparameter ENCRYPT Kennwortverschlüsselung vereinbart, wird bei Dateieröffnung im HDR3-Kennsatz das Verschlüsselungskennzeichen auf „1“ gesetzt.
Soll eine Datei (FILE=...) umbenannt werden (NEWNAME=...), so darf der neue Name nur aus dem alten Namen bestehen, der mit einer in Klammern eingeschlossenen Versionsbezeichnung versehen ist. Die Versionsbezeichnung muss von einer evtl. ursprünglich vorhandenen Versionsbezeichnung verschieden sein.
Diese Einschränkung ergibt sich aus der Bandkennsatz-Verarbeitung: Einzelne Blöcke einer Banddatei können aus Hardware-Gründen nicht überschrieben werden, und der Dateiname im Kennsatz wird bei der Datei-Eröffnung mit dem Dateinamen im Katalogeintrag verglichen.
Zugriffsarten (ACCESS) für Banddateien:
Bei ACCESS=*WRITE sind alle OPEN-Modi zulässig.
Bei ACCESS=*READ sind nur die OPEN-Modi INPUT und REVERSE zulässig.
Entsprechend den Angaben im ACCESS-Operanden wird die Zugriffsart im HDR1-Kennsatz folgendermaßen eingetragen:
ACCESS=*READ
->
Zugriffsart 1ACCESS=*WRITE
->
Zugriffsart 2
Der ACCESS-Operand wird hauptsächlich dazu verwendet, eine Datei gegen Zerstörung zu sichern (ACCESS=*READ). Nur der Eigentümer der Datei kann die Prüfung der Zugriffsart umgehen, indem er den Operanden SECLEV=LOW im FCB-Makro verwendet.
Mehrbenutzbarkeit (USER-ACCESS/SHARE) für Banddateien:
Entsprechend den Angaben im SHARE-Operanden wird die Zugriffsart im HDR1-Kennsatz folgendermaßen eingetragen:
SHARE=*NO (USER-ACCESS=*OWNER-ONLY)
->
Zugriffsvermerk 1SHARE=*YES (USER-ACCESS=*ALL-USERS)
->
Zugriffsvermerk 2
Es wird standardmäßig USER-ACCESS=*ALL-USERS angenommen, wenn der Katalogeintrag mit dem FILE-Aufruf erstellt wurde.
DESTROY-Operand:
Wurde DESTROY=*YES angegeben, wird nach dem Schließen (CLOSE) der Datei der Rest des Bandes gelöscht.
Hinweise zur Verwendung von Wildcard-Dateinamen
Wenn ein Wildcard-Dateiname (Auswahl- und/oder Konstruktionsangabe) mit Stern beginnen soll und keine weiteren Wildcard-Symbole enthält, muss der führende Stern doppelt angegeben werden. Andernfalls wird der Auftrag abgewiesen. Beispiele: gültig sind '**A' und '*A/Z', ungültig sind '*ABC' und 'P(A)'.
Wenn ein Wildcard-Dateiname (Auswahl und/oder Konstruktionsangabe) mit zwei Sternen beginnt, werden diese bezüglich der Konstruktion wie ein Stern gehandelt. Beispiel: Ein CATAL-Aufruf mit den Parametern FILE='A.*.* und NEWNAME='**.OLD.*' benennt eine existierende Datei 'A.TEST.1' um in 'TEST.OLD.1'.
Der Inhalt der Class2-Option TEMPFILE stellt hier (im Gegensatz zu FSTAT) keinen teilqualifizierten Dateinamen dar. Stattdessen kann bzw. muss '.*' verwendet werden.
Hinweis zu SM-Pubsets
Folgende Angaben werden ignoriert für Dateien/Generationen/FGGs auf Volume-Sets mit permanenter Datenhaltung, wenn die Dateikennung am betroffenen SM-Pubset eine Default-Storage-Klasse hat und physikalische Allokierung verboten ist:
AVAIL, DISKWR, IOPERF, IOUSAGE, S0MIGR=*ALLOWED, STOCLAS=*NONE.
Funktionsübersicht
Funktion | FGG | FGG | Gene | Gene | Gene | perm. | perm. | perm. | temp. | temp. | Operand |
Katalogeintrag identifizieren | x | x | x | x | x | x | x | x | x | x | pfadname |
Datei/FGG umbenennen | x | x | x | x | x | x | x | pfadname2 | |||
Katalogeintrag |
|
|
|
|
|
|
|
| STATE | ||
Schreib- oder nur Lesezugriff erlauben | x | x | x | x | x | ACCESS | |||||
Zugriffskontrolle BASIC-ACL | x | x | BASACL | ||||||||
x | x | OWNERAR | |||||||||
x | x | GROUPAR | |||||||||
x | x | OTHERAR | |||||||||
Zugriffskontrolle GUARDS | x | x | GUARDS | ||||||||
Übernahme von Schutzattributen | x | x | x | x | x | x | x | PROTECT | |||
Mehrbenutzbarkeit | x | x | x | x | x | SHARE | |||||
Kennwortschutz gegen |
|
|
|
|
|
| |||||
Schutzfrist | x | x | x | x | EXDATE | ||||||
Freigabe zum Löschen | x | x | x | x | DELDATE | ||||||
automatische Datenzerstörung | x | x | x | x | x | x | x | DESTROY | |||
Zugriffsüberwachung | x | x | x | x | x | AUDIT | |||||
Häufigkeit der ARCHIVE-Sicherung | x | x | x | x | BACKUP | ||||||
Umfang der ARCHIVE-Sicherung | x | x | x | x | LARGE | ||||||
HSMS-Migration zulassen / nicht zulassen | x | x | x | x | x | MIGRATE | |||||
maximale Anzahl der im Versions-Backup-Archiv gesicherten Datei-Versionen | x | NUM_OF_BACKUP_VERS | |||||||||
SM-Pubset-Migration zulassen/nicht zulassen | x | x | x | S0MIGR | |||||||
Verfügbarkeit | x | x | AVAIL | ||||||||
HSMS-Management-Klasse | x | x | MANCLAS | ||||||||
Storage-Klasse | x | x | STOCLAS | ||||||||
Zeichensatz zuweisen/ Zuweisung löschen | x | x | x | x | x | CCS | |||||
Zeichensatz für Node-File auf Net-Storage zuweisen | x | NETCCS | |||||||||
Performance-Eigenschaften festlegen | x | x | x | IOPERF | |||||||
Bezugs-I/O-Operation für Performance | x | x | x | IOUSAGE | |||||||
Eignung zur Bearbeitung im Cache (DAB) | x | x | DISKWR | ||||||||
benutzereigene Meta-Information | x | x | x | x | USRINFO | ||||||
Systemverwaltungs-Meta-Information | x | x | x | x | ADMINFO | ||||||
FGG definieren | x | x | GEN |
Legende
PUB : | Public-Volume (gemeinschaftlicher Datenträger) |
PRV : | Private-Volume (Privatplatte) |
TAP : | Band |
x: | Das Attribut kann mit CATAL gesetzt bzw. modifiziert werden |
Format
Operation | Operanden |
|
|
Operandenbeschreibung
ACCESS
Mit dem ACCESS-Operanden kann eine Datei gegen Überschreiben gesichert werden; er gibt an, ob auf die Datei oder Dateigenerationen nur lesend oder auch schreibend zugegriffen werden darf. Dieses Schutzattribut ist nur relevant, wenn kein BASIC-ACL- oder GUARDS-Schutz aktiviert ist.
Banddateien:
Das DVS übernimmt beim ersten Eröffnen der Datei das ACCESS-Kennzeichen in den HDR3-Kennsatz. Bei späteren Dateizugriffen kann der Dateieigentümer die Überprüfung der Zugriffsart durch SECLEV=LOW (siehe "FCB - Dateisteuerblock definieren" bzw. "FILE - Dateimerkmale definieren/Dateiverarbeitung steuern") umgehen.
Voreinstellung (nur bei STATE=*NEW): ACCESS=*WRITE
= *WRITE
Für die Datei oder die Dateigenerationen sind alle Zugriffsarten zugelassen.
Banddateien, HDR3-Kennsatz: Zugriffsart = 0
= *READ
Auf die Datei oder die Dateigenerationen darf nur lesend zugegriffen werden, es sind nur die OPEN-Modi INPUT und REVERSE zulässig.
temporäre Dateien: Schreibzugriff kann nicht unterbunden werden, ACCESS=READ wird abgewiesen.
Banddateien, HDR3-Kennsatz: Zugriffsart = 1
= *UNCHANGED
Nur relevant im Zusammenhang mit der Angabe von PROTECT:
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für ACCESS unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert ACCESS=*WRITE eingetragen.
Der Wert *UNCHANGED unterdrückt insbesondere bei
PROTECT=*FROM_FILE
die Übernahme des entsprechenden Wertes aus der ReferenzdateiPROTECT=*BY_DEF_PROT_OR_STD und bei STATE=*NEW ohne Angabe zu PROTECT
die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertesgleichzeitiger Angabe von PROTECT=*STD und STATE=*UPDATE
das Zurücksetzen des Wertes im Katalogeintrag auf den Wert ACCESS=*WRITE
Bei STATE=*UPDATE gilt: Falls PROTECT nicht angegeben ist, ist die Angabe von *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe ACCESS=*WRITE (unabhängig von der Angabe bei PROTECT).
ADMINFO
Nur für Systemverwalter zulässig (Aufruf unter der Kennung TSOS):
Trägt eine Systemverwaltungs-Metainformation in den Katalogeintrag der Datei ein. Der Eintrag kann maximal 8 Byte beliebigen Inhalts aufnehmen; die Bedeutung legt der Systemverwalter fest.
Für Dateien auf privaten Datenträgern wird der Operand ignoriert.
= *NONE
Der Eintrag wird gelöscht.
= <c-string 1..8>
Die angegebenen Zeichen werden eingetragen.
= (<reg: A(char:8)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 8 Byte, in dem die einzutragende Metainformation abgelegt ist.
= <var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 8 Byte, in dem die einzutragende Metainformation abgelegt ist.
AUDIT
Nur für Benutzerkennungen mit dem Recht AUDIT=YES:
bestimmt, ob DVS-Zugriffe auf Dateien/Dateigenerationen durch System-Exit-Routinen überwacht werden sollen. Die Überwachung bezieht sich auf die Operationen CATAL, FILE, OPEN und ERASE.
Hat der Anwender nicht die Berechtigung AUDIT=YES, wird ein CATAL-Makroaufruf mit AUDIT-Angabe abgewiesen.
Voreinstellung (nur bei STATE=*NEW): AUDIT=*NONE
= *NONE
Keine Überwachung
= *ALL
Alle DVS-Operationen für die Datei/Generationen werden überwacht.
= *SUCC
Alle erfolgreichen DVS-Operationen für die Datei/Generationen werden überwacht.
= *FAIL
Alle erfolglosen DVS-Operationen für die Datei/Generationen werden überwacht.
AVAIL
Nur relevant bei STATE=*UPDATE für Dateien auf öffentlichen Datenträgern oder auf einem Net-Storage-Volume:
Die Anforderungen bezüglich der Ausfallsicherheit der Datei werden modifiziert. Dateien, die eine erhöhte Ausfallsicherheit haben sollen, werden auf einem entsprechenden Volume-Set (z.B. DRV – Dual Recording by Volume) allokiert.
Im SM-Pubset wird durch die Angabe des Operanden eine eventuell im Katalogeintrag der Datei eingetragene Storage-Klasse entfernt.
Der Operand darf nicht gleichzeitig mit dem Operanden STOCLASnot equal∗NONE angegeben werden.
Der Operand wird ignoriert für Dateien und Generationen auf Volume-Sets mit permanenter Datenhaltung, wenn die Dateikennung auf dem entsprechenden SM-Pubset eine Default-Storage-Klasse besitzt und physikalische Allokierung verboten ist.
= *STD
Es werden keine besonderen Anforderungen bezüglich der Ausfallsicherheit gestellt.
= *HIGH
Die Datei soll eine erhöhte Ausfallsicherheit haben. Es wird sichergestellt, dass die Datei auf einem entsprechenden Volume-Set allokiert ist. Bietet der gegenwärtige Ablageort nicht die Anforderungen einer erhöhten Ausfallsicherheit, wird der Auftrag für SF-Pubsets abgewiesen. In einem SM-Pubset wird der Auftrag nur dann abgewiesen, wenn kein geeigneter Volume-Set verfügbar ist oder die zulässigen Kontingente der Benutzerkennung überschritten werden. Ansonsten wird der Speicherplatz auf einen geeigneten Volume-Set umallokiert.
Ist die Datei auf einem privaten Datenträger abgelegt, ist sie eine Arbeitsdatei (WORK-FILE), oder ist sie auf eine Hintergrundebene migriert, dann wird der Auftrag mit Returncode abgewiesen. Bei temporären Dateien wird der Auftrag ebenfalls abgewiesen. Dies gilt auch, wenn eine temporäre Datei in eine permanente Datei umbenannt wird. In diesem Fall muss erst das Umbenennen erfolgen, und erst dann kann mit einem weiteren CATAL-Aufruf erhöhte Ausfallsicherheit vereinbart werden.
Hinweis für Dateien in SM-Pubsets:
Wenn der derzeitige Ablageort (Volume-Set) nicht die Anforderung einer hohen Verfügbarkeit bietet, aber ein geeigneter Volume-Set im SM-Pubset vorhanden ist, erfolgt automatisch ein Umallokieren der Daten bzw. des Speicherplatzes. Während des Umallokierens ist die Datei gesperrt (geöffnet), d.h. alle Zugriffe auf die Datei bzw. ihren Katalogeintrag werden abgewiesen, also insbesondere nicht in einen Wartezustand versetzt.
BACKUP
Nur für Dateien/FGG auf Platten:
BACKUP bezieht sich auf die automatische Dateisicherung mit dem Sicherungssystem ARCHIVE bzw. HSMS und legt fest, bei welchen Sicherungsläufen die Dateien oder die Generationen der FGG gesichert werden sollen.
Voreinstellung: | für permanente Dateien: | gemäß Class2-Option BACKUP |
= *A
Die Dateien/Generationen werden bei jedem Sicherungslauf gesichert.
= *B
Die Dateien/Generationen werden gesichert, wenn ein Sicherungslauf für Dateien mit BACKUP=*B/*C/*D stattfindet.
= *C
Die Dateien/Generationen werden gesichert bei Sicherungsläufen für BACKUP=*C/*D.
= *D
Dateien/Generationen werden nur gesichert bei Sicherungsläufen für BACKUP=*D.
= *E
keine automatische Sicherung mit ARCHIVE
BASACL
aktiviert die Zugriffskontrolle durch BASIC-ACL mit Standardzugriffsrechten oder deaktiviert die Zugriffskontrolle durch BASIC-ACL.
Der Schutz ist nur wirksam, wenn kein GUARDS-Schutz aktiviert ist.
Der Operand darf nicht zusammen mit den Operanden OWNERAR, GROUPAR oder OTHERAR angegeben werden.
Voreinstellung (nur bei STATE=*NEW): BASACL=*NONE
= *NONE
deaktiviert die Zugriffskontrolle durch BASIC-ACL.
= *STD
trägt die im Folgenden beschriebenen Standardzugriffsrechte in die Basic-ACL ein:
Bei Angabe von STATE=*NEW bzw. fehlender STATE-Angabe werden folgende Zugriffsrechte eingetragen:
OWNER
R W XGROUP
- - -OTHERS
- - -Dies entspricht der Angabe der Operanden OWNERAR=(READ=*YES,WRITE=*YES,EXEC=*YES), GROUPAR=*NO-ACCESS, OTHERAR=*NO-ACCESS.
Bei Angabe von STATE=*UPDATE (d.h. bei einer bereits katalogisierten Datei) werden die gültigen Werte für SHARE und ACCESS in BASIC-ACL-Werte umgesetzt, falls die Zugriffskontrolle über Basic ACL bisher nicht aktiviert war. Für die Umsetzung gilt folgende Tabelle:
SHARE ACCESS OWNER GROUP OTHERS NO READ R - X - - - - - - NO WRITE R W X - - - - - - YES / SPECIAL READ R - X R - X R - X YES / SPECIAL WRITE R W X R W X R W X Hinweise
Werden zusammen mit BASACL=*STD auch die Operanden SHARE, ACCESS und/oder PROTECT angegeben, dann erfolgt die Abbildung unter Berücksichtigung dieser Angaben.
Bei Dateigenerationsgruppen wird für EXEC nichts (kein Zugriff) eingetragen.
= *UNCHANGED
Nur relevant im Zusammenhang mit der Angabe von PROTECT:
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für BASIC-ACL unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird kein BASIC-ACL eingetragen.
Der Wert *UNCHANGED unterdrückt insbesondere bei
PROTECT=*FROM_FILE
die Übernahme des entsprechenden Wertes aus der ReferenzdateiPROTECT=*BY_DEF_PROT_OR_STD und bei STATE=*NEW ohne Angabe zu PROTECT
die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertesgleichzeitiger Angabe von PROTECT=*STD und STATE=*UPDATE
das Zurücksetzen des Wertes im Katalogeintrag (kein BASIC-ACL)
Bei STATE=*UPDATE gilt: Falls PROTECT nicht angegeben ist, ist die Angabe von *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit kein BASIC-ACL im Katalogeintrag (unabhängig von der Angabe bei PROTECT).
BASE
Nur für Dateigenerationsgruppen:
Definiert einen Bezugspunkt (eine Basisgeneration), auf die sich alle relativen Generationsnummern beziehen und ermöglicht außerdem die Rekonstruktion eines Index für Dateigenerationen auf privaten Datenträgern.
Wird beim Erstellen einer FGG (Gruppenindex) der BASE-Operand nicht angegeben, dann erhält er den Wert des FIRST-Operanden, bzw. wenn dieser auch nicht angegeben wird, den Wert 0.
Anwendung zur Index-Rekonstruktion:
Sollen von einer Privatplatte Generationen einer FGG importiert werden, deren Gruppeneintrag weder im Katalog noch im F1-Etikett der Platte existiert, muss zunächst der Gruppenindex rekonstruiert werden. Dazu muss ein CATAL-Aufruf mit den Operanden STATE=*NEW, GEN=<zahl>, FIRST=<zahl> und mindestens einem der Operanden BASE oder LAST durchgeführt werden. Wird nur der BASE-Operand angegeben, bestimmt er gleichzeitig die jüngste Dateigeneration, d.h. den Wert für LAST.
= <integer -99..9999>
Die neue Basisgeneration kann in Abhängigkeit vom angegebenen Wert für „zahl“ in absoluter oder relativer Form vereinbart werden.
absolute Form: Wertebereich: 1 <= zahl <= 9999.
STATE=*UPDATE: „zahl“ wird der neue Basiswert, der eine laut Indexeintrag existierende Generation bezeichnen muss.
STATE=*NEW: „zahl“ wird als Basiswert in den Katalog aufgenommen.
Wird BASE im Zusammenhang mit FIRST und/oder LAST angegeben, dann muss die Bedingung FIRST <= zahl <= LAST erfüllt sein.
relative Form:
Diese Angabe ist nur mit STATE=*UPDATE möglich:
Wertebereich: -99 <= zahl <= 0.
Bestimmt die Basisgeneration relativ zur jüngsten, laut Index katalogisierten Generation (KatalogfeldLAST-GEN
).
Der neue Basiswert muss eine laut Index existierende Dateigeneration bezeichnen, d.h. er muss >= dem Wert im AusgabefeldFIRST-GEN
sein.
= (<reg: int:2>)
Nur mit MF=M möglich:
Das angegebene Register enthält im unteren Halbwort den Basiswert (Wertebereich und Bedeutung siehe oben).
= <var: int:2>
Nur mit MF=M möglich:
Symbolische Adresse eines Halbwortes, in dem der Basiswert abgelegt ist (Wertebereich und Bedeutung siehe oben).
CCS
Nur für Dateien/FGG auf gemeinschaftlichen Datenträgern, für Dateien auf Net-Storage und für Banddateien:
Gültiger Zeichensatz der Datei.
In der Codiertabelle (Coded Character Set) ist festgelegt, wie die Zeichen eines nationalen Zeichensatzes binär abzuspeichern sind. Der festgelegte Zeichensatz beeinflusst z.B. die Bildschirmdarstellung der Zeichen, Sortierreihenfolge usw. (siehe Handbuch „XHCS“ [22]).
Für Dateien auf Privatplatte wird der Operand ignoriert, also auch kein Returncode geliefert.
Voreinstellung (nur bei STATE=*NEW): CCS=*NONE
= *NONE
Für die Datei soll kein Zeichensatz festgelegt werden.
= *STD
Der Zeichensatz wird aus dem Benutzerkatalogeintrag des Dateieigentümers übernommen, falls dort ein Zeichensatz ungleich EDF03IRV
eingetragen ist. Anderfalls gilt *NONE.
= <c-string 1..8>
Name des Zeichensatzes, mit dem die Datei bearbeitet werden soll (z.B. EDF03IRV
für die internationale Version von EBCDIC.DF.03
).
Der angegebene String wird nicht überprüft, insbesondere nicht dahingehend, ob es sich um den Namen eines definierten Coded Character Sets handelt.
= (<reg: A(char:8)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 8 Byte, in dem der Name des Coded Character Sets abgelegt ist.
= <var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 8 Byte, in dem der Name des Coded Character Sets abgelegt ist.
CHECK
Legt fest, unter welchen Bedingungen ein Anwenderdialog gestartet werden soll.
Wird der Dialog gestartet, kann der Benutzer entscheiden, ob die Verarbeitung für die angezeigten Dateien ausgeführt werden soll oder nicht. Er kann sich außerdem einen Hilfetext zu den Antwortmöglichkeiten ausgeben lassen sowie bei Fortsetzung der Verarbeitung einen neuen Wert für LIST und/oder CHECK festlegen.
Im Stapelbetrieb gilt immer der Wert *NO.
Voreinstellung: CHECK=*NO
= *NO
Alle ausgewählten Dateien werden ohne Kontrolldialog, d.h. ohne Eingriffsmöglichkeit des Benutzers verarbeitet.
= *MULTIPLE
Ein Kontrolldialog wird nur gestartet, wenn mehrere Dateien ausgewählt sind. Sind Wildcards in der Katalog und/oder Benutzerkennung enthalten, dann wird für jeden Katalog und/oder jede Benutzerkennung ein Kontrolldialog durchgeführt.
Implizit gilt auch CHECK=*ERROR.
= *ERROR
Ein Fehler-Kontrolldialog wird gestartet, wenn bei der Verarbeitung eines ausgewählten Dateinamens ein Fehler auftritt. Ein Dateimenge-Kontrolldialog wird gestartet, wenn die Auswahlangabe mehr Dateien selektiert, als Speicherplatz für deren Verarbeitung verfügbar ist. Bei allen CHECK-Angaben not equal *NO gilt implizit auch immer CHECK=*ERROR!
= *SINGLE
Für jeden ausgewählten Dateinamen wird ein Kontrolldialog durchgeführt. Implizit gilt auch CHECK=*ERROR.
= *CATALOG
Der Anwender muss in einem Kontrolldialog für jeden Katalog entscheiden, ob die darauf ausgewählten Dateien verarbeitet werden sollen.
Implizit gilt auch CHECK=*ERROR.
= *USERID
nur für Systemverwalter:
Der Systemverwalter muss in einem Kontrolldialog für jede Benutzerkennung auf jedem Katalog entscheiden, ob die ausgewählten Dateien verarbeitet werden sollen.
Implizit gilt auch CHECK=*ERROR.
DELDATE
Nur für Dateien auf gemeinschaftlichem Datenträger und für Dateien auf Net-Storage:
Legt den Zeitpunkt fest, ab dem die Datei ohne Berücksichtigung der Schutzattribute ACCESS, BASACL, EXDATE, GUARDS, RDPASS, WRPASS und EXPASS gelöscht oder ihr Speicherplatz freigegeben werden darf.
Eine absolute Datumsangabe wird abhängig von der Angabe des Operanden TIMBASE auf Basis der lokalen Zeit LTI (local time) oder der Weltzeit UTC (universal time coordinate) interpretiert, eine relative Angabe stets auf Basis der lokalen Zeit.
= *NONE
Die Datei soll nicht ohne Berücksichtigung der Schutzattribute gelöscht werden können (entspricht DELDATE='+0').
= *UNCHANGED
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für DELDATE unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert DELDATE=*NONE eingetragen.
Bei STATE=*UPDATE gilt: Falls PROTECT=*BY_DEF_PROT_OR_STD angegeben ist, unterdrückt der Wert *UNCHANGED die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertes; andernfalls ist die Angabe *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe *NONE (unabhängig von der Angabe bei PROTECT).
= <c-string 1..10> / (<reg: A(char:10)>) / <var: char:10>
[(<c-string 8..8> / (<reg: A(char:8)>) / <var: char:8>)]
Bestimmt den Zeitpunkt, ab dem die Datei ohne Berücksichtigung der Schutzattribute gelöscht werden darf. Dabei stehen die Variablen „...10“ für Datumsangaben und „...8“ für Zeitangaben.
Folgende Formate sind erlaubt:
'+<integer 0..99999>'[('<time 8..8>')]
'<date 8..10>'[('<time 8..8>')]
'yymmdd'[('<time 8..8>')]
Bei der relativen Angabe ist zur Unterscheidung von den absoluten Datumsangaben unbedingt das '+' anzugeben.
Datumsangaben, die nicht die volle Länge von 10 Zeichen ausfüllen, müssen mit Leerzeichen abgeschlossen sein.
Zweistellige Jahresangaben von 00 bis 59 werden mit 20 ergänzt, von 60 bis 99 mit 19.
Beispiele
... LA 7,DELTIME BEISP1 CATAL MF=M,VERSION=4,...,DELDATE='+1'((7)) LA 6,DELDATE BEISP2 CATAL MF=M,VERSION=4,...,DELDATE=(6)(DELTIME) BEISP3 CATAL MF=M,VERSION=4,...,DELDATE=DELDATE('00:00:00') ... DELDATE DC CL10'2016-11-11' 11.11.2016 DELTIME DC CL8'11:11' 11:11:00
DESTROY
Zur Erhöhung des Datenschutzes kann der Benutzer im Katalogeintrag festlegen, dass nicht mehr benötigte Daten mit X'00' (binär null) überschrieben werden. Bei Plattendateien wirkt sich die DESTROY-Angabe bei Speicherplatzfreigabe und Löschen aus (FILE- und ERASE-Makro), bei Banddateien auf das Überschreiben von Restdaten bei EOF- und EOV-Verarbeitung (siehe Makro FILE, Operand DESTOC, "FILE - Dateimerkmale definieren/Dateiverarbeitung steuern").
Voreinstellung (nur bei STATE=*NEW): DESTROY=*NO
= NO
Plattendateien:
Der Speicherplatz wird unverändert freigegeben, wenn nicht im ERASE-Aufruf der Operand DESTROY=*YES angegeben wurde.
Banddateien:
Auf dem Band folgende Restdaten werden nicht überschrieben, wenn im FILE-Aufruf für den aktuellen Verarbeitungslauf nicht DESTOC=YES vereinbart wird.
= YES
Plattendateien:
Der Speicherplatz wird bei Freigabe automatisch mit binär null (X'00') überschrieben.
Banddateien:
Restdaten auf Band werden gelöscht; mit FILE kann ebenfalls Löschen der Restdaten für den aktuellen Verarbeitungslauf eingestellt werden (Operand DESTOC).
= *UNCHANGED
Nur relevant im Zusammenhang mit der Angabe von PROTECT:
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für DESTROY unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert DESTROY=*NO eingetragen.
Der Wert *UNCHANGED unterdrückt insbesondere bei
PROTECT=*FROM_FILE
die Übernahme des entsprechenden Wertes aus der ReferenzdateiPROTECT=*BY_DEF_PROT_OR_STD und bei STATE=*NEW ohne Angabe zu PROTECT
die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertesgleichzeitiger Angabe von PROTECT=*STD und STATE=*UPDATE
das Zurücksetzen des Wertes im Katalogeintrag auf den Wert DESTROY=*NO
Bei STATE=*UPDATE gilt: Falls PROTECT nicht angegeben ist, ist die Angabe von *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe DESTROY=*NO (unabhängig von der Angabe bei PROTECT).
DEVICE
Nur für Dateigenerationsgruppen auf Privatplatten in Zusammenhang mit dem Operanden VOLUME:
Gibt an, auf welchem Gerätetyp die Dateigenerationsgruppe gespeichert bzw. von welchem Gerätetyp sie importiert werden soll (vgl. FILE-Makro, DEVICE-Operand).
Ist MAREN verfügbar, muss DEVICE nicht angegeben werden.
= <c-string: device>
Gerätetyp; mögliche Angaben sind der Gerätetabelle (siehe Handbuch „Systeminstallation [16]) zu entnehmen.
Jede Angabe eines Plattengerätetyps wird wie die Angabe STDDISK behandelt.
= (<reg: A(char:8)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 8 Byte, in dem der Gerätetyp abgelegt ist.
= <var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 8 Byte, in dem der Gerätetyp abgelegt ist.
DISKWR
Nur für Dateien und Dateigenerationen auf gemeinschaftlichen Datenträgern sowie Dateien auf Net-Storage-Volumes:
Gibt an, zu welchem Zeitpunkt nach einer Schreiboperation Datenkonsistenz gefordert wird.
Bei der Bearbeitung über einen flüchtigen Schreib-Cache befinden sich die Daten der Datei erst nach der CLOSE-Verarbeitung in einem konsistenten Zustand. Systemfehler während der Bearbeitungsphase können zu Inkonsistenzen führen. Für Dateien, die wichtige Daten enthalten, sollte deshalb Datenkonsistenz nach jeder Schreiboperation gefordert werden.
Voreinstellung:
DISKWR=*IMMEDIATE | für permanente Dateien |
DISKWR=*BY-CLOSE | für temporäre Dateien |
Wird DISKWR beim Umkatalogisieren temporär ->
permanent bzw. permanent ->
temporär nicht angegeben, dann wird der Eintrag automatisch auf den jeweiligen
Defaultwert/erlaubten Wert gesetzt.
Der Operand wird ignoriert (kein Returncode!), wenn:
er für Dateien angegeben wird, die nicht auf einem gemeinschaftlichen Datenträger liegen bzw. angelegt werden sollen.
die Dateikennung auf dem entsprechenden SM-Pubset eine Default-Storage-Klasse besitzt und physikalische Allokierung verboten ist.
Im SM-Pubset wird durch die Angabe des Operanden eine evtl. im Katalogeintrag der Datei eingetragene Storage-Klasse entfernt. Der Operand darf nicht gleichzeitig mit dem Operanden STOCLASnot equal*NONE angegeben werden.
= *IMMEDIATE
Die Daten der Datei müssen sich direkt nach Beendigung einer Schreiboperation in konsistentem Zustand befinden, d.h. die Datei soll nicht über einen flüchtigen Schreib-Cache bearbeitet werden (Defaultwert für permanente Dateien).
Für temporäre Dateien wird diese Angabe ignoriert.
= *BY-CLOSE
Die Daten der Datei müssen sich erst nach der CLOSE-Verarbeitung in einem konsistenten Zustand befinden (Defaultwert für temporäre Dateien).
DISP
Nur für Dateigenerationsgruppen:
Legt fest, ob beim Überschreiten der mit GEN festgelegten Höchstzahl gleichzeitig existierender Generationen die jeweils älteste Generation gelöscht und ihr Speicherplatz evtl. wiederverwendet werden soll. Bei Generationen auf Band wird nur der Katalogeintrag gelöscht.
Eine bestehende Schutzfrist wird beim Löschen der ältesten Generation ignoriert.
Voreinstellung (nur bei STATE=*NEW): DISP=*CYCLE
= *CYCLE
Die jeweils älteste Generation wird gelöscht, ihr Speicherplatz bzw. die von ihr belegten Bänder werden freigegeben. Im Gruppeneintrag werden die Felder LAST-GEN und FIRST-GEN (jüngste/älteste existente Generation) aktualisiert.
= *REUSE
Die Auswirkung von DISP=*REUSE ist abhängig vom Speichermedium:
Für FGG auf gemeinschaftlichen Platten:
Die älteste Generation wird gelöscht, ihr Speicherplatz an das System zurückgegeben, der Gruppeneintrag aktualisiert (siehe DISP=*CYCLE).
Für FGG auf Privatplatte:
Die neue Generation wird eingerichtet und die älteste Generation gelöscht. Der Datenträger der ältesten Generation wird für die Speicherung der neuen Generation verwendet. Erstreckte sich die gelöschte Generation über mehrere Platten, wird die neue Generation nur auf der ersten Platte katalogisiert. Der Gruppeneintrag wird entsprechend aktualisiert. Da die alte Generation erst gelöscht wird, wenn die neue Generation eingerichtet ist, kann Speicherplatzmangel auf der Platte dazu führen, dass die neue Generation nicht eingerichtet werden kann, obwohl DISP=*REUSE gilt.
für FGG auf Band:
Die älteste Generation wird aus dem Katalog gelöscht, die neue Generation wird auf den frei werdenden Bändern eingerichtet. Der Gruppeneintrag wird entsprechend aktualisiert. DISP=*REUSE ist nicht zulässig für Dateigenerationsgruppen auf MF/MV-Sets.
= *DELETE
Alle Generationen der FGG werden gelöscht, die neue Generation wird zur ältesten der neuen Serie. Der Gruppeneintrag wird entsprechend aktualisiert.
= *KEEP
Die „überzähligen“ ältesten Generationen werden nicht automatisch gelöscht, sondern erst dann, wenn der Anwender mit einem erneuten CATAL-Aufruf mit den Operanden FIRST und BASE eine neue „älteste“ und eine neue Basisgeneration bestimmt oder wenn er mit DISP= einen neuen Wert angibt. Im Gruppeneintrag wird beim Erstellen neuer Generationen jeweils nur das Feld LAST-GEN aktualisiert.
EXDATE
Legt die Schutzfrist (EXPIRATION-DATE) fest, während der die Datei nicht geändert oder gelöscht werden kann; d.h. sie kann nur gelesen werden („read only“).
Eine Schutzfrist kann nur für existente Dateien vereinbart werden, d.h. die Katalogfelder CRE-DATE und FILE-STRUC müssen einen Wert not equal NONE anzeigen. Das heißt auch, die CATAL-Operanden EXDATE und STATE=*NEW bzw. STATE=*FOREIGN sind nicht kombinierbar (EXDATE wird ignoriert).
Eine absolute Datumsangabe wird abhängig von der Angabe des Operanden TIMBASE auf Basis der lokalen Zeit LTI (local time) oder der Weltzeit UTC (universal time coordinate) interpretiert, eine relative Angabe stets auf Basis der lokalen Zeit.
Im Zusammenhang mit TIMBASE=*LTI bzw. einer relativen Datumsangabe wird als Uhrzeit immer 00:00:00 angenommen. Die explizite Angabe einer Uhrzeit wird nur im Zusammenhang mit TIMBASE=*UTC berücksichtigt, wobei jedoch die Minuten und Sekunden stets auf null gesetzt werden.
Hinweis
Ein vor dem aktuellen Tagesdatum liegendes Ende der Schutzfrist wird nicht eingetragen, stattdessen das aktuelle Tagesdatum mit der lokalen Zeit 0.00 Uhr.
Eine gleichzeitige Verwendung der Operanden EXDATE und RETPD ist nicht möglich.
= <c-string 1..10> / (<reg: A(char:10)>) / <var: char:10>
[(<c-string 8..8> / (<reg: A(char:8)>) / <var: char:8>)]
Bestimmt den Zeitpunkt, ab dem die Datei wieder verändert werden kann. Dabei stehen die Variablen „...10“ für Datumsangaben und „...8“ für Zeitangaben.
Folgende Formate sind erlaubt:
'+<integer 0..99999>'
'<date 8..10>'[('<time 8..8>')]
'yymmdd'[('<time 8..8>')]
Bei der relativen Angabe ist zur Unterscheidung von den absoluten Datumsangaben unbedingt das „+“ anzugeben.
Datumsangaben, die nicht die volle Länge von 10 Zeichen ausfüllen, müssen mit Leerzeichen abgeschlossen sein.
Zweistellige Jahresangaben von 00 bis 59 werden mit 20 ergänzt, von 60 bis 99 mit 19.
Beispiele
... LA 6,EXPDATE LA 7,EXPTIME BEISP1 CATAL MF=M,VERSION=4,...,EXDATE=(6)((7)) BEISP2 CATAL MF=M,VERSION=4,...,EXDATE=(6)('23:00:00') BEISP3 CATAL MF=M,VERSION=4,...,EXDATE=EXPDATE(EXPTIME) ... EXPDATE DC CL10'161231' 31.12.2016 EXPTIME DC CL8'00:00:00' 00:00:00
= *UNCHANGED
Nur relevant im Zusammenhang mit der Angabe von PROTECT:
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für EXDATE unverändert.
Der Wert *UNCHANGED unterdrückt für permanente Dateien mit Erstellungsdatum und für Dateigenerationsgruppen mit bereits katalogisiertem Gruppeneintrag insbesondere bei
PROTECT=*FROM_FILE
die Übernahme des entsprechenden Wertes aus der ReferenzdateiPROTECT=*BY_DEF_PROT_OR_STD
die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten WertesPROTECT=*STD
das Zurücksetzen des Wertes im Katalogeintrag auf das aktuelle Tagesdatum
Bei STATE=*UPDATE gilt: Falls PROTECT nicht angegeben ist, ist die Angabe von *UNCHANGED gleichbedeutend mit fehlender Angabe.
EXPASS
Nur für Dateien, nicht für FGG/Dateigenerationen:
Der Benutzer kann mit EXPASS ein sog. „Ausführungskennwort“ definieren oder löschen.
Der „Ausführungs“-Schutz bezieht sich auf den Aufruf eines Programms oder einer Prozedurdatei mit den Kommandos START-PROGRAM, LOAD-PROGRAM, CALL-PROCEDURE, INCLUDE-PROCEDURE oder ENTER-PROCEDURE.
Banddateien:
Der Kennwortschutz wird im HDR3-Kennsatz vermerkt
Verschlüsselte Dateien:
Alle EXPASS-Angaben werden wie *UNCHANGED behandelt.
Voreinstellung (nur bei STATE=*NEW): EXPASS=*NONE
= *NONE
Es wird kein Ausführungskennwort vereinbart oder ein bestehendes gelöscht.
= *UNCHANGED
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für EXPASS unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert EXPASS=*NONE eingetragen.
Falls PROTECT=*BY_DEF_PROT_OR_STD oder STATE=*NEW ohne Angabe zu PROTECT angegeben ist, unterdrückt der Wert *UNCHANGED die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertes.
Bei STATE=*UPDATE gilt: Falls nicht PROTECT=*BY_DEF_PROT_OR_STD angegeben ist, ist die Angabe *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe *NONE (unabhängig von der Angabe bei PROTECT).
= <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483647>
definiert ein für den Aufruf des Programms/der Prozedur erforderliches Kennwort.
Die Angabe EXPASS=X'00000000' wird wie *NONE behandelt.
Vor Ausführungszugriff auf die Datei muss „kennwort“ mit dem ADD-PASSWORD-Kommando in die auftragsbezogene Kennworttabelle eingetragen werden (siehe Kommando ADD-PASSWORD im Handbuch „Kommandos“ [3]).
Wird Kennwortvergabe protokolliert, werden die Kennwörter nicht im Klartext ausgegeben.
= (<reg: A(char:4)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 4 Byte, in dem das Ausführungskennwort abgelegt ist.
= <var: char:4>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 4 Byte, in dem das Ausführungskennwort abgelegt ist.
FILE
Pfadname des Katalogeintrags der Datei, Dateigeneration oder Dateigenerationsgruppe, auf den sich die Angaben in den übrigen Operanden des Makroaufrufs beziehen.
Mit STATE=*NEW (Standard) wird ein Katalogeintrag unter dem angegebenen Namen erstellt.
Mit STATE=*FOREIGN wird ein auf der mit den Operanden VOLUME und DEVICE angegebenen Privatplatte existierender Katalogeintrag einer Dateigenerationsgruppe importiert.
Mit STATE=*UPDATE kann ein unter dem angegebenen Pfadnamen existierender Katalogeintrag modifiziert werden; bzw. bei Angabe von Wildcards können alle damit selektierten Katalogeinträge modifiziert werden.
= <c-string 1..80: filename 1..54 with-wild(80)>
Der Pfadname besteht aus [:catid1:][$userid1.]<dateiname1>.
catid 1
Kennung des Katalogs, in dem der Katalogeintrag der Datei liegt oder angelegt werden soll. Bei STATE=*UPDATE dürfen Wildcards enthalten sein. Es werden dann jedoch nur Dateien in Katalogen selektiert, die lokal verfügbar sind.
Ist keine Katalogkennung angegeben, wird die voreingestellte Katalogkennung (DEFAULT-PUBSET) des Aufrufers angenommen.
userid 1
Benutzerkennung, unter der die Datei liegt oder angelegt werden soll. Nur der Systemverwalter darf bei STATE=*UPDATE auch Wildcards angeben.
Ist keine Benutzerkennung angegeben, wird die LOGON-Kennung angenommen.
Der Systemverwalter darf eine fremde Benutzerkennung angeben, wenn für die Datei keine TSOS-Einschränkung vereinbart (siehe Handbuch „SECOS“ [8]) oder nicht STATE=*UPDATE angegeben ist.
Ein nichtprivilegierter Benutzer darf eine fremde Benutzerkennung angeben, wenn er Mit-Eigentümer der Datei ist.
dateiname 1
Name der permanenten oder temporären Datei, der Dateigeneration oder Dateigenerationsgruppe. Bei STATE=*UPDATE darf der Dateiname Wildcards enthalten oder teilqualifiziert sein, d.h. mit einem Punkt enden.
= (<reg: A(char:80)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 80 Byte, in dem der Pfadname abgelegt ist. Belegt der Pfadname nicht die Maximallänge von 80 Byte, muss er mit mindestens einem Blank (X'40') abgeschlossen sein.
= <var: char:80>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 80 Byte, in dem der Pfadname abgelegt ist. Belegt der Pfadname nicht die Maximallänge von 80 Byte, muss er mit mindestens einem Blank (X'40') abgeschlossen sein.
FIRST = zahl
Nur für Dateigenerationsgruppen:
Der Operand darf nur mit STATE=*NEW spezifiziert werden.
Er bestimmt die absolute Generationsnummer der ältesten katalogisierten Dateigeneration. Der Operand ist erforderlich, um den Indexeintrag einer Dateigenerationsgruppe auf privaten Datenträgern (FOREIGN-Dateigenerationsgruppe) zu rekonstruieren. Er bestimmt die Nummer der ältesten zu importierenden Dateigeneration. Er sollte nur zu diesem Zweck benutzt werden.
Auf Band gespeicherte Generationen müssen einzeln mit FILE (Operand STATE=FOREIGN) katalogisiert werden.
Generationen auf Privatplatte können mit IMPORT oder einzeln über FILE (Operand STATE=FOREIGN) importiert werden.
= <integer 1..9999>
Die mit FIRST angegebene Dateigeneration kann nur importiert, nicht jedoch neu katalogisiert werden. Das bedeutet, wenn der erstellte Indexeintrag nicht zur Rekonstruktion einer Dateigenerationsgruppe verwendet werden soll, besteht keine Möglichkeit die hier angegebene Dateigeneration (wie evtl. weitere Dateigenerationen <= LAST bzw. <= BASE, siehe jeweils dort) auch real anzulegen.
= (<reg: int:2>)
Nur mit MF=M möglich:
Das angegebene Register enthält im unteren Halbwort die Generationsnummer der ältesten katalogisierten Dateigeneration.
= <var: char:2>
Nur mit MF=M möglich:
Symbolische Adresse eines Halbwortes, in dem die Generationsnummer der ältesten katalogisierten Dateigeneration abgelegt ist.
GEN = zahl
Nur für Dateigenerationsgruppen:
legt fest, wie viele Generationen einer Dateigenerationsgruppe höchstens gleichzeitig katalogisiert sein dürfen (vgl. Operand DISP).
Die Angabe GEN kann sich sowohl auf eine neue (STATE=*NEW) als auch auf eine existente Dateigenerationsgruppe (STATE=*UPDATE) beziehen.
Voreinstellung: GEN = 0
= <integer 0..255>
Maximale Anzahl gleichzeitig katalogisierter Dateigenerationen.
GEN=0 mit STATE=*NEW angegeben, dann wird keine Dateigenerationsgruppe, sondern eine „normale“ Datei angelegt; zusammen mit STATE=*UPDATE wird GEN=0 ignoriert.
= (<reg: int:2>)
Nur mit MF=M möglich:
Das angegebene Register enthält im unteren Halbwort die maximale Anzahl der gleichzeitig katalogisierten Dateigenerationen.
= <var: char:2>
Nur mit MF=M möglich:
Symbolische Adresse eines Halbwortes, in dem die maximale Anzahl gleichzeitig katalogisierter Dateigenerationen abgelegt ist.
GROUPAR
Nur für Dateien auf gemeinschaftlichen Platten und auf Net-Storage:
aktiviert die Zugriffskontrolle über BASIC-ACL und legt fest, wie ein Anwender auf die Datei zugreifen darf, der nicht ihr Eigentümer ist, jedoch zur Benutzergruppe des Dateieigentümers gehört, wenn kein GUARDS-Schutz aktiv ist.
Benutzergruppen können nur bei Einsatz des Softwareproduktes SECOS in einem System definiert werden (siehe Handbuch „SECOS“ [8]). In einem System ohne Benutzergruppen und ohne Installation von SECOS gilt der Wert für GROUPAR für alle Anwender außer dem Dateieigentümer (und der Systemverwaltung). Wenn Benutzergruppen im System eingerichtet werden, wird er für die Mitglieder der Benutzergruppe des Dateieigentümers ausgewertet.
Der Operand darf nicht zusammen mit dem Operanden BASACL angegeben werden.
= *NO-ACCESS
Für die Benutzergruppe ist kein Zugriff auf die Datei erlaubt.
= ( [READ = *NO / READ = *YES / R = *N / R = *Y]
[,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
[,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )
Die in der Liste mit *YES bzw. *Y angegebenen Zugriffsarten sind gestattet. Die runden Klammern sind Bestandteil der Zugriffsliste und müssen mit angegeben werden.
Die einzelnen Elemente der Zugriffsliste haben folgende Bedeutung:
READ=NO bzw. R=N | Lesezugriff ist verboten (Voreinstellung). |
READ=YES bzw. R=Y | Lesezugriff ist erlaubt. Anders als bei der Zugriffskontrolle über den ACCESS-Operanden ist damit nicht automatisch das Recht verbunden, die Datei auszuführen. |
WRITE=NO bzw. W=N | Schreibzugriff ist verboten (Voreinstellung). |
WRITE=YES bzw. W=Y | Schreibzugriff ist erlaubt. Anders als bei der Zugriffskontrolle über den ACCESS-Operanden ist damit nicht automatisch das Recht verbunden, die Datei zu lesen oder auszuführen. |
EXEC=NO bzw. X=N | Ausführen der Datei ist verboten (Voreinstellung). |
EXEC=YES bzw. X=Y | Ausführen der Datei ist erlaubt (nicht für Dateigenerationsgruppen). |
GUARDS
Aktiviert/Deaktiviert die Zugriffskontrolle über GUARDS (Generally Usable Access contRol aDministration System). Mit GUARDS wird die Datei über ein spezielles Zugriffsprofil geschützt. Dieser Zugriffsschutz wird nur wirksam, falls die Funktionseinheit GUARDS des Softwareproduktes SECOS geladen ist (siehe Handbuch „SECOS“ [8]).
Dateischutz über GUARDS wird aktiviert, wenn mindestens eine Zugriffsart (READ/WRITE/EXEC) mit einem Guard-Eintrag im Guard-Katalog verknüpft wird. Auch die Angabe READ/WRITE/EXEC=*NONE ist in diesem Sinne ein Guard-Eintrag und aktiviert den Dateischutz über GUARDS (lesender, schreibender, ausführender Zugriff auf die Datei ist nicht möglich).
Das Zugriffsprofil muss zu diesem Zeitpunkt noch nicht definiert sein; es kann sogar ohne Einsatz von GUARDS zugewiesen werden. In beiden Fällen wird jeder Dateizugriff abgewiesen.
Erst zum Zeitpunkt des Zugriffs auf eine mit GUARDS geschützte Datei wird geprüft, ob der angegebene Guard-Eintrag (Guard-Name) existiert, ob er verwendet werden darf und ob dem Benutzer auf Grund dieses Zugriffsprofils ein Zugriff in der entsprechenden Zugriffsart erlaubt ist.
Hinweise
Auf eine Datei kann nicht zugegriffen werden, wenn im Dateikatalog Schutz über GUARDS eingetragen ist, für den angegebenen Guard-Namen jedoch noch kein Zugriffsprofil im Guard-Katalog definiert ist.
Wenn GUARDS-Schutz aktiviert wird, bleibt der vorher festgelegte Zugriffsschutz über BASIC-ACL bzw. USER-ACCESS und ACCESS erhalten.
Weitere Informationen zum Zugriffsschutz über die Funktionseinheit GUARDS siehe Abschnitt Dateischutz, Handbuch „Einführung in das DVS“ [1].
= *NONE
GUARDS-Schutz wird deaktiviert. Ein bestehender Zugriffsschutz über GUARDS wird zurückgesetzt, die Datei ist nicht mehr über den Schutzmechanismus GUARDS geschützt.
= ( [READ=... ] [,WRITE=...] [,EXEC=...] )
Jede der drei Zugriffsarten (Lesen, Schreiben, Ausführen) kann über einen gesonderten Guard-Eintrag geschützt werden. Wird für eine Datei GUARDS-Schutz aktiviert, werden alle nicht explizit gesetzten Zugriffsarten mit *NONE belegt. Der Zugriff über diese Zugriffsarten ist dann nicht möglich.
[ READ = *NONE / <c-string: filename 1..18 without cat-gen-vers> /
<var: char:18> / (<reg: A(char:18)>) ]
Leseschutz über GUARDS aktivieren.
Voreinstellung: READ = *NONE, falls GUARDS-Schutz über eine andere Zugriffsart aktiviert wurde
= *NONE
Der GUARDS-Schutz für lesenden Zugriff wird zurückgesetzt (die Verknüpfung Leseschutz – Zugriffsprofil wird aufgehoben). Die Datei kann nicht gelesen werden. Dateischutz über GUARDS bleibt aktiv.
= <c-string: filename 1..18 without cat-gen-vers>
Name des Zugriffprofils (Guard-Eintrag im Guard-Katalog), mit dem Leseschutz über GUARDS festgelegt wird. Die Datei kann nur gelesen werden, wenn die im Zugriffsprofil festgelegten Bedingungen erfüllt sind.
Der Name kann max. 8 Zeichen lang sein, mit Angabe der Benutzerkennung max. 18 Zeichen lang. Eine Katalogkennung kann nicht angegeben werden.
= (<reg: A(char:18)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 18 Byte, in dem der Name des READ-GUARD abgelegt ist.
= <var: char:18>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 18 Byte, in dem der Name des READ-GUARD abgelegt ist.
[ ,WRITE = *NONE / <c-string: filename 1..18 without cat-gen-vers> /
<var: char:18> / (<reg: A(char:18)>) ]
Schreibschutz über GUARDS aktivieren.
Hinweis
Anders als beim Kennwortschutz impliziert das Schreibrecht nicht das Leserecht.
Voreinstellung: READ = *NONE, falls GUARDS-Schutz über eine andere Zugriffsart aktiviert wurde
= *NONE
Der GUARDS-Schutz für schreibenden Zugriff wird zurückgesetzt. (Die Verknüpfung Schreibschutz – Zugriffsprofil wird aufgehoben). Schreibender Dateizugriff ist nicht möglich.
Dateischutz über GUARDS bleibt aktiv.
= <c-string: filename 1..18 without cat-gen-vers>
Name des Zugriffprofils (Guard-Eintrag im Guard-Katalog), mit dem Schreibschutz über GUARDS festgelegt wird.
Schreibender Dateizugriff ist nur möglich, wenn die im Zugriffsprofil festgelegten Bedingungen erfüllt sind.
Der Name kann max. 8 Zeichen lang sein, mit Angabe der Benutzerkennung max. 18 Zeichen lang. Eine Katalogkennung kann nicht angegeben werden.
= (<reg: A(char:18)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 18 Byte, in dem der Name des WRITE-GUARD abgelegt ist.
= <var: char:18>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 18 Byte, in dem der Name des WRITE-GUARD abgelegt ist.
[ ,EXEC = *NONE / <c-string: filename 1..18 without cat-gen-vers> /
<var: char:18> / (<reg: A(char:18)>) / *UNCHANGED ] )
Ausführungsschutz über GUARDS aktivieren.
Voreinstellung: EXEC = *NONE, falls GUARDS-Schutz über eine andere Zugriffsart aktiviert wurde
= *NONE
Der GUARDS-Schutz für ausführenden Zugriff wird zurückgesetzt (die Verknüpfung Ausführungsschutz – Zugriffsprofil wird aufgehoben). Ausführender Dateizugriff ist nicht möglich. (Der Dateischutz über GUARDS bleibt aktiv).
= <c-string: filename 1..18 without cat-gen-vers>
Name des Zugriffsprofils (Guard-Eintrag im Guard-Katalog), mit dem Ausführungsschutz über GUARDS festgelegt wird.
Ausführender Dateizugriff ist nur möglich, wenn die im Zugriffsprofil festgelegten Bedingungen erfüllt sind.
Der Name kann max. 8 Zeichen lang sein, mit Angabe der Benutzerkennung max. 18 Zeichen lang. Eine Katalogkennung kann nicht angegeben werden.
= (<reg: A(char:18)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 18 Byte, in dem der Name des EXEC-GUARD abgelegt ist.
= <var: char:18>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 18 Byte, in dem der Name des EXEC-GUARD abgelegt ist.
= *UNCHANGED
Nur relevant im Zusammenhang mit der Angabe von PROTECT:
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für GUARDS unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert GUARDS=*NONE eingetragen.
Der Wert *UNCHANGED unterdrückt insbesondere bei
PROTECT=*FROM_FILE die Übernahme des entsprechenden Wertes aus der Referenzdatei
PROTECT=*BY_DEF_PROT_OR_STD und bei STATE=*NEW ohne Angabe zu PROTECT die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertes
gleichzeitiger Angabe von PROTECT=*STD und STATE=*UPDATE das Zurücksetzen des Wertes im Katalogeintrag auf den Wert GUARDS=*NONE
Bei STATE=*UPDATE gilt: Falls PROTECT nicht angegeben ist, ist die Angabe von *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe GUARDS=*NONE (unabhängig von der Angabe bei PROTECT).
IOPERF
Nur für Dateien und Dateigenerationen auf gemeinschaftlichen Datenträgern sowie Dateien auf Net-Storage-Volumes:
Gefordertes Performance-Attribut der Datei für die I/O-Verarbeitung. Es gibt die Performance-Attribute „*VERY-HIGH“, „*STD“ und „*HIGH“. Der höchste zulässige Wert ist benutzerkennungsspezifisch.
Wird eine höhere Performance gefordert, als der Maximalwert es erlaubt, dann wird der Maximalwert in den Katalogeintrag übernommen (kein Returncode!).
Der Operand wird ignoriert (kein Returncode!), wenn:
er für Dateien spezifiziert wird, die nicht auf einem gemeinschaftlichen Datenträger liegen bzw. angelegt werden sollen.
die Dateikennung auf dem entsprechenden SM-Pubset eine Default-Storage-Klasse besitzt und physikalische Allokierung verboten ist.
In SM-Pubsets wird durch die Angabe des Operanden eine evtl. im Katalogeintrag der Datei eingetragene Storage-Klasse entfernt. Der Operand darf nicht gleichzeitig mit dem Operanden STOCLAS not equal *NONE angegeben werden.
Voreinstellung (nur bei STATE=*NEW): IOPERF=*STD
= *STD
Die Datei soll nicht über einen Cache bearbeitet werden.
= *HIGH
Die Datei hat hohe Performance-Priorität und soll, wenn möglich, über einen Cache bearbeitet werden.
= *VERY-HIGH
Die Datei hat sehr hohe Performance-Priorität. Wenn möglich, werden alle Seiten permanent im Cache gehalten.
= *USER-MAX
Die Datei wird entsprechend dem höchsten Performance-Attribut verarbeitet, das für die Benutzerkennung zulässig ist.
Durch diese Angabe wird sichergestellt, dass ohne Programmänderung auch bei Erweiterung des Wertebereiches oberhalb von *VERY-HIGH stets der Maximalwert verwendet wird.
IOUSAGE
Nur für Dateien und Dateigenerationen auf gemeinschaftlichen Datenträgern sowie Dateien auf Net-Storage-Volumes:
gibt an, auf welche I/O-Operationen sich das Performance-Attribut (Operand IOPERF) der Datei bezieht.
Der Operand wird ignoriert (kein Returncode!), wenn:
er für Dateien spezifiziert wird, die nicht auf einem gemeinschaftlichen Datenträger liegen bzw. angelegt werden sollen.
die Dateikennung auf dem entsprechenden SM-Pubset eine Default-Storage-Klasse besitzt und physikalische Allokierung verboten ist.
In SM-Pubsets wird durch die Angabe des Operanden eine evtl. im Katalogeintrag der Datei eingetragene Storage-Klasse entfernt. Der Operand darf nicht gleichzeitig mit dem Operanden STOCLAS not equal *NONE angegeben werden.
Voreinstellung (nur bei STATE=*NEW): IOUSAGE=*RDWRT
= *RDWRT
Das Performance-Attribut bezieht sich sowohl auf Lese- wie auf Schreiboperationen.
= *WRITE
Das Performance-Attribut bezieht sich nur auf Schreiboperationen.
= *READ
Das Performance-Attribut bezieht sich nur auf Lese-Operationen.
LARGE
Nur für Dateien/FGG auf Platten:
LARGE bezieht sich wie BACKUP auf die Dateisicherung mit ARCHIVE bzw. HSMS und legt fest, ob bei der automatischen Sicherung die Datei bzw. die Generationen jedes Mal vollständig gesichert werden oder nur die seit der letzten Sicherung veränderten Blöcke.
Voreinstellung (nur bei STATE=*NEW): LARGE=*NO
= *NO
vollständige Sicherung
= *YES
partielle Sicherung: nur die geänderten Blöcke werden gesichert. Diese Angabe ist sinnvoll für große Dateien.
LAST
Nur für Dateigenerationsgruppen:
Der Operand darf nur zusammen mit STATE=*NEW und dem FIRST-Operanden angegeben werden. Er bestimmt die absolute Generationsnummer der jüngsten katalogisierten Dateigeneration.
Der Operand ist erforderlich um den Indexeintrag einer Dateigenerationsgruppe auf privaten Datenträgern zu rekonstruieren und bestimmt die Nummer der jüngsten Dateigeneration, die importiert werden soll.
= <integer 1..9999>
Die mit LAST angegebene Dateigeneration kann nur importiert, nicht jedoch neu katalogisiert werden.
Das bedeutet, wenn der erstellte Indexeintrag nicht zur Rekonstruktion einer Dateigenerationsgruppe verwendet werden soll, besteht keine Möglichkeit die hier angegebene Dateigeneration (wie eventuell weitere Dateigenerationen >= FIRST, s. Operand FIRST) auch real anzulegen.
= (<reg: int:2>)
Nur mit MF=M möglich:
Das angegebene Register enthält im unteren Halbwort die Generationsnummer der jüngsten katalogisierten Dateigeneration.
= <var: char:2>
Nur mit MF=M möglich:
Symbolische Adresse eines Halbwortes, in dem die Generationsnummer der jüngsten katalogisierten Dateigeneration abgelegt ist.
LIST
Bestimmt, ob für die verarbeiteten Dateinamen ein Protokoll nach SYSOUT geschrieben werden soll.
= *NO
Es soll nicht protokolliert werden.
= *SYSOUT
Jeder abgearbeitete Dateiname und eventuelle Fehler werden in einer Meldung protokolliert.
= *ERRORS-TO-SYSOUT
Nur Dateinamen, deren Abarbeitung zu Fehlern führte, werden in einer Meldung protokolliert.
MACID
wird nur in Verbindung mit MF=C/D/M ausgewertet und legt jeweils das zweite bis einschließlich dritte Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung im Datenbereich generiert werden.
Voreinstellung: MACID = DK
= <macid>
ein oder zwei Zeichen lange Zeichenfolge, die jeweils das zweite bis dritte Zeichen der generierten Feldnamen und Equates festlegt.
MANCLAS
Nur für permanente Dateien und Dateigenerationsgruppen auf öffentlichen Datenträgern in SM-Pubsets sowie für Dateien auf Net-Storage eines SM-Pubsets, wenn das Softwareprodukt HSMS geladen ist:
Gibt an, ob die Dateisicherung und -verdrängung über eine Management-Klasse gesteuert werden soll (Näheres siehe Handbuch „HSMS“ [10]).
= *NONE
Es wird keine Management-Klasse zugewiesen. Für die Dateisicherung und -verdrängung sind nur die Angaben der entsprechenden Operanden relevant.
= <c-string: structured-name 1..8>
Die Dateisicherung und -verdrängung wird über die angegebene Management-Klasse gesteuert.
Die Management-Klasse muss existieren und der Anwender muss das Recht haben, sie zu benutzen.
Für Dateien in SF-Pubsets oder auf privaten Datenträgern wird die Angabe ignoriert, für temporäre Dateien abgewiesen.
= (<reg: A(char:8)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 8 Byte, in dem der Name der Management-Klasse abgelegt ist.
= <var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 8 Byte, in dem der Name der Management-Klasse abgelegt ist.
MF
Die Formen des MF-Operanden sind detailliert im Anhang ("Typen von Makroaufrufen") beschrieben. In allen Makroaufrufen, die sich durch den MF-Operanden unterscheiden (MF=L/E/D/C/M), muss der Versionsoperand den gleichen Wert haben.
MIGRATE
Nur für Dateien auf gemeinschaftlichen Platten und für Dateien auf Net-Storage relevant:
wird durch das Softwareprodukt HSMS (Hierarchisches Speicher Management System) ausgewertet. Der Anwender kann mit MIGRATE festlegen, ob Dateien, auf die er längere Zeit nicht zugegriffen hat, auf eine Speicherebene mit langsamerem Zugriff verdrängt werden dürfen oder nicht. Die Dateien werden von der Online-Verarbeitungsebene S0 auf die online-verfügbare Hintergrundebene S1 oder die offline-verfügbare Hintergrundebene S2 (z.B. Band) verdrängt (Näheres siehe Handbuch „HSMS“ [10]).
Dateigenerationsgruppen: der für einen FGG-Index angegebene MIGRATE-Wert ist repräsentativ für die ganze Gruppe.
Voreinstellung:
MIGRATE = *ALLOWED für permanente Dateien
MIGRATE = *INHIBITED für temporäre Dateien
= *ALLOWED
Die Datei darf von S0 auf die Speicherebene S1 oder S2 verdrängt werden.
= *INHIBITED
Die Datei soll nicht verdrängt werden, darf jedoch temporär, z.B. zu Reorganisationszwecken auf eine Hintergrundebene ausgelagert werden.
= *FORBIDDEN
Nur für Benutzer mit dem Recht zur physikalischen Allokierung:
Die Datei darf nicht auf eine Hintergrundebene verdrängt werden.
Diese Angabe wird abgewiesen, wenn die Datei auf eine Hintergrundebene verdrängt ist oder keine Berechtigung zur physikalischen Allokierung besteht.
NETCCS
Nur für Dateien auf Net-Storage vom Typ Node-File. Für andere Dateien wird die Angabe ignoriert.
Gibt an, welches Net-Storage-Coded-Character-Set (NETCCS) für ein Node-File auf Net-Storage zu verwenden ist.
Das NETCCS ist der tatsächliche Zeichensatz, mit dem ein Node-File auf dem Net-Storage angelegt wird. Ab BS2000 OSD/BC V11.0 angelegte SAM- und PAM-Node-Files besitzen immer ein definiertes NETCCS. PAM-Node-Files, die vor V11.0 angelegt wurden, werden so behandelt, als ob sie mit der Angabe *NO-CONV erstellt wurden.
= *USER_DEF
Die Einstellung wird anhand der Definition im Benutzereintrag vorgenommen. Das resultierende NETCCS der Datei wird gemäß folgender Tabelle ermittelt:
CCS-Eintrag 1 | NETCCS-Eintrag 1 | Resultierendes NETCCS im Kataogeintrag des Node-Files |
EDF03IRV/*NONE | *ISO | ISO88591; bei der Code-Umsetzung wird für CCS EDF041 angenommen |
EDF03DRV | *ISO | ISO88591; bei der Code-Umsetzung wird für CCS EDF04DRV angenommen |
EDF04DRV | *ISO | ISO88591 |
EDF04x | *ISO | ISO8859x mit x=1,2,..F |
ISO8859x | *ISO oder *NO-CONV | ISOx |
UTFx | *ISO oder *NO-CONV | UTFx |
<name_a 1..8> | <name_b 1..8> | <name_b 1..8> |
<name_a 1..8> | *NO-CONV | <name_a 1..8> |
1 Benutzereintrag (SYSSRPM) bzw. Angabe im CATALOG bzw. CREATE-FILE oder MODIFY-FILE-ATTRIBUTES
= *ISO
Für SAM-Node-Files werden EBCDIC-Zeichensätze in Zeichensätze konvertiert, die in der offenen Welt üblich sind. Dabei wird das NETCCS auf eine ISO-Variante abgebil-det, die dem Coded-Character-Set (CSSN) entspricht. Wenn unter CODED-CHARACTER-SET ein ISO- oder UTF-Zeichensatz angegeben wurde, findet keine Konvertierung statt. Für diesen Fall verhält sich *ISO wie *NO-CONV. Beispiele siehe Tabelle bei *USER-DEF.
= *NO-CONVERSION
Der Zeichensatz wird nicht konvertiert.
= <name 1..8>
Name des NETCCS, mit dem das Node-File auf dem Net-Storage angelegt wird.
Es wird nicht überprüft, ob der Name einem gültigen Zeichensatz entspricht!
= (<reg: A(char:8)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 8 Byte, in dem der Name des NETCCS abgelegt ist.
= <var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 8 Byte, in dem der Name des NETCCS abgelegt ist.
NEWNAME
Nur mit STATE=*UPDATE erlaubt:
Die im Operanden FILE angegebene Datei wird in diesen Namen unbenannt. Dabei ist weder ein Wechsel des Pubsets (Katalog) noch der Benutzerkennung möglich. Eine Datei auf einem Net-Storage-Volume kann nicht in eine temporäre Datei und nicht in eine Dateigeneration umbenannt werden. Siehe auch die Abschnitte „Temporäre Dateien" und „Dateigenerationsgruppen (FGG)".
= <c-string 1..80: filename 1..54 with-wild(80)>
Der Pfadname besteht aus [:catid2:][$userid2.]<dateiname2>.
catid 2
Kennung des Katalogs, in dem der Katalogeintrag der Datei liegt. Wenn hier eine Angabe erfolgt, dann muss diese identisch mit der bei FILE angegebenen catid1 sein.
userid 2
Benutzerkennung, unter der die Datei liegt. Wenn hier eine Angabe erfolgt, dann muss diese identisch mit der bei FILE angegebenen userid1 sein.
dateiname 2
Dateiname, in den die im Operanden FILE angegebene Datei dateiname1 umbenannt werden soll. Sind in dateiname1 Wildcards enthalten, kann eine geeignete Konstruktionsangabe angegeben werden. Endet dateiname1 mit einem Punkt, dann darf auch dateiname2 mit einem Punkt enden.
dateiname2 muss angegeben werden, wenn eine Datei/FGG umbenannt werden soll. „dateiname1“ und „dateiname2“ dürfen nicht identisch sein.
Bei Banddateien muss sich dateiname2 von dateiname1 durch die hinzugefügte oder geänderte Versionsbezeichnung unterscheiden.
Bei Einsatz von HSMS können Dateien, die auf die Speicherebene S1 bzw. S2 verdrängt wurden, nicht umbenannt werden.
= (<reg: A(char:80)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 80 Byte, in dem der neue Pfadname abgelegt ist. Belegt der Pfadname nicht die Maximallänge von 80 Byte, muss er mit mindestens einem Blank (X'40') abgeschlossen sein.
= <var: char:80>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 80 Byte, in dem der neue Pfadname abgelegt ist. Belegt der Pfadname nicht die Maximallänge von 80 Byte, muss er mit mindestens einem Blank (X'40') abgeschlossen sein.
NUM_OF_BACKUP_VERS
Maximale Anzahl der Datei-Versionen, mit der die Datei am Versions-Backup teilnimmt.
Für Dateien auf gemeinschaftlichen Datenträgern und für Dateien auf Net-Storage gilt:
Wenn die Datei mit STATE=*NEW neu erstellt wird, wird der Wert des Systemparameters NUMBACK übernommen. Wenn die Attribute einer bestehenden Datei geändert werden (STATE=*UPDATE) und der Operand nicht angegeben ist, bleibt der Wert des Dateiattributs NUM-OF-BACKUP-VERS unverändert.
Für Dateien auf Privatplatte, für FGG allgemein sowie für temporäre Dateien gilt:
Die Angabe von NUM_OF_BACKUP_VERS mit einem Wert > 0 ist unzulässig. Wenn der Operand für diese Objekte nicht angegeben wird, wird das Dateiattribut NUM-OF-BACKUP-VERS auf den Wert 0 gesetzt.
Für Banddateien gilt:
Wenn die Datei mit STATE=*NEW neu erstellt wird, wird das Dateiattribut NUM-OF-BACKUP-VERS immer auf den Wert 0 gesetzt. Dies geschieht unabhängig vom Wert des Operanden NUM_OF_BACKUP_VERS, bzw. vom Wert des Systemparameters NUMBACK. Wenn die Attribute einer bestehenden Datei geändert werden (STATE=*UPDATE) bleibt das Dateiattribut NUM-OF-BACKUP-VERS auf dem Wert 0, unabhängig davon ob der Operand NUM_OF_BACKUP_VERS angegeben wird oder nicht.
= <integer 0..32>
Maximale Anzahl der Datei-Versionen, mit der die Datei am Versions-Backup teilnimmt. Der Wert 0 bedeutet, dass die Datei/FGG nicht am Versions-Backup teilnimmt.
= (<reg: int:1>)
Nur mit MF=M möglich:
Das angegebene Register enthält im unteren Halbwort die maximale Anzahl der Datei-Versionen der Datei, die im Versions-Backup-Archiv aufbewahrt werden sollen.
= <var: int:1>
Nur mit MF=M möglich:
Symbolische Adresse eines Halbwortes, in dem die maximale Anzahl der Datei-Versionen der Datei, die im Versions-Backup-Archiv aufbewahrt werden sollen, abgelegt ist.
OPNBACK
ist speziell für Datenbankdateien (UDS-Dateien) bestimmt. Der Operand ermöglicht es dem Anwender, die Datei auch im geöffneten Zustand durch ARCHIVE sichern zu lassen (siehe Handbuch „ARCHIVE“ [9]). Dabei kann es zu Inkonsistenzen in der Datei kommen; es liegt in der Verantwortung des Anwenders, dies zu vermeiden.
Voreinstellung (nur bei STATE=*NEW): OPNBACK=*NO
= *NO
Nur die geschlossene Datei wird gesichert.
= *YES
Die Datei wird auch gesichert, wenn sie geöffnet ist.
OTHERAR
Nur für Dateien auf gemeinschaftlichen Platten und für Dateien auf Net-Storage:
aktiviert die Zugriffskontrolle über BASIC-ACL und legt fest, wie ein Anwender auf die Datei zugreifen darf, der weder ihr Eigentümer ist noch zur Benutzergruppe des Dateieigentümers gehört, wenn kein GUARDS-Schutz aktiv ist. Benutzergruppen können nur bei Einsatz des Softwareproduktes SECOS in einem System definiert werden (siehe Handbuch „SECOS“ [8]). In einem System ohne Benutzergruppen und ohne Installation von SECOS gilt der Wert für OTHERAR für alle Kennungen außer der des Dateieigentümers. Der Operand darf nicht zusammen mit dem Operanden BASACL angegeben werden.
= *NO-ACCESS
Für die Benutzergruppe ist kein Zugriff auf die Datei erlaubt.
= ( [READ = *NO / READ = *YES / R = *N / R = *Y]
[,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
[,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )
Die in der Liste mit *YES bzw. *Y angegebenen Zugriffsarten sind gestattet. Die runden Klammern sind Bestandteil der Zugriffsliste und müssen mit angegeben werden.
Die einzelnen Elemente der Zugriffsliste haben folgende Bedeutung:
READ=NO bzw. R=N | Lesezugriff ist verboten (Voreinstellung). |
READ=YES bzw. R=Y | Lesezugriff ist erlaubt. Anders als bei der Zugriffskontrolle über den |
WRITE=NO bzw. W=N | Schreibzugriff ist verboten (Voreinstellung). |
WRITE=YES bzw. | Schreibzugriff ist erlaubt. Anders als bei der Zugriffskontrolle über den |
EXEC=NO bzw. X=N | Ausführen der Datei ist verboten (Voreinstellung). |
EXEC=YES bzw. X=Y | Ausführen der Datei ist erlaubt (nicht für Dateigenerationsgruppen). |
OWNERAR
Nur für Dateien auf gemeinschaftlichen Platten und für Dateien auf Net-Storage:
aktiviert die Zugriffskontrolle über BASIC-ACL und legt fest, wie der Eigentümer (und die Systemverwaltung) auf die Datei zugreifen darf, wenn kein GUARDS-Schutz aktiv ist.
Der Operand darf nicht zusammen mit dem Operanden BASACL angegeben werden.
= *NO-ACCESS
Für die Benutzergruppe ist kein Zugriff auf die Datei erlaubt.
= ( [READ = *NO / READ = *YES / R = *N / R = *Y]
[,WRITE = *NO / WRITE = *YES / W = *N / W = *Y]
[,EXEC = *NO / EXEC = *YES / X= *N / X = *Y] )
Die in der Liste mit *YES bzw. *Y angegebenen Zugriffsarten sind gestattet. Die runden Klammern sind Bestandteil der Zugriffsliste und müssen mit angegeben werden.
Die einzelnen Elemente der Zugriffsliste haben folgende Bedeutung:
READ=NO bzw. R=N | Lesezugriff ist verboten (Voreinstellung). |
READ=YES bzw. R=Y | Lesezugriff ist erlaubt. Anders als bei der Zugriffskontrolle über den |
WRITE=NO bzw. W=N | Schreibzugriff ist verboten (Voreinstellung). |
WRITE=YES bzw. W=Y | Schreibzugriff ist erlaubt. Anders als bei der Zugriffskontrolle über den ACCESS-Operanden ist damit nicht automatisch das Recht verbunden, die Datei zu lesen oder auszuführen. |
EXEC=NO bzw. X=N | Ausführen der Datei ist verboten (Voreinstellung). |
EXEC=YES bzw. X=Y | Ausführen der Datei ist erlaubt (nicht für Dateigenerationsgruppen). |
PARAM
bezeichnet die Adresse der Operandenliste und wird nur in Verbindung mit MF=E ausgewertet (siehe auch "Typen von Makroaufrufen").
= <name 1..8>
symbolische Adresse (der Name) der Operandenliste.
PREFIX
wird nur in Verbindung mit MF=C/D/M ausgewertet und legt das jeweils erste Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung im Datenbereich generiert werden.
= I
ist das voreingestellte Präfix, mit dem die vom Assembler generierten Feldnamen und Equates beginnen.
= pre
„pre“ ist ein ein Zeichen langes Präfix, mit dem die vom Assembler generierten Feldnamen und Equates beginnen sollen.
= *
Es wird kein Präfix generiert.
PROTECT
Gibt an, woher die Schutzattribute übernommen werden sollen, die nicht mit den jeweiligen Operanden explizit angegeben werden.
Folgende Schutzattribute (Operanden) können mit PROTECT vergeben werden (abhängig vom Operandenwert):
Zugriffsschutz | Schutzattribut | CATAL- Operand |
Standard-Zugriffskontrolle (Zugriffsart) | ACCESS | ACCESS |
Standard-Zugriffskontrolle (Zugriff fremder Benutzer) | USER-ACCESS | SHARE |
Einfache Zugriffskontrollliste | BASIC-ACL | BASACL, |
Zugriffskontrolle über Guards | GUARDS | GUARDS |
Kennwörter | READ-PASSWORD, | RDPASS, |
Binär Löschen | DESTROY-BY-DELETE | DESTROY |
Freigabesperre für Speicherplatz | SPACE-RELEASE-LOCK | RELSPAC |
Freigabedatum zum Löschen | FREE-FOR-DELETION | DELDATE |
Schutzfrist | EXPIRATION-DATE | EXDATE |
Die Werte für diese Schutzattribute können je nach Wert des Operanden STATE (NEW oder UPDATE) verschiedene Vorbelegungen haben (siehe Tabellen).
Schutzattribute beim Neukatalogisieren von Dateien
PROTECTION-ATTR= | *FROM-FILE | *STD 1) | *BY-DEF-PROT-OR-STD1) | *BY-DEF-PROT-OR-STD 1) |
ACCESS | von der | WRITE | WRITE | von der Default-Protection |
USER-ACCESS | OWNER- | OWNER-ONLY | ||
BASIC-ACL | NONE | NONE | ||
DESTROY-BY-DELETE | NO | NO | ||
GUARDS | NONE | NONE | ||
SPACE-RELEASE-LOCK | NO | NO | ||
READ-PASSWORD | NONE | NONE | NONE | |
WRITE-PASSWORD | NONE | NONE | NONE | |
EXEC-PASSWORD | NONE | NONE | NONE | |
FREE-FOR-DELETION | NONE | NONE | NONE | NONE |
AUDIT | NONE | NONE | NONE | NONE |
Eine Schutzfrist (EXPIRATION-DATE) kann beim Ersteintrag nicht vergeben werden. Sie ist bei Dateien implizit mit *NONE vorbelegt, bei Dateigenerationsgruppen mit *TODAY.
Schutzattribute beim Ändern von Dateimerkmalen
PROTECTION-ATTR= | *UNCH | *FROM-FILE | *STD 1) | *BY-DEF-PROT-OR-STD 1) | *BY-DEF-PROT-OR-STD 1) |
ACCESS | UNCHANGED | von der | WRITE | WRITE | von der Default-Protection gelieferter Wert |
USER-ACCESS | UNCHANGED | OWNER- | OWNER-ONLY | ||
BASIC-ACL | UNCHANGED | NONE | NONE | ||
DESTROY-BY-DELETE | UNCHANGED | NO | NO | ||
GUARDS | UNCHANGED | NONE | NONE | ||
SPACE-RELEASE-LOCK | UNCHANGED | NO | NO | ||
EXPIRATION-DATE 2) | UNCHANGED | TODAY | TODAY | ||
READ-PASSWORD | UNCHANGED | UNCHANGED | UNCHANGED | NONE | |
WRITE-PASSWORD | UNCHANGED | UNCHANGED | UNCHANGED | NONE | |
EXEC-PASSWORD | UNCHANGED | UNCHANGED | UNCHANGED | NONE | |
FREE-FOR-DELETION | UNCHANGED | UNCHANGED | UNCHANGED | NONE | |
AUDIT | UNCHANGED | UNCHANGED | UNCHANGED | UNCHANGED | UNCHANGED |
1) System-Standardwerte
2) Die Schutzfrist wird nur dann eingetragen, wenn es sich um eine permanente Datei mit Erstellungsdatum oder um eine Dateigenerationsgruppe handelt. Hat die Referenzdatei keine Schutzfrist, wird *TODAY eingetragen.
= *STD
Es werden diese System-Standardwerte gesetzt:
ACCESS | = *WRITE |
BASIC-ACL | = *NONE |
USER-ACCESS | = *OWNER-ONLY (auch bei Banddateien) |
DESTROY | = *NO |
SPACE-RELEASE-LOCK | = *NO |
GUARDS | = *NONE |
EXPIRATION-DATE | = *TODAY |
Für einzelne Dateigenerationen wird PROTECT=*STD abgewiesen.
= *BY_DEF_PROT_OR_STD
Die Schutzattribute werden abhängig vom Einsatz der Funktion „Default-Protection“ vergeben.
Ist Default-Protection aktiv, liefert sie Werte für alle Schutzattribute, die oben aufgeführt sind, sofern diese nicht explizit angegeben wurden.
Ist Default-Protection nicht aktiv, werden die Schutzattribute wie bei PROTECT=*STD eingetragen. Zusätzlich werden noch folgende System-Standardwerte übernommen:
FREE-FOR-DELETION | = *NONE |
READ-PASSWORD | = *NONE |
WRITE-PASSWORD | = *NONE |
EXEC-PASSWORD | = *NONE |
Bei STATE=*NEW ist PROTECT=*BY_DEF_PROT_OR_STD gleichbedeutend mit fehlender Angabe.
= (*FROM_FILE,<c-string: filename 1..54>)
Alle bei *STD genannten Schutzattribute, die der Aufrufer nicht explizit angibt, werden von der Referenzdatei übernommen. Die von der Referenzdatei übernommenen Schutzattribute werden so behandelt, als seien sie explizit angegeben worden.
Ausnahmen:
Für eine Dateigenerationsgruppe werden Ausführungsrechte nicht abgewiesen, sondern ignoriert.
Für temporäre Dateien wird EXDATE nicht abgewiesen, sondern ignoriert.
Falls die Referenzdatei keine Schutzfrist hat, wird für Dateigenerationsgruppen und für permanente Dateien mit Erstellungsdatum EXDATE=*TODAY übernommen.
Kennwörter und Freigabedatum der Referenzdatei werden nicht übernommen. Bei CATAL STATE=*NEW werden sie mit dem Systemstandardwert *NONE belegt (siehe auch Tabelle „Schutzattribute beim Neukatalogisieren von Dateien"). Bei STATE=*UPDATE mit *UNCHANGED (siehe Tabelle „Schutzattribute beim Ändern von Dateimerkmalen").
Die Referenzdatei muss im gleichen Pubset liegen, wie die mit FILE spezifizierte Datei. Ist keine Katalogkennung angegeben, wird der Default-Katalog der Benutzerkennung angenommen. Deshalb muss die Katalogkennung immer angegeben werden, wenn FILE sich nicht auf den Default-Katalog bezieht.
= (*FROM_FILE,(<reg: A(char:54)>))
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 54 Byte, in dem der Pfadname abgelegt ist. Belegt der Pfadname nicht die Maximallänge von 54 Byte, muss er mit mindestens einem Blank (X'40') abgeschlossen sein.
= (*FROM_FILE,<var: char:54>)
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 54 Byte, in dem der Pfadname abgelegt ist. Belegt der Pfadname nicht die Maximallänge von 80 Byte, muss er mit mindestens einem Blank (X'40') abgeschlossen sein.
RDPASS
Der Benutzer kann mit RDPASS ein Lesekennwort festlegen, ändern oder löschen.
Bei temporären Dateien: kein Kennwortschutz möglich.
Bei Banddateien: das Kennwort wird im HDR3-Kennsatz vermerkt.
Bei verschlüsselten Dateien: Alle RDPASS-Angaben werden wie *UNCHANGED behandelt.
Voreinstellung (nur bei STATE=*NEW): RDPASS=*NONE
= *NONE
Es wird kein Lesekennwort vergeben oder ein bestehendes gelöscht.
= *UNCHANGED
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für RDPASS unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert RDPASS=*NONE eingetragen.
Falls PROTECT=*BY_DEF_PROT_OR_STD oder STATE=*NEW ohne Angabe zu PROTECT angegeben ist, unterdrückt der Wert *UNCHANGED die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertes.
Bei STATE=*UPDATE gilt: Falls nicht PROTECT=*BY_DEF_PROT_OR_STD angegeben ist, ist die Angabe *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe *NONE (unabhängig von der Angabe bei PROTECT).
= <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483647>
definiert ein für Lesezugriff erforderliches Kennwort.
Ist ein Programm mit Lesekennwort geschützt, wirkt sich dies auch auf die im Hauptspeicher befindliche Phase aus. Das Kommando LOAD-PROGRAM wird abgelehnt, die IDA-Kommandos DISPLAY und AT werden ebenfalls abgewiesen. Ist ein Quellprogramm mit RDPASS geschützt, kann es nicht übersetzt werden.
= (<reg: A(char:4)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 4 Byte, in dem das Lesekennwort abgelegt ist.
= <var: char:4>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 4 Byte, in dem das Lesekennwort abgelegt ist.
RELSPAC
gibt an, ob die Freigabe von Speicherplatz mit dem Kommando MODIFY-FILE-ATTRIBUTES bzw. dem Makroaufruf FILE erlaubt werden soll.
Voreinstellung (nur bei STATE=*NEW): RELSPAC=*ALLOWED
= *ALLOWED
Der Speicherplatz darf freigegeben werden.
= *IGNORED
Die Freigabe von Speicherplatz wird ignoriert.
= *UNCHANGED
Nur relevant im Zusammenhang mit der Angabe von PROTECT:
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für RELSPAC unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert RELSPAC=*ALLOWED eingetragen.
Der Wert *UNCHANGED unterdrückt insbesondere bei
PROTECT=*FROM_FILE die Übernahme des entsprechenden Wertes aus der Referenzdatei
PROTECT=*BY_DEF_PROT_OR_STD und bei STATE=*NEW ohne Angabe zu PROTECT die Übernahme des entsprechenden von der Funktion „Default-Protection” gelieferten Wertes
gleichzeitiger Angabe von PROTECT=*STD und STATE=*UPDATE das Zurücksetzen des Wertes im Katalogeintrag auf den Wert RELSPAC=*ALLOWED
Bei STATE=*UPDATE gilt: Falls PROTECT nicht angegeben ist, ist die Angabe von *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe RELSPAC=*ALLOWED (unabhängig von der Angabe bei PROTECT).
RETPD
Mit RETPD wird eine Schutzfrist (EXPIRATION-DATE) festgelegt, während derer die Datei nicht geändert oder gelöscht werden kann; d.h. sie kann nur gelesen werden („read only“).
Voreinstellung (nur bei STATE=*NEW): RETPD = 0, d.h. die Datei/Generation kann jederzeit geändert/gelöscht werden
Eine Schutzfrist kann nur für existente Dateien vereinbart werden, d.h. die Katalogfelder CRE-DATE und FILE-STRUC müssen einen Wert not equal NONE anzeigen. Das heißt auch, die CATAL-Operanden RETPD und STATE=*NEW bzw. STATE=*FOREIGN sind nicht kombinierbar (RETPD wird ignoriert).
Die Berechnung des EXPIRATION-DATE aus der Anzahl der angegebenen Tage erfolgt immer auf lokaler Zeitbasis mit dem Tagesdatum und der Uhrzeit 0 Uhr.
Die Schutzfrist kann mit einem erneuten CATAL-Makroaufruf mit RETPD-Angabe aufgehoben oder verändert werden. Nach Ablauf der Schutzfrist ist wieder Schreibzugriff zugelassen.
Eine bestehende Generation einer FGG kann beim Einrichten einer neuen Generation gelöscht werden, auch wenn die Schutzfrist noch nicht abgelaufen ist (siehe Operand DISP).
Eine gleichzeitige Verwendung der Operanden EXDATE und RETPD ist nicht möglich.
Wird der Operand RETPD angegeben, so wird der von der Funktion „Default-Protection“ gelieferte EXDATE-Wert ignoriert.
= <integer 0..32767>
Anzahl der Tage, die die Datei geschützt sein soll.
= (<reg: int:2>)
Nur mit MF=M möglich:
Das angegebene Register enthält im unteren Halbwort die Anzahl der Tage, die die Datei geschützt sein soll.
= <var: char:2>
Nur mit MF=M möglich:
Symbolische Adresse eines Halbwortes, in dem die Anzahl der Tage abgelegt ist, die die Datei geschützt sein soll.
S0MIGR
Nur relevant bei STATE=*UPDATE für Dateien in SM-Pubsets, die bereits Speicherplatz belegen:
Legt fest, ob die Datei innerhalb des SM-Pubsets (Speicherhierarchie-Ebene S0) auf ein anderes Volume-Set umallokiert werden darf.
In SM-Pubsets wird durch die Angabe des Operanden eine evtl. im Katalogeintrag der Datei eingetragene Storage-Klasse entfernt. Der Operand darf nicht gleichzeitig mit dem Operanden STOCLAS not equal *NONE angegeben werden.
= *ALLOWED
Die Datei darf innerhalb des SM-Pubsets umallokiert werden.
Der Wert wird ignoriert für Dateien und Generationen auf Volume-Sets mit permanenter Datenhaltung, wenn die Dateikennung auf dem entsprechenden SM-Pubset eine Default-Storage-Klasse besitzt und physikalische Allokierung verboten ist.
= *FORBIDDEN
Nur für Benutzer mit dem Recht zur physikalischen Allokierung:
Ein automatisches Umallokieren ist nicht erlaubt; die Datei soll auf dem Volume-Set bleiben, auf dem sie derzeit allokiert ist.
Diese Angabe wird in folgenden Fällen abgewiesen:
es liegt keine Berechtigung zur physikalischen Allokierung vor
die Datei liegt zwar in einem SM-Pubset, belegt aber noch keinen Speicherplatz
die Datei ist zwar in einem SM-Pubset katalogisiert, liegt aber auf einem Net-Storage-Volume
SHARE
legt fest, ob Datei/Dateigenerationen unter anderen Benutzerkennungen als der Eigentümerkennung bearbeitet werden dürfen, wenn kein BASIC-ACL- oder GUARDS-Schutz aktiv ist. Die Art des zulässigen Zugriffs wird durch die übrigen Dateischutzmerkmale festgelegt (siehe die Operanden ACCESS, WRPASS usw.).
Voreinstellung (nur bei STATE=*NEW):
SHARE=*NO für Plattendateien,
SHARE=*YES für Banddateien
Banddateien:
Das DVS übernimmt beim ersten Eröffnen das SHARE-Kennzeichen in den HDR1-Kennsatz („Zugriffsvermerk“).
= *NO
Die Datei ist nicht mehrbenutzbar.
Bei Banddateien: HDR1-Kennsatz: Zugriffsvermerk = 1
= *YES
Dateizugriff wird für beliebige Benutzerkennungen zugelassen, d.h. Datei/Generationen sind mehrbenutzbar.
Bei temporäre Dateien: SHARE=*YES ist nicht zulässig.
Bei Banddateien: HDR1-Kennsatz: Zugriffsvermerk = X'40'.
= *SPECIAL
Für die Kennung mit dem Privileg HW-MAINTENANCE
wird Dateizugriff zugelassen. Implizit gilt SHARE=*YES!
Der Wert darf für Dateigenerationsgruppen nicht angegeben werden.
= *UNCHANCED
Nur relevant im Zusammenhang mit der Angabe von PROTECT:
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für SHARE unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert SHARE=*NO eingetragen.
Der Wert *UNCHANGED unterdrückt insbesondere bei
PROTECT=*FROM_FILE
die Übernahme des entsprechenden Wertes aus der ReferenzdateiPROTECT=*BY_DEF_PROT_OR_STD sowie bei STATE=*NEW ohne Angabe zu PROTECT die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertes
gleichzeitiger Angabe von PROTECT=*STD und STATE=*UPDATE
das Zurücksetzen des Wertes im Katalogeintrag auf den Wert SHARE=*NO
Bei STATE=*UPDATE gilt: Falls PROTECT nicht angegeben ist, ist die Angabe von *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe SHARE=*NO (unabhängig von der Angabe bei PROTECT).
STATE
gibt an, ob ein neuer Katalogeintrag erstellt, ein bestehender Katalogeintrag verändert oder ein Katalogeintrag importiert werden soll.
= *NEW
Es wird ein Katalogeintrag erstellt.
= *UPDATE
Ein bestehender Katalogeintrag (FILE=...) wird geändert. STATE=*UPDATE muss bei jedem Zugriff auf einen bestehenden Katalogeintrag angegeben werden. Es werden die Merkmale geändert, deren zugehörige Operanden im aktuellen CATAL-Makroaufruf angegeben werden. Besteht Kennwortschutz, muss das für Schreibzugriff notwendige Kennwort in der Kennworttabelle des Auftrags enthalten sein.
= *FOREIGN
Nur für exportierte FGG auf Privatplatten:
Ein nur im F1-Etikett einer Privatplatte stehender Gruppeneintrag einer auf Privatplatten abgelegten Dateigenerationsgruppe soll importiert werden. Es müssen zusätzlich die Operanden VOLUME und DEVICE angegeben werden; weitere Operanden werden ignoriert oder abgewiesen. Die zu übernehmenden Generationen müssen anschließend einzeln mit dem Makro FILE (Operanden STATE=*FOREIGN, DEVICE und VOLUME) oder zu mehreren mit IMPORT importiert werden.
STOCLAS
Der Operand ist nur relevant für Dateien, Dateigenerationsgruppen und Dateigenerationen auf öffentlichen Datenträgern in SM-Pubsets und Dateien auf einem Net-Storage-Volume, die in einem SM-Pubset katalogisiert sind.
Bei STATE=*UPDATE für Dateien und Dateigenerationen, denen bereits Speicherplatz zugewiesen wurde, gibt er an, ob die Wahl des Ablageortes der Daten (Volume-Set) innerhalb des SM-Pubsets über eine Storage-Klasse gesteuert werden soll.
Die Vergabe einer Storage-Klasse, d.h. die Angabe des Operanden STOCLAS not equal *NONE, darf nicht gleichzeitig mit der Vergabe der darin enthaltenen Einzelattribute (Operanden AVAIL, DISKWR, IOPERF, IOUSAGE) oder zusammen mit dem Operanden S0MIGR erfolgen.
Der Auftrag wird ebenfalls abgewiesen, wenn die Datei noch keinen Speicherplatz belegt oder wenn die Storage-Klasse das Attribut AVAILABILITY=*HIGH enthält und die Datei derzeit auf eine Hintergrundebene ausgelagert ist (S1- oder S2-Migration mit HSMS).
Für Dateigenerationsgruppen legt der Operand die Default-Storage-Klasse fest, die bei der ersten Speicherplatz-Zuweisung für eine Generation verwendet wird, wenn dabei keine explizite Angabe einer Storage-Klasse bzw. eines der Einzelattribute erfolgt.
Bei STATE=*NEW darf die Vergabe einer Storage-Klasse, d.h. die Angabe des Operanden STOCLAS not equal *NONE, nicht gleichzeitig mit dem Operanden WORKGRP erfolgen. Bei STATE=*UPDATE kann nur eine Storage-Klasse vergeben werden, deren WORK-FILE-Attribut mit dem WORK-FILE-Attribut der Dateigenerationsgruppe übereinstimmt. Einer Datei auf einem Net-Storage-Volume kann eine Storage-Klasse zugewiesen werden. Hierbei kann keine Arbeitsdatei und keine Datei mit vorläufigem Dateiformat K entstehen.
Hinweise
Die Angabe eines Wertes ungleich *NONE beim Operanden STOCLAS kann dazu führen, dass die Datei von ihrem bisherigen Volume-Set verlagert (umallokiert) wird auf einen anderen Volume-Set, der besser zur Storage-Klasse passt. Hierbei können folgende Fälle auftreten:
Wenn die Storage-Klasse AVAILABILITY=*HIGH enthält und der bisherige Volume-Set AVAILABILITY=*STD besitzt, muss die Datei auf einen Volume-Set mit der Eigenschaft AVAILABILITY=*HIGH umallokiert werden. Ist das Umallokieren nicht möglich, wird der CATAL-Aufruf abgewiesen.
Wenn die Storage-Klasse eine Volume-Set-Liste enthält und die Datei auf keinem Volume-Set der Volume-Set-Liste liegt, wird die Datei nach Möglichkeit auf einen Volume-Set aus der Liste umallokiert. Ist das Umallokieren nicht möglich, wird der CATAL-Aufruf ohne Umallokieren ausgeführt.
Während des Umallokierens ist die Datei gesperrt (geöffnet), d.h. alle Zugriffe auf die Datei bzw. ihren Katalogeintrag werden abgewiesen, also auch nicht in einen Wartezustand versetzt.
= *NONE
Es wird keine Storage-Klasse zugewiesen; für die Wahl des Ablageortes werden die entsprechenden Einzel-Attribute ausgewertet.
Der Wert wird ignoriert für Dateien und Generationen auf Volume-Sets mit permanenter Datenhaltung, wenn die Dateikennung auf dem entsprechenden SM-Pubset eine Default-Storage-Klasse besitzt und physikalische Allokierung verboten ist.
= *UPDATE
Nur relevant für Dateien, denen eine Storage-Klasse zugewiesen ist, deren Attribute geändert wurden:
Die Dateiattribute werden gemäß der zugewiesenen Storage-Klasse geändert. Wenn die Angabe für Dateigenerationsgruppen erfolgt, wird lediglich geprüft, ob das WORK-FILE-Attribut der Storage-Klasse noch mit dem WORK-FILE-Attribut der Dateigenerationsgruppe übereinstimmt. Ist dies nicht der Fall, wird der Auftrag mit Returncode abgewiesen.
= *STD
Für Dateien und Dateigenerationsgruppen wird die Default-Storage-Klasse der Benutzerkennung für den jeweiligen Pubset verwendet.
Im Zusammenhang mit Dateigenerationen wird die Default-Storage-Klasse der Dateigenerationsgruppe verwendet, also die Storage-Klasse, die dem Index der Dateigenerationsgruppe zugewiesen wurde.
= <c-string: structured-name 1..8>
Die Wahl des Ablageortes der Datei wird durch die angegebene Storage-Klasse bestimmt.
Die Storage-Klasse muss existieren und der Anwender muss das Recht haben, sie zu benutzen.
War der Datei die angegebene Storage-Klasse bereits zugewiesen, werden die Dateiattribute nicht aktualisiert, d.h. zwischenzeitliche Änderungen der Storage-Klasse werden nicht wirksam; siehe *UPDATE.
Für Dateien in SF-Pubsets oder auf privaten Datenträgern wird die Angabe ignoriert. Bei STATE=*NEW und für katalogisierte Dateien ohne Speicherplatzzuweisung wird die Angabe abgewiesen.
= (<reg: A(char:8)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 8 Byte, in dem der Name der Storage-Klasse abgelegt ist.
= <var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 8 Byte, in dem der Name der Storage-Klasse abgelegt ist.
TIMBASE
Gibt an, auf welcher Basis die mit den Operanden EXDATE und DELDATE angegebenen absoluten Datumsangaben interpretiert werden sollen.
Der Operand TIMBASE wirkt nicht auf Datumsangaben, die von der Funktion „Default-Protection“ geliefert wurden. Diese beziehen sich stets auf die lokale Zeit.
= *UTC
Absolute Datumsangaben werden auf Basis der Weltzeit UTC (universal time coordinate) interpretiert.
= *LTI
Alle Datumsangaben werden auf Basis der lokalen Zeit LTI (local time) interpretiert.
USRINFO
Trägt eine benutzereigene Metainformation in den Katalogeintrag der Datei ein. Der Eintrag kann maximal 8 Byte beliebigen Inhalts aufnehmen, dessen Bedeutung der Anwender selbst festlegt. Für Dateien auf privaten Datenträgern wird der Operand ignoriert.
= *NONE
Kein Eintrag bzw. der Eintrag wird gelöscht.
= <c-string 1..8>
Die angegebenen Zeichen werden eingetragen.
= (<reg: A(char:8)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 8 Byte, in dem die einzutragende Metainformation abgelegt ist.
= <var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 8 Byte, in dem die einzutragende Metainformation abgelegt ist.
VERSION
Gibt an, welche Version der Parameterliste generiert werden soll. Es sollte immer die neueste Version verwendet werden!
Die Voreinstellung kann nicht explizit angegeben werden!
implizite Voreinstellung: VERSION=0
Es wird das Parameterlistenformat generiert, das vor BS2000 V9.5A unterstützt wurde. Dieses Format unterstützt allerdings auch nur die bis dahin bekannten Parameter. Die unterstützten Operanden/Operandenwerte können der Tabelle „Versionsunterschiede - VERSION=0/1/2/3/4" entnommen werden.
= 1
Es wird das Parameterlistenformat generiert, das in BS2000 V9.5 und V10.0 unterstützt wurde.
Dieses Format unterstützt allerdings auch nur die bis dahin bekannten Parameter. Die unterstützten Operanden/Operandenwerte können der Tabelle „Versionsunterschiede - VERSION=0/1/2/3/4" entnommen werden.
= 2
Es wird das Parameterlistenformat für die Versionen BS2000/OSD-BC V1.0 und V2.0 generiert.
= 3
Es wird das Parameterlistenformat für Versionen ab BS2000/OSD-BC V3.0 generiert.
= 4
Es wird das Parameterlistenformat für Versionen ab BS2000 OSD-BC V11.0 generiert.
Hinweis
Wenn schon bestehende Software neu übersetzt werden soll, die Manipulationen an der generierten Parameterliste vornimmt, muss das alte Format (0) bzw. (1) bzw. (2) angefordert werden. Ansonsten liegt Source-Kompatibilität vor.
VOLUME
Nur für FGG auf Privatplatten:
Gibt die Archivnummer („vsn“) eines privaten Datenträgers (Privatplatte) an.
Die Operanden VOLUME und DEVICE müssen angegeben werden, wenn eine FGG auf Privatplatten neu erstellt oder rekonstruiert wird (STATE=*NEW) oder wenn eine FGG, die bereits auf Privatplatten existiert, importiert werden soll (STATE=*FOREIGN).
Ist das Softwareprodukt MAREN im Einsatz, kann VOLUME auch ohne Angabe von DEVICE angegeben werden.
= <c-string 1..6>
Archivnummer
= (<reg: A(char:6)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 6 Byte, in dem die Archivnummer abgelegt ist.
= <var: char:6>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 6 Byte, in dem die Archivnummer abgelegt ist.
WORKGRP
Nur relevant beim Einrichten einer Dateigenerationsgruppe in SM-Pubsets:
Legt fest, ob die Dateigenerationsgruppe eine permanente oder eine Arbeits-Dateigenerationsgruppe sein soll.
Arbeits-Dateigenerationsgruppen können zu einem von der Systemverwaltung festgelegten Zeitpunkt durch die Systemverwaltung gelöscht werden.
= *YES
Die Dateigenerationsgruppe wird als Arbeits-Dateigenerationsgruppe eingerichtet.
WRPASS
Der Benutzer kann mit WRPASS ein Schreibkennwort definieren, ändern oder löschen.
temporäre Dateien:
kein Kennwortschutz möglich
Banddateien:
der Kennwortschutz wird im HDR3-Kennsatz vermerkt
Voreinstellung (nur bei STATE=*NEW): WRPASS=*NONE
= *NONE
Es wird kein Schreibkennwort vergeben oder ein bestehendes gelöscht.
= *UNCHANGED
Bei gleichzeitiger Angabe von STATE=*UPDATE bleibt der Wert für WRPASS unverändert, bei gleichzeitiger Angabe von STATE=*NEW wird der Wert WRPASS=*NONE eingetragen.
Falls PROTECT=*BY_DEF_PROT_OR_STD oder STATE=*NEW ohne Angabe zu PROTECT angegeben ist, unterdrückt der Wert *UNCHANGED die Übernahme des entsprechenden von der Funktion „Default-Protection“ gelieferten Wertes.
Bei STATE=*UPDATE gilt: Falls nicht PROTECT=*BY_DEF_PROT_OR_STD angegeben ist, ist die Angabe *UNCHANGED gleichbedeutend mit fehlender Angabe.
Bei STATE=*NEW gilt: Die Angabe *UNCHANGED ist gleichbedeutend mit der Angabe *NONE (unabhängig von der Angabe bei PROTECT).
= <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483647>
definiert ein für Schreibzugriff erforderliches Kennwort.
= (<reg: A(char:4)>)
Nur mit MF=M möglich:
Das angegebene Register enthält die Adresse eines Speicherbereiches von 4 Byte, in dem das Schreibkennwort abgelegt ist.
= <var: char:4>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereiches von 4 Byte, in dem das Schreibkennwort abgelegt ist.
Hinweise zur Programmierung
Aufruf des CATAL-Makros mit der neuen Operandenliste:
label CATAL <operanden,...>,VERSION=3Register 1 – Adresse der Operandenliste
Der Fehlercode wird nur noch im Standardheader der Parameterliste (Feld IDKRET) und nicht mehr wie in Version 2 im Mehrzweckregister 15 zurückgeliefert.
Returncodes
Standardheader: ccbbaaaa
Über die Ausführung des Makros CATAL wird im Standardheader folgender Returncode übergeben (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'cc' | X'bb' | X'aaaa' | Erläuterung |
X'00' | X'0000' | Kein Fehler | |
X'01' | X'00' | X'0000' | Nur mit Kontrolldialogen: |
X'02' | X'00' | X'0000' | Nur im Zusammenhang mit CHECK not equal *NO: |
X'40' | X'0501' | Angeforderter Katalog nicht verfügbar | |
X'82' | X'0502' | Angeforderter Katalog im Ruhezustand | |
X'40' | X'0503' | Falsche Information im MRSCAT | |
X'82' | X'0504' | Fehler im Katalog-Verwaltungs-System | |
X'40' | X'0505' | Fehler bei der Rechner-Kommunikation (MRS) | |
X'80' | X'0506' | Operation wegen Masterwechsel abgebrochen | |
X'01' | X'0509' | Angegebene Anzahl der Versionen für Versions-Backup ungültig | |
X'40' | X'0510' | Fehler beim Aufruf einer internen Funktion | |
X'40' | X'0512' | Angeforderter Katalog unbekannt | |
X'40' | X'0513' | Aufruf wurde von System-Exit-Routine abgewiesen | |
X'40' | X'051B' | Benutzerkennung im angegebenen Pubset unbekannt | |
X'40' | X'051C' | Kein Zugriffsrecht auf angegebenen Pubset | |
X'40' | X'051D' | LOGON-Passwort auf angegebenem Pubset anders | |
X'20' | X'0527' | Ein-/Ausgabefehler beim Umallokieren der Daten in einem SM-Pubset | |
X'20' | X'0530' | CMS meldet Fehler bei der Speicherplatzanforderung | |
X'20' | X'0531' | Unerwarteter Fehler beim Katalogzugriff | |
X'82' | X'0532' | Datei gesperrt weil in Gebrauch | |
X'82' | X'0534' | Privater Datenträger kann nicht zugewiesen werden | |
X'40' | X'0535' | Keine Zugriffsberechtigung auf den Katalogeintrag der Datei (nur im Zusammenhang mit der CCS- oder NETCSS-Vergabe auf fremder Benutzerkennung) | |
X'20' | X'0536' | Fehler im Dateiverwaltungssystem | |
X'40' | X'053A' | Fehler beim Ändern des F1-Labels auf privater Platte | |
X'20' | X'053B' | Systemfehler beim Dateizugriff | |
X'82' | X'053C' | Katalog-Datei des Pubsets ist voll | |
X'40' | X'053D' | Katalog oder F1-Etikett-Block ist zerstört | |
X'40' | X'053E' | Datei auf privatem Datenträger bereits katalogisiert | |
X'82' | X'053F' | Datei ist von einer anderen Task reserviert | |
X'40' | X'0540' | Im angegebenen Pubset ist kein Volume-Set verfügbar, das den geforderten Dateiattributen entspricht | |
X'82' | X'0541' | Umallokieren der Daten nicht möglich, weil kein geeigneter VolumeSet genügend freien Speicherplatz hat | |
X'40' | X'0546' | Katalogeintrag der Datei ist voll | |
X'82' | X'054D' | Speicherplatz-Kontingent überschritten | |
X'20' | X'054F' | Unerwarteter Fehler beim Zugriff auf JOIN-Datei | |
X'40' | X'0555' | STATE=*FOREIGN: Angegebene Datei existiert bereits im Katalog des Benutzers | |
X'82' | X'055A' | Geräte zurzeit belegt | |
X'40' | X'055C' | Katalogeintrag auf Privatplatte nicht gefunden | |
X'40' | X'055D' | Benutzer hat kein Recht zur physikalischen Allokierung | |
X'40' | X'055F' | Datenträger konnte nicht belegt werden | |
X'01' | X'0576' | Widersprüchliche Operandenkombination oder reservierte Felder des Parameterbereiches verwendet | |
X'20' | X'0577' | Interner Fehler beim Zugriff auf die Auftragsumgebung | |
X'20' | X'0578' | Interner Fehler bei der Überprüfung der Zugriffsrechte | |
X'01' | X'0579' | Ungültiger Operand für temporäre Datei angegeben | |
X'40' | X'057A' | Attribut kann für Arbeitsdatei nicht vergeben werden | |
X'40' | X'057E' | HSMS nicht verfügbar | |
X'40' | X'057F' | Datei ist verdrängt, Umbenennen nicht möglich | |
X'01' | X'0590' | Volume-Angabe ohne Device-Angabe unzulässig | |
X'82' | X'0594' | Nicht genug virtueller Speicher verfügbar (auch bei einer Auswahlangabe (Wildcard), wenn zu viele Dateien selektiert wurden) | |
X'01' | X'0599' | Operand wird in der RFA-BS-Version nicht unterstützt | |
X'40' | X'05A0' | Aktualisieren der Performance-Attribute (DISKWR, IOPERF, IOUSAGE) nicht erlaubt, wenn Daten aus dem Schreibcache noch nicht geschrieben wurden | |
X'01' | X'05A8' | Angeforderter Gerätetyp im System nicht gefunden | |
X'40' | X'05AD' | Nur beim Umbenennen mit gleichzeitiger S0-Migration: | |
X'82' | X'05B0' | Zurzeit kein passendes Gerät verfügbar | |
X'40' | X'05B4' | Nur im Zusammenhang mit VOLUME/DEVICE: | |
X'40' | X'05B5' | Guard nicht verfügbar | |
X'40' | X'05BD' | Unzulässige Kombination von Datei- und Volume-Set-Eigenschaften | |
X'20' | X'05C7' | Interner Fehler im DMS | |
X'82' | X'05C8' | Maximale Anzahl Dateien für Benutzerkennung erreicht | |
X'20' | X'05CA' | Interner Fehler bei Modifikation des CE-Kontingents | |
X'01' | X'05CB' | Fehlerhafter/unerlaubter erster Dateiname | |
X'40' | X'05CC' | Dateiname bereits katalogisiert | |
X'01' | X'05CD' | Fehlerhafter/unerlaubter neuer Dateiname | |
X'40' | X'05CE' | Erster Dateiname noch nicht katalogisiert | |
X'40' | X'05CF' | Datei ist mit Passwort geschützt | |
X'82' | X'05D0' | Datei gesperrt weil in Gebrauch | |
X'40' | X'05D1' | Fehler bei der Geräteanforderung | |
X'40' | X'05D2' | EXPIRATION-DATE wurde für Datei ohne Inhalt angegeben | |
X'01' | X'05D3' | GUARD-Name fehlerhaft | |
X'40' | X'05D4' | GUARDS-Katalog darf nicht mit GUARD geschützt werden | |
X'01' | X'05E8' | Dateiname ungültig für Plattendatei | |
X'01' | X'05EE' | Dateiname zu lang | |
X'01' | X'05EF' | BASIC-ACL oder GUARD kann nicht vergeben werden | |
X'01' | X'05FA' | Zugriff auf REMOTE-IMPORTED-Pubset nicht möglich | |
X'40' | X'05FC' | Angegebene Benutzerkennung nicht im Home-Pubset | |
X'40' | X'05FD' | Datei ist durch USER-ACCESS oder EXPIRATION-DATE schreibgeschützt (nur bei CCS- oder NETCSS-Vergabe auf fremder Benutzerkennung) | |
X'40' | X'0606' | Datenträger-Anforderung von MAREN abgewiesen | |
X'40' | X'0609' | Aktion für Systemdatei nicht erlaubt | |
X'40' | X'060D' | Fehler beim Lesen der Attribute einer Referenzdatei (Op. PROTECT)
| |
X'40' | X'0610' | Mindestens für einen der ausgewählten Dateinamen lieferte die Funktionsausführung einen Returncode | |
X'01' | X'0611' | Fehlerhafte Konstruktionsangabe (Oper. NEWNAME mit Wildcards) | |
X'40' | X'0613' | Unbekannte Management-Klasse | |
X'40' | X'0614' | Keine Zugriffsberechtigung für Management-Klasse | |
X'40' | X'0616' | Angegebene Attribute erfordern eine S0-Migration, aber die Datei ist gegen Umallokieren gesperrt | |
X'40' | X'0618' | Unbekannte Storage-Klasse | |
X'40' | X'0619' | Keine Zugriffsberechtigung für Storage-Klasse | |
X'40' | X'0640 | Zugriff auf Net-Storage wird vom Subsystem ONETSTOR wegen Kommunikationsproblemen mit dem Net-Client abgewiesen | |
X'40' | X'0643' | Net-Client meldet Zugriffsfehler | |
X'40' | X'0644' | Net-Client meldet internen Fehler | |
X'40' | X'0645' | Datei auf Net-Storage nicht vorhanden | |
X'40' | X'0646' | FGG auf Net-Storage-Volume nicht erlaubt | |
X'40' | X'0649' | Net-Server meldet POSIX-ACL-FEHLER | |
X'40' | X'064A' | Net-Client meldet Zugriff auf Dateien auf dem Net-Storage-Volume verboten | |
X'40' | X'064B' | Zugriff auf Node-Files vom Net-Client nicht unterstützt | |
X'40' | X'0666' | Datei ist durch GUARDS schreibgeschützt (nur bei CCS- oder NETCSS-Vergabe auf fremder Benutzerkennung) | |
X'40' | X'0685' | Datei belegt keinen Speicherplatz und es soll AVAIL=*HIGH, eine Storage-Klasse oder eine S0-Migrationssperre gesetzt werden | |
X'20' | X'069D' | Fehlerhaft aufgebauter Katalogeintrag | |
X'40' | X'06A6' | AUDIT-Angabe für Benutzerkennung nicht zugelassen | |
X'00' | X'06A9' | Einige Generationen der Dateigenerationsgruppe fehlen | |
X'40' | X'06B6' | Attribute der Datei passen nicht zur Dateigenerationsgruppe | |
X'01' | X'06C1' | Mehr als 255 Generationen gefordert oder Konflikt mit BASE-, LAST- oder FIRST-Operanden | |
X'01' | X'06C3' | Unzulässiger Name für eine Dateigenerationsgruppe | |
X'40' | X'06C4' | Dateigenerationsgruppe noch nicht katalogisiert | |
X'01' | X'06C5' | Name für eine Dateigenerationsgruppe zu lang | |
X'01' | X'06C6' | Name oder Merkmal einer Banddatei nicht modifizierbar | |
X'01' | X'06C7' | Ungültige Generationsnummer angegeben | |
X'01' | X'06C8' | Attribut kann nur für die gesamte Dateigenerationsgruppe modifiziert werden | |
X'01' | X'06C9' | Generationsspezifische Operanden im falschen Kontext | |
X'00' | X'06CA' | Kommando außer fehlerhafter BASE-Angabe ausgeführt | |
X'40' | X'06CC' | nur bei Auswahlangabe (Wildcard): | |
X'40' | X'06CD' | Angegebene Dateigenerationsgruppe mit Schreibschutz gegen Erweiterungen gesperrt | |
X'01' | X'06CE' | Schutzfrist (RETPD, EXDATE) oder Lösch-Freigabedatum (DELDATE) fehlerhaft angegeben | |
X'40' | X'06D5' | Löschen überzähliger Dateigenerationen wird durch Schreibschutz verhindert | |
X'01' | X'06DA' | Unzulässige Kombination von privaten und öffentlichen Datenträgern für eine Dateigenerationsgruppe | |
X'01' | X'06DB' | Fehlerhafte VOLUME- und DEVICE-Angabe | |
X'01' | X'06FA' | Neuer Dateiname nur mit STATE=*UPDATE erlaubt | |
X'01' | X'06FB' | Vergabe von Ausführungsrechten für Dateigenerationsgruppe nicht möglich | |
X'01' | X'06FD' | Parameterbereich ungültig oder nicht zugreifbar | |
X'40' | X'06FF' | BCAM-Verbindung abgebrochen | |
X'01' | X'FFFF' | Falsche Funktionsnummer im Parameterbereichs-Header | |
X'03' | X'FFFF' | Falsche Versionsnummer im Parameterbereichs-Header |