Der Ablauf der OPEN-Verarbeitung variiert in geringem Ausmaß, abhängig davon, ob der Benutzer die XS-Schnittstelle (31-Bit-Adressierung) nutzt. Im Folgenden wird der Ablauf für die XS-OPEN-Verarbeitung beschrieben.
Die Besonderheiten der 24-Bit-Schnittstelle sind im Abschnitt „XS-/Nicht-XS-Schnittstelle" beschrieben.
Das DVS führt folgende Aktionen durch:
Dateisteuerblock vervollständigen aus den Quellen TFT und Katalogeintrag
falls nötig private Datenträger anfordern
den Dateisteuerblock mit den Routinen der Zugriffsmethoden verbinden. Den FCB mit den Adressen der logischen Routinen (TU-Logicals) versorgen, die das Blocken und Entblocken der Datensätze übernehmen
privilegierten internen Dateisteuerblock (TPR-FCB) aufbauen: der Benutzer hat zu diesem Steuerblock keinen Zugriff; er wird vom DVS intern verwendet
Pufferbereiche zuweisen
Katalogeintrag aktualisieren
Insbesondere bei Node-Files können die Dateiattribute CHANGE-DATE, FILESIZE, Highest-Used-Page (LPP) und LBP veraltet sein, wenn ein fremdes System die Dateien geändert hat. Diese Werte werden im Rahmen des OPEN automatisch aktualisiert. Hierbei ist zu beachten, dass bei mehreren aufeinander folgenden OPEN (ohne CLOSE) die Aktualisierung des CEs nur beim ersten OPEN stattfindet. Die folgenden OPEN erhalten die aktuellen Werte des LPP und LBP im FCB zugestellt.
Eine Aktualisierung des Katalogeintrages kann auch manuell mit IMPORT-NODE-FILE REPLACE = *NODE-FILE-UPDATE durchgeführt werden. Hierbei sind die aktualisierten Werte bei SAM-Node-Files für FILESIZE und LPP nur geschätzt.
Hinweis
Der Katalogeintrag einer Datei ist erst vollständig, wenn die Datei als Ausgabedatei eröffnet und wieder geschlossen wurde. Daher unterscheidet man zwischen katalogisierten und existenten Dateien.
Beziehen sich DVS-Makros z.B. auf katalogisierte Dateien, bedeutet dies, dass ein Katalogeintrag für die Datei bestehen muss.
Beziehen sich DVS-Makros auf existente Dateien, müssen diese mindestens einmal als Ausgabedateien eröffnet worden sein. Sie können jedoch leer sein, d.h. keine für den Benutzer zugreifbaren Datensätze enthalten.
Erst zum CLOSE-Zeitpunkt wird der zuletzt aktuelle Seitenzeiger („Last Page Pointer“) und der „Last Byte Pointer“ übertragen.
Der Last Byte Pointer ist nur für PAM-Dateien sowie SAM-Node-Files, die im UPAM-RAW-Modus geöffnet werden, relevant.
Der OPEN-Ablauf für eine Platten- oder Banddatei umfasst im Wesentlichen die folgenden Aktionen:
Suche nach einem TFT-Eintrag mit dem Dateikettungsnamen, der im Dateisteuerblock enthalten ist. Der Dateikettungsname stammt entweder aus einem FCB-Makroaufruf oder wurde direkt in den Steuerblock geschrieben. Jeder FILE- oder ADD-FILE-LINK-Aufruf erzeugt bzw. CHNGE- oder CHANGE-FILE-LINK aktualisiert in der TFT einen Eintrag. Ein solcher Eintrag enthält alle Parameter zur Ergänzung der Dateisteuerblöcke und stellt über den Kettungsnamen (LINK-Parameter) die Verknüpfung zwischen Benutzerprogramm und Datei her. Die Suche nach einem TFT-Eintrag entfällt, wenn im FCB der Operand LINK einen Dateikettungsnamen aus 8 Leerzeichen (8X'40'; 8C'_') enthält.
Aus dem korrespondierenden Eintrag in der TFT werden die entsprechenden Felder im Dateisteuerblock aktualisiert. Falls kein TFT-Eintrag mit dem angegebenen Dateikettungsnamen existiert bzw. falls der Dateikettungsname im FCB aus 8 Leerzeichen (8X'40'; 8C'_') besteht, wird während der OPEN-Verarbeitung ein TFT-Eintrag angelegt. Zum CLOSE-Zeitpunkt wird dieser TFT-Eintrag vom System automatisch wieder freigegeben (impliziter Release). Nur mit FILE (Operand LINK) erzeugte TFT-Einträge bleiben bis zu einem expliziten Release (Kommando REMOVE-FILE-LINK oder Makro RELTFT) erhalten.
Felder, die im FILE-Makroaufruf als Nulloperanden angegeben wurden, haben in der TFT den Eintrag „BY-CATALOG“. Die entsprechenden Felder im FCB werden später mit Informationen aus dem Katalogeintrag vervollständigt.
Komplettieren des Dateinamens. Der Dateiname wird, wenn noch nicht in der kompletten Form vom Benutzer angegeben, um die Katalogidentifikation „Catid“ und die Benutzerkennung „Userid“ ergänzt und in der Form „catid:$userid.dateiname“ im zugehörigen TFT-Eintrag und im FCB hinterlegt.
Wird keine Userid angegeben, so wird die Benutzerkennung des Kommandos SET-LOGON-PARAMETERS verwendet. Wird keine Catid angegeben, so wird die Standard-Katalogkennung der Benutzerkennung verwendet.Einlesen des Katalogeintrages der angeforderten Datei. Ist die Datei weder unter der explizit angegebenen Catid und Userid noch unter der Standardkennung eines Standardkatalogs zu finden, wird der OPEN-Vorgang mit Fehleranzeige beendet. Ist im FCB-Aufruf der Operand OPTION=GLODEF angegeben, kommt es zu keinem Fehler, sondern es wird ein Secondary Read durchgeführt.
Ein Beispiel für den „Secondary Read“, der über den FCB-Operanden OPTION=GLODEF ermöglicht wird, ist auf "Zugriff über die System-Standardkennung" zu finden.
Soweit möglich werden die nicht definierten Felder des FCB mit Informationen aus dem dazugehörigen Katalogeintrag versorgt. Für Dateien mit dem Status FOREIGN (Banddateien im Dateiaustausch) werden die Parameter aus den Bandkennsätzen übernommen.
Vergleich der Datenträgerliste des Katalogeintrags mit der in der TFT vermerkten Datenträgerliste. Sind keine Vermerke in der TFT enthalten, werden sie mithilfe der Katalogangaben aufgebaut und die benötigten Datenträger über die Geräteverwaltung angefordert.
Bandgeräte zuweisen.
Ist für die Datei ein TSET definiert, vergleicht das DVS die Datenträgerlisten von TFT-Eintrag und zugehörigem TST-Eintrag (Tape-Set-Table). Dabei geht es davon aus, dass die Datei auf dem Band beginnt, das in der TST als aktuelles Band geführt wird. Enthält die TFT-Datenträgerliste die aktuelle VSN (Archivnummer), werden die ihr vorangehenden Archivnummern der TFT-Datenträgerliste nicht in den Katalogeintrag übernommen. Enthält die TFT-Datenträgerliste die aktuelle VSN nicht, ersetzen die aktuelle und alle ihr in der TST-Liste folgenden Archivnummern die TFT-Datenträgerliste und werden in den Katalogeintrag übernommen.
Ist für die Datei kein TSET definiert, im TFT-Eintrag jedoch eine temporäre Datenträgerliste enthalten (TVSN), weist das DVS entsprechend dieser TVSN das benötigte Band zu. Die Datenträgerliste im Katalogeintrag wird ignoriert. Der OPEN wird abgewiesen, wenn die Datei eine Ausgabedatei ist. Ist kein TSET definiert, aber im FILE-Makroaufruf VSEQ angegeben worden, darf die Datei nicht mit OPEN INPUT/EXTEND eröffnet werden. Es wird das erste oder das letzte Band aus der TFT-Datenträgerliste zugewiesen.
Sind weder TSET noch TVSN oder VSEQ definiert, wird die Datenträgerliste des Katalogeintrags mit der des TFT-Eintrags in Einklang gebracht und das erste bzw. letzte Band der Liste zugewiesen.
Aufbau des internen privilegierten Dateisteuerblocks (TPR-FCB) und Initialisierung mit den Feldinhalten des FCBs und des Katalogeintrags.
Der ursprüngliche FCB (vor dem OPEN) wird mit den Feldinhalten in einem Sicherstellungsbereich am Ende des TPR-FCB abgespeichert.
Sprung zum OPENX-Ausgang des EXLST-Makroaufrufs (falls im Programm vorgesehen). Das Programm kann an dieser Stelle die bis dahin eingestellten Werte überprüfen. Ändert das Programm die Felder des Dateisteuerblocks, so wird die Verarbeitung mit diesen Werten fortgesetzt. Bei neu anzulegenden Dateien werden diese Werte außerdem in den Katalogeintrag und in die Kennsätze übernommen. Der Dateiname, der Linkname und der Shared-Update-Modus können nicht mehr geändert werden. Die Verarbeitung wird mit dem EXRTN-Makroaufruf fortgesetzt.
Sprung zum OPENZ-Ausgang des EXLST-Makroaufrufs (falls im Programm vorgesehen). An dieser Stelle kann das Programm den Dateisteuerblock noch einmal verändern, diese Änderungen werden jedoch nicht in den Katalogeintrag übernommen. So ist es zum Beispiel möglich, eine Datei mit einer anderen als der im Katalog eingetragenen Zugriffsmethode zu bearbeiten. Der Dateiname, der Linkname, der OPEN-Modus und der Shared-Update-Modus können nicht mehr geändert werden. Die Verarbeitung wird mit dem EXRTN-Makroaufruf fortgesetzt.
Anhand der IO-Performance-Angaben und der eingerichteten Cache-Konfiguration festlegen, ob die Datei über einen Cache bearbeitet werden soll oder nicht. Dabei wird folgendermaßen verfahren:
Ist die Datei bereits von einem anderen Auftrag geöffnet, werden die aktuell eingestellten Attribute auch für diesen OPEN übernommen.
Handelt es sich um den ersten OPEN auf diese Datei, werden die statischen Performance-Attribute (PERFORMANCE, USAGE und DISK-WRITE) gegen die Cache-Eigenschaften (z.B. bei DISK-WRITE=*IMMEDIATE und USAGE=*WRITE/ *READ-WRITE wird Schreib-Caching nur bei einem schreibsicheren Cache zugelassen) geprüft und die danach eingestellten Werte im Katalogeintrag hinterlegt.
Dabei kann der Benutzer über Angaben in der TFT oder im FCB die im Katalogeintrag definierten statischen PERFORMANCE- und USAGE-Werte in Richtung geringerer Wertigkeit dynamisch verändern und somit das Caching für diese eine Dateiverarbeitung ausschalten; die im Katalogeintrag hinterlegten Attribute bleiben dabei unverändert.Überprüfen der Benutzerangaben anhand des Katalogeintrags der Datei. (Datei muss Eingabedatei sein, d.h. OPEN-Mode nicht OUTPUT, nicht OUTIN)
FCB-Werte in den Katalogeintrag übernehmen. Ist die Datei, auf die sich der FCB bezieht, eine Ausgabedatei (OPEN OUTPUT/OUTIN), werden die FCB-Werte in den Katalogeintrag übernommen.
Überprüfen der Zugriffsangaben bzgl. Verfallsdatum, Zugriffsrechte und Kennwörter für Dateien. Diese Überprüfung wird durchgeführt, wenn die Datei bereits erstellt war.
Bei der Neuerstellung der Datei (OPEN-Modus OUTPUT oder OUTIN) auf einem SM-Pubset überprüfen, ob die Eigenschaften des derzeitigen Ablageortes verträglich sind mit den geforderten Datei-Eigenschaften (z.B. Dateiformat BLKCTRL= PAMKEY). Falls nicht, muss eine entsprechende Umallokierung der Datei (ohne Datentransfer) auf einen geeigneten Ablageort angestoßen werden.
Aufbauen bzw. Überprüfen der Kennsätze bei Magnetbandverarbeitung (siehe auch "Kennsatz-Verarbeitung beim Eröffnen von Banddateien"). Bei Neuerstellung einer Banddatei werden die Dateianfangskennsätze HDR1, HDR2 und HDR3 mit Werten versehen und vor den ersten Block der Datei geschrieben. Bei lesenden Zugriff wird der Inhalt dieser Kennsätze zur Identifikation der Datei und zur Überprüfung der Zugriffsberechtigung benutzt. Voraussetzung zur ordnungsgemäßen Verarbeitung der Kennsatzinformationen ist ihr normgerechter Aufbau nach DIN 66029. Enthält die Banddatei keine Standardkennsätze nach o.g. Normvorschrift, haben die Benutzerprogramme selbst die Überprüfung der Banddatei zu übernehmen.
Zuweisen der Ein-/Ausgabebereiche bzw. Validierung der Pufferadressen, falls diese vom Benutzer angegeben wurden.
Laden der Verbindungsroutinen (TU-Logicals) bei Verwendung der Zugriffsmethoden SAM oder ISAM.
Verbindung zwischen Dateisteuerblock und Zugriffsmethoden herstellen, die Adressen der logischen Routinen werden in den FCB übernommen.
Aktualisieren und Rückschreiben des Katalogeintrags, falls erforderlich.
Hinweise
Tritt nach der Umallokierung ein Fehler während des OPEN auf, ist die Datei anschließend zerstört.
Außerdem kann sich bei einer Umallokierung die Extent-Liste während des OPEN ändern, d.h. der Makro FSTAT bzw. das Kommando SHOW-FILE-ATTRIBUTES liefern nach dem OPEN eine andere Information als vorher.
Kann kein geeigneter Ablageort innerhalb des SM-Pubsets gefunden werden, wird der OPEN mit dem Returncode DMS0D80 abgewiesen.