Die Verarbeitung von Ausgabedateien mit Standardkennsätzen wird im Makro FILE mit dem Operanden LABEL=(STD,n), im Kommando ADD-FILE-LINK mit dem Operanden LABEL-TYPE=*STD(DIN-REVISION-NUMBER=n) angefordert.
Wie bei Eingabedateien gilt: Wenn der VOL1-Kennsatz bereits überprüft wurde, geht das DVS gleich zur Prüfung der Dateianfangs-Kennsätze über (siehe unter Punkt 5, "Datei mit Standardkennsätzen").
Bandanfangs-Kennsätze prüfen
1. Ist der erste Satz auf dem Band ein Bandanfangs-Kennsatz VOL1?
Das DVS prüft die ersten vier Zeichen auf die Zeichenfolge „VOL1“. Findet es diese Zeichenfolge nicht, ist der erste Satz kein VOL1-Kennsatz, also kein Standardkennsatz. Das DVS gibt an der Konsole die Meldung DMS0DA2
aus, auf die der Operator reagieren muss.
2. Hat der Benutzer ein bestimmtes Band oder ein Arbeitsband angefordert?
Sie können z.B. im FILE-Makroaufruf mit DEVICE=WORK oder im Kommando CREATE-FILE mit DEVICE-TYPE=WORK ein Arbeitsband anfordern, das Ihnen der Operator zuweisen muss. Der Operator muss auch dann ein Band zuweisen, wenn die Datenträgerliste, die Sie für die Datei per FILE-Makroaufruf (Operand VOLUME) oder Operand VOLUME im Kommando CREATE-FILE definiert haben, erschöpft ist. Das DVS gibt in beiden Fällen an der Konsole die Meldung DMS0DFB
aus; der Operator überprüft nochmals den MOUNT-Vorgang.
3. Wenn der Benutzer ein bestimmtes Band angefordert hat: Wurde das richtige Band zugewiesen?
Das DVS prüft, ob die im VOL1-Kennsatz enthaltene Archivnummer (VSN) mit der im FILE-Makroaufruf (VOLUME=vsn) bzw. im Kommando CREATE-FILE (Operand VOLUME) angegebenen übereinstimmt. Stimmen diese beiden Archivnummern nicht überein, gibt das DVS an der Konsole die Meldung DMS0DA1
aus. Der Operator muss jetzt über den weiteren Verlauf der Verarbeitung entscheiden.
4. Ist Zugriff nur dem Bandeigentümer gestattet? Und wenn ja: Sind Bandeigentümer und Benutzerkennung identisch?
Das DVS wertet den Inhalt der beiden VOL1-Felder „Zugriffsvermerk“ und „Eigentümerkennzeichen“ aus. Ist der Benutzer nicht zugriffsberechtigt, gibt das DVS dem Benutzer die Meldung DMS0DD7
aus. Sie können jetzt Ihr Programm beenden oder die Kennsatzprüfung wiederholen lassen.
In der Regel wird bei der Initialisierung kein Bandeigentümer oder als Bandeigentümer das Rechenzentrum eingetragen und das Band als „mehrbenutzbar“ gekennzeichnet.
5. Ist der nächste zu lesende Satz ein HDR1-Kennsatz?
Im Anschluss an die VOL1-Prüfung wird das Band entsprechend der FSEQ-Angabe im FILE-Makroaufruf oder im FCB bzw. entsprechend der Angabe beim Operanden FILE-SEQUENCE im Kommando ADD-FILE-LINK positioniert.
Findet das DVS an dieser Stelle keinen HDR1-Kennsatz, beginnt es mit den „Maßnahmen gegen implizites Überschreiben“ (siehe Punkt 9, "Datei mit Standardkennsätzen"). Hat das DVS einen HDR1-Kennsatz gefunden, liest es auch den HDR2- und – wenn eine bestehende Datei überschrieben werden soll – auch den HDR3-Kennsatz. Wird ein Band von Beginn an neu beschrieben, ist der nächste Schritt die Aktualisierung der Bandanfangs-Kennsätze (siehe "Datei mit Standardkennsätzen").
6. Darf der anfordernde Auftrag die Datei (über)schreiben?
Das DVS wertet Zugriffsvermerk (im HDR1) und, wenn schon ein HDR3-Kennsatz existiert, Dateieigentümerkennzeichen aus und prüft, ob der Auftrag zugriffsberechtigt ist. Ist der Auftrag nicht zugriffsberechtigt, gibt das DVS dem Benutzer die Meldung DMS0DD7
aus.
7. Darf die Datei überschrieben werden?
Das DVS prüft Freigabedatum und Zugriffsart in HDR1- und HDR3-Kennsatz. Besteht für die Datei eine Schutzfrist (Freigabedatum in HDR1 > aktuelles Tagesdatum) oder darf laut „Zugriffsart“ in HDR3 die Datei nur gelesen werden (entspricht ACCESS=READ), wird dem Benutzer die Meldung DMS0DA3
ausgegeben. Sie können, wenn Sie dazu berechtigt sind, diese Meldung ignorieren und mit der Dateiverarbeitung fortfahren. Sie können aber auch
Ihr Programm mit einer Fehlerroutine beenden lassen, sich den Kennsatzinhalt anzeigen lassen oder die Kennsatzprüfung evtl. mit einem neuen Band (bei FOREIGN-Dateien) wiederholen lassen.
Darf die Datei überschrieben werden, werden die Kennwortfelder des HDR3-Kennsatzes nicht mehr geprüft.
8. Haben die Felder „Dateiabschnittsnummer“ und „Dateifolgenummer“ im HDR1-Kennsatz gültige Werte?
Wenn eine bestehende Mehrbanddatei überschrieben wird, muss die Dateiabschnittsnummer im HDR1-Kennsatz mit der im FILE-Makroaufruf (Operand VSEQ=) bzw. mit der im Kommando ADD-FILE-LINK (Operand VOL-SEQUENCE-NUMBER) angegebenen übereinstimmen. Für das Band, auf dem die Datei beginnt, muss VSEQ=1 bzw. VOL-SEQUENCE-NUMBER=1 sein.
Hat VSEQ bzw. VOL-SEQUENCE-NUMBER keinen gültigen Wert, wird die OPEN-Verarbeitung abgebrochen, wenn nicht gleichzeitig (explizit oder implizit) FSEQ=0 oder FSEQ=1 gilt bzw. FILE-SEQUENCE=0 oder FILE-SEQUENCE=1, d.h. wenn die neue Ausgabedatei nicht die erste Datei einer Dateimenge (File Set) ist.
9. Maßnahmen gegen implizites Überschreiben
Wurde in FILE-Makroaufruf oder FCB mit dem Operanden SECLEV bzw. im Kommando ADD-FILE-LINK mit dem Operanden OVERWRITE-PROTECTION=*YES Schutz gegen Überschreiben gefordert (Overwrite Protection (OPR)) und soll die aktuelle Datei als Element einer Dateimenge hinter eine schon bestehende Datei geschrieben werden (FSEQ=n, n > 1), vergleicht das DVS die für die neue Datei definierten Schutzmerkmale „Freigabedatum“ und „Zugriffsart“ mit denen der vorhergehenden Datei (FSEQ=n-1).
Es entnimmt die Werte den entsprechenden Feldern der Kennsätze EOF1 und EOF3.
Hat die vorhergehende Datei keinen EOF3-Kennsatz, gilt implizit ACCESS=WRITE, d.h. Schreibzugriff ist erlaubt. Das Band wird abgewiesen, wenn sowohl für die neue Datei als auch für die vorhergehende Datei eine Schutzfrist vereinbart wurde und das Freigabedatum der neuen Datei höher ist. Das Band wird auch abgewiesen, wenn für die neue Datei ACCESS=READ (nur Lesen erlaubt) gilt, für die Datei mit FSEQ=n-1 jedoch ACCESS= WRITE (Lesen und Schreiben erlaubt).
Bandanfangs-Kennsätze aktualisieren
Wird ein Band ab Bandanfang beschrieben (erste Datei einer Dateimenge oder Folgebandverarbeitung) und sind Datei- und Bandeigentümer identisch, wird der VOL1-Kennsatz aktualisiert in den Feldern „Zugriffsart“ und „Austauschstufe“. Letztere bezieht sich darauf, welche Kennsätze entsprechend der DIN 66029-Austauschstufe standardmäßig unterstützt werden.
Enthält das Benutzerprogramm eine OPENV-Routine zum Schreiben von Benutzer-Band-anfangs-Kennsätzen (UVL), verzweigt das DVS in diese Routine. Ist im EXLST-Makroaufruf kein OPENV-Ausgang definiert, werden keine UVL-Kennsätze geschrieben. Im Register 0 stellt das DVS die Adresse eines 80 Byte großen Bereichs zur Verfügung, in dem die Kennsätze nacheinander erstellt werden können. Die OPENV-Routine wird mit dem LBRET-Makroaufruf abgeschlossen.
Dateianfangs-Kennsätze schreiben/aktualisieren
In die HDR-Kennsätze der neuen Datei werden die im Katalogeintrag hinterlegten Dateischutzmerkmale übernommen und die File-Set-Informationen aus dem FILE-Makroaufruf bzw. aus dem Kommando ADD-FILE-LINK: Dateimengenkennzeichen der ersten Datei, Dateiabschnittsnummer (VSEQ/VOL-SEQUENCE-NUMBER) und Dateifolgenummer (FSEQ/FILE-SEQUENCE).
Enthält das Benutzerprogramm eine LABGN-Routine zum Schreiben von Benutzer-Dateianfangs-Kennsätzen (UHL), verzweigt das DVS in diese Routine. Ist im EXLST-Makroaufruf kein LABGN-Ausgang definiert, werden keine UHL-Kennsätze erzeugt. Verzweigt das DVS in die LABGN-Routine, enthält das Register 0 die Adresse eines 80 Byte großen Bereichs, in dem die UHL-Kennsätze nacheinander erstellt werden können. Die LABGN-Routine wird mit dem LBRET-Makroaufruf abgeschlossen.
Tape Mark schreiben
Standardmäßig schreibt das DVS eine Bandabschnittsmarke (Tape Mark) hinter die Dateianfangs-Kennsätze.