Dateizugriff im MF/MV-Set
Soll auf eine katalogisierte Datei innerhalb eines MF/MV-Sets zugegriffen werden, muss in den Makros FILE und FCB bzw. im Kommando ADD-FILE-LINK nur der Dateinamen angegeben werden. Das DVS entnimmt die zugehörigen Archivnummern und die Dateifolgenummer dem Katalogeintrag. Bei Eröffnung der Datei (OPEN) positioniert das DVS das erste Band der Datenträgerliste auf den Dateianfang, überprüft dann die Dateianfangskennsätze und erlaubt – falls zulässig – den Zugriff auf die Datei.
Der Ablauf von Kennsatzprüfung und Positionieren ist im Kapitel „Kennsatz-Verarbeitung beim Eröffnen von Banddateien" detailliert beschrieben.
Soll auf eine bestehende, aber nicht katalogisierte Datei (= FOREIGN-Datei) zugegriffen werden, können bei Verwendung von Makros folgende Angaben gemacht werden:
im FILE-Makroaufruf der Dateiname, der Operand STATE=FOREIGN, die Dateifolgenummer (FSEQ=) und im VOLUME-Operanden die Datenträgerliste
Falls die Dateifolgenummer unbekannt ist, kann neben Dateinamen und VOLUME-Datenträgerliste der Operanden „FSEQ=UNK“ angegeben werden. Das DVS sucht die Datei auf der angegebenen Bandmenge, wobei es den Dateinamen als Suchargument verwendet. Dies setzt jedoch voraus, dass die FOREIGN-Datei mit Standardkennsätzen erstellt wurde
Bei Verwendung von Kommandos muss die Datei zunächst mit dem Kommando IMPORT-FILE importiert werden. Danach der Benutzer folgende Angaben machen:
im Kommando ADD-FILE-LINK den Dateinamen und die Dateifolgenummer (Operand FILE-SEQUENCE=)
Falls die Dateifolgenummer unbekannt ist, kann neben dem Dateinamen der Operand „FILE-SEQUENCE=UNKNOWN“ angegeben werden. Das DVS sucht die Datei auf der angegebenen Bandmenge, wobei es den Dateinamen als Suchargument verwendet. Dies setzt jedoch voraus, dass die FOREIGN-Datei mit Standardkennsätzen erstellt wurde
Enthält der FILE-Makroaufruf keine VSEQ-Angabe bzw. das Kommando ADD-FILE-LINK keine Angaben beim Operanden VOL-SEQUENCE-NUMBER, setzt das DVS voraus, dass der erste Abschnitt der Datei gesucht wird.
Zugriff in Richtung Band-/Dateianfang (REVERSE)
Beim Zugriff im REVERSE-Modus fordert das DVS den Datenträger an, der den letzten Dateiabschnitt enthält und positioniert an das Ende dieses Dateiabschnitts. Aus der im Katalogeintrag vermerkten Anzahl der Bänder, über die sich die Datei erstreckt, leitet das DVS ab, welcher Datenträger der Bandfolge das Dateiende enthält. Ist die Datei nicht katalogisiert (FOREIGN-Datei), setzt das DVS voraus, dass das letzte Band der Datenträgerliste das Dateiende enthält.
Wird im Makro FILE (Operand VSEQ) bzw. im Kommando ADD-FILE-LINK (Operand VOL-SEQUENCE-NUMBER) nur eine Bandfolgenummer angegeben, fordert das DVS das entsprechende Band an, da Dateiabschnitts- und Bandfolgenummer einander entsprechen. Es positioniert dann auf das Ende des Dateiabschnitts.
Zugriff zu einem beliebigen Dateiabschnitt
Soll eine Datei verarbeitet werden, die sich über mehrere Bänder erstreckt, kann die Datei über den Makro FILE (Operand VSEQ) bzw. über Kommando ADD-FILE-LINK (Operand VOL-SEQUENCE-NUMBER) auf einen beliebigen Dateiabschnitt positioniert werden. Das Benutzerprogramm kann dann diesen einen Dateiabschnitt oder ab diesem Dateiabschnitt alle weiteren bis zum Dateiende verarbeiten.
Soll das Programm nur einen Dateiabschnitt verarbeiten, müssen muss der VSEQ-Operanden folgendermaßen angegeben werden:
VSEQ=(L=(n))
Soll das Programm ab einem Dateiabschnitt alle weiteren bis zum Dateiende verarbeiten, muss der VSEQ-Operand folgendermaßen angegeben werden:
VSEQ=n
„n“ verweist jeweils auf das Band, mit dem ersten zu verarbeitenden Dateiabschnitt.
Wahlfreier Zugriff zu Dateiabschnitten
Dateiabschnitte einer Datei können in beliebiger Reihenfolge verarbeitet werden. Dazu ist im VSEQ- bzw. VOL-SEQUENCE-NUMBER-Operanden eine Liste von Dateiabschnittsnummern anzugeben. Die Einträge in der Liste beziehen sich jeweils auf ein Band der Bandfolge, auf der die Datei gespeichert ist.
Beispiel 1 (Programm-Schnittstelle)
Datei A erstreckt sich über die Bänder 00000A, 00000B, 00000C, 00000D, 00000E. Wird vom Benutzer der VSEQ-Operanden angegeben:
VSEQ=(L=(4,1,3))
und verarbeitet as Programm jeden angegebenen Dateiabschnitt vollständig, fordert das DVS nacheinander das Montieren der Bänder 00000D, 00000A, 00000C an.
Wahlweiser Zugriff zu Dateiabschnitten ist insbesondere dann von Bedeutung, wenn Dateiabschnitte einer Mehrbanddatei (Multi-Volume-File) zerstört oder nicht mehr lesbar sind und Sie die noch lesbaren Teile Ihrer Daten verarbeiten möchten.
Beispiel 2 (Programm-Schnittstelle)
Wäre im oben gezeigten Beispiel der zweite Dateiabschnitt der Datei A zerstört, könnten mit der folgenden Angabe die angegebenen Dateiabschnitte noch verarbeitet werden:
VSEQ=(L=(1,3,4,5)
Beispiel 3: Datei abschnittsweise verarbeiten (Kommando-Schnittstelle)
Datei A erstreckt sich über die Bänder 00000A, 00000B, 00000C, 00000D, 00000E. Wenn folgendes ADD-FILE-LINK-Kommando abgegeben wird:
/ADD-FILE-LINK FILE-NAME=A,
SUPPORT=*TAPE(VOLUME-LIST=*CATALOG(VOL-SEQUENCE-NUMBER=(4,1,3))
und das Programm jeden angegebenen Dateiabschnitt vollständig verarbeitet, fordert das DVS nacheinander das Montieren der Bänder 00000D, 00000A, 00000C an.
Beispiel 4: Zugriff auf Dateiabschnitte (Kommando-Schnittstelle)
Wäre im oben gezeigten Beispiel der zweite Dateiabschnitt der Datei A zerstört, könnten mit folgendem Kommando die übrigen Dateiabschnitte noch verarbeitet werden:
/ADD-FILE-LINK FILE-NAME=A,
SUPPORT=*TAPE(VOLUME-LIST=*CATALOG(VOL-SEQUENCE-NUMBER=(1,3,4,5))
Erweiterung einer Datei auf einem MF/MV-Set
Für die Dateierweiterung im MF/MV-Set gilt das Gleiche wie für die Dateierweiterung in Dateimengen:
Die Katalogeinträge der überschriebenen Dateien werden nicht automatisch gelöscht, verweisen also auf nicht mehr vorhandene Dateien. Jeder Versuch, auf eine implizit überschriebene Datei zuzugreifen, führt zu einem OPEN-Fehler. Der Benutzer ist für das Löschen der Katalogeinträge selbst verantwortlich.
Es kann vorkommen, dass durch implizites Überschreiben der n-te Dateiabschnitt einer Mehrbanddatei verloren geht. Der Benutzer kann jedoch z.B. durch die Angabe
VSEQ=n+1 im FILE-Makroaufruf bzw. durch die Angabe START-POSITION=n+1 im Kommando ADD-FILE-LINK nach wie vor auf den folgenden Abschnitt seiner Datei zugreifen.
Alle Dateien einer Dateimenge, die vor der überschriebenen/erweiterten Datei auf dem Band gespeichert sind, sowie Dateien, die auf Bändern einer Bandmenge vor bzw. nach dem aktuellen Band gespeichert sind, sind weiter verfügbar.
Die überschriebene/erweiterte Datei wird zur letzten Datei der Dateimenge.
Die ursprüngliche Bandmenge existiert nicht mehr. Die Bandmenge einschließlich des Bandes, auf dem eine Datei überschrieben/erweitert wurde, bildet jetzt eine neue Bandmenge. Jeder Versuch, von dieser neuen Bandmenge auf ein Band der „Restmenge“ zu positionieren, führt zu unvorhersehbaren Ergebnissen.
Implizites Überschreiben einer Datei wird verhindert, wenn die vorausgehende Datei einen höheren Schutzgrad (Sperrfrist, Zugriffsart) hat. Bei Angabe des SECLEV-Operanden mit dem Zusatz OPR in den Makros FILE und FCB bzw. des Operanden OVERWRITE-PROTECTION im Kommando ADD-FILE-LINK kann eine Datei nicht erstellt werden, wenn ihre Vorgängerdatei einen geringeren Schutzgrad hat.
Positionieren von MF/MV-Sets
Der Zugriff zu einer Datei in einem MF/MV-Set setzt das Positionieren der Bandmenge auf die gewünschte Datei voraus. Dieses Positionieren wird für katalogisierte Dateien mit Standardkennsätzen oder ohne Kennsätze automatisch vorgenommen, wenn die Datei eröffnet werden soll. Bei nicht-katalogisierten Dateien und Dateien, die mit Nicht-Standardkennsätzen erstellt wurden, ist der Benutzer für die korrekte Positionierung verantwortlich.
Das Positionieren erfolgt auf der Basis der Dateifolgenummer, die durch FSEQ bzw. FILE-SEQUENCE festgelegt wird. Jeder Datei auf einem MF/MV-Set wird beim Erstellen eine fortlaufende Dateifolgenummer zugeordnet. Wird eine Datei auf einem Folgeband fortgesetzt, bleibt ihre Dateifolgenummer gleich. Erst die Datei, die ihr auf dem Folgeband folgt, erhält eine um 1 größere Dateifolgenummer. Die Dateifolgenummer einer Datei wird im HDR1-Kennsatz und im Katalogeintrag festgehalten.
Will ein Benutzer auf eine katalogisierte Datei zugreifen, übernimmt das DVS die Dateifolgenummer und die Archivnummern der Bänder, auf denen die Datei gespeichert ist, aus dem Datei-Katalogeintrag.
Für den Zugriff zu einer nichtkatalogisierten Datei oder beim Erstellen einer neuen Datei, muss der Operand FSEQ in den Makros FILE und FCB bzw. der Operanden FILE-SEQUENCE im Kommando ADD-FILE-LINK angegeben werden. Andernfalls unterstellt das DVS, dass auf die erste Datei einer Dateimenge zugegriffen werden soll.
Wenn eine Datei auf dem Band eröffnet wird, wird die aktuelle Dateifolgenummer dem Aufruf der Makros FILE oder FCB bzw. des Kommandos ADD-FILE-LINK oder dem Katalogeintrag entnommen.
Das Band wird solange weiter positioniert, bis
die aktuelle Dateifolgenummer mit der geforderten übereinstimmt
in Zusammenhang mit FSEQ=NEW bzw. FILE-SEQUENCE=NEW das Ende des MF/MV-Sets erkannt wird: eine Doppel-Abschnittsmarke, die einer EOF-Kennsatzgruppe folgt; das Band wird um eine Abschnittsmarke zurückgesetzt.
in Zusammenhang mit FSEQ=UNK bzw. FILE-SEQUENCE=UNKNOWN der Dateiname erkannt wird
Falls nötig, führt das DVS automatisch Bandwechsel durch, inklusive Kennsatzprüfungen (siehe Kapitel „Kennsatz-Verarbeitung beim Eröffnen von Banddateien").
Wenn eine Datei mit OPEN REVERSE eröffnet werden soll, verläuft die Suche wie oben beschrieben, allerdings wird jeweils auf das Dateiende positioniert.
Für das Positionieren von Bändern mit Nicht-Standardkennsätzen muss der Benutzer in spezifischen EXLST-Routinen Sorge tragen.