Dateimenge überschreiben
Ein Band kann nur dann überschrieben werden, wenn das Freigabedatum erreicht und der Schreibzugriff erlaubt ist.
Soll eine Datei überschrieben werden, positioniert das DVS entsprechend der Dateifolgenummer. Die Dateischutzmerkmale wie Kennwörter usw. werden nur bei katalogisierten Dateien berücksichtigt.
Ist die in den Makros FILE und FCB bzw. im Kommando ADD-FILE-LINK genannte Datei katalogisiert, muss die Dateifolgenummer im Operanden FSEQ bzw. FILE-SEQUENCE mit der des Katalogeintrags übereinstimmen. Ist die Datei noch nicht katalogisiert, positioniert das DVS entsprechend der FSEQ- bzw. FILE-SEQUENCE-Angabe; die Datei kann dann ohne Überprüfung des Dateinamens überschrieben werden.
Ist die Datei nicht katalogisiert und ist die FSEQ- bzw. FILE-SEQUENCE-Angabe um eins größer als die höchste Dateifolgenummer der Dateimenge, wird die Dateimenge um eine Datei erweitert.
Dateimenge erweitern
Soll eine Dateimenge um eine Datei erweitert werden, muss entweder im Makro FILE oder FCB der Operand FSEQ=NEW bzw. im Kommando ADD-FILE-LINK der Operand FILE-SEQUENCE=*NEW angegeben werden oder eine Zahl, die um 1 höher ist als die letzte zur Dateimenge gehörende Dateifolgenummer. Die Datei darf noch nicht katalogisiert sein.
Bei FSEQ=NEW bzw. FILE-SEQUENCE=*NEW positioniert das DVS auf das Ende der Dateimenge. Liegt dieses in der im Makro FILE bzw. im Kommando ADD-FILE-LINK angegebenen Bandmenge, wird die neue Datei mit einer Dateifolgenummer, die um 1 größer ist als die der bisher letzten Datei, auf das betreffende Band geschrieben.
Ist in FILE-/FCB-Makroaufruf SECLEV=OPR angegeben, muss der Schutzgrad der Datei kleiner oder gleich dem der vorausgehenden Datei sein. Der gleiche Sachverhalt trifft zu, wenn im Kommando ADD-FILE-LINK der Operand OVERWRITE-PROTECTION=*YES angegeben wurde.
Erweitern einer Dateimenge um mehrere Dateien (Programmschnittstelle)
Wenn Sie sicher sind, dass alle Dateien einer Dateimenge auf demselben Band Platz finden, können Sie die folgende Verarbeitungsfolge ausführen:
FILE AAA,VOLUME=000001,FSEQ=1,DEVICE=TAPE,LINK=OUTP1 OPEN OUT1,OUTPUT . . CLOSE OUT1,LEAVE FILE BBB,VOLUME=000001,FSEQ=NEW,DEVICE=TAPE,LINK=OUTP2 OPEN OUT2,OUTPUT . . CLOSE OUT2,LEAVE FILE CCC,VOLUME=000001,FSEQ=NEW,DEVICE=TAPE,LINK=OUTP3 OPEN OUT3,OUTPUT . . CLOSE OUT3,LEAVE . . OUT1 FCB LINK=OUTP1... OUT2 FCB LINK=OUTP2... OUT3 FCB LINK=OUTP3...
Ist der Umfang einer Datei der Dateimenge (z.B. der ersten Datei) nicht abschätzbar, könnten Sie die Bandmengen in den FILE-Makroaufrufen für die Dateien AAA, BBB und CCC wie folgt erweitern:
VOLUME=(000001,000002)
Setzt sich jetzt die Datei AAA auf dem zweiten Band fort, fordert das DVS beim Erstellen der Dateien BBB und CCC jeweils erneut das erste Band an, um das Ende der Dateimenge festzustellen. Ist die Datei AAA so groß, dass Datei BBB auf dem zweiten Band keinen Platz mehr findet, fordert das DVS ein weiteres freies Band an. Anschließend führt jedoch die OPEN-Verarbeitung für die Datei CCC zum Fehler, weil die Dateimenge auf einem Band endet, das im FILE-Makroaufruf nicht angegeben wurde und daher nicht Teil der Bandmenge ist.
Sie können jedoch über den TSET-Operanden des FILE-Makros Datei- und Bandmenge temporär miteinander verknüpfen. Im TSET-Operanden geben Sie den Namen eines „Tape Sets“ an, das ist eine temporäre Datenträgerliste, die in der TST (Tape Set Table) geführt wird. Ein TST-Eintrag ist eine Tabelle, in die die Archivnummern der Bänder eingetragen werden, die – über einen TSET-Namen verknüpft – für einen Auftrag angefordert wurden.
Im folgenden Beispiel wird wieder die Dateimenge AAA, BBB und CCC erzeugt.
START LDBASE 10 USING *,10 . FILE AAA,LINK=OUTP1,VOLUME=000001,DEVICE=TAPE,FSEQ=1,TSET=SET1 OPEN OUT1,OUTPUT . . CLOSE OUT1,LEAVE FILE BBB,LINK=OUTP2,DEVICE=TAPE,FSEQ=NEW,TSET=SET1,VOLUME=000002 OPEN OUT2,OUTPUT . . CLOSE OUT2,LEAVE FILE CCC,LINK=OUTP2,DEVICE=TAPE,FSEQ=NEW,TSET=SET1 OPEN OUT2,OUTPUT . . CLOSE OUT2,LEAVE . . OUT1 FCB LINK=OUTP1... OUT2 FCB LINK=OUTP2... OUT3 FCB LINK=OUTP3...
Alle Dateien beziehen sich auf den gleichen TST-Eintrag, die Verknüpfung von Datei und TST-Eintrag erfolgt über die TFT (Task File Table), die mit dem LINK-Operanden für jede Datei angelegt wird. Das DVS organisiert automatisch die Anordnung der Dateimenge auf der gemeinsamen Bandmenge.
Der TST-Eintrag wird aufgebaut, wenn im FILE-Makroaufruf der LINK-Operand angegeben ist und gleichzeitig im TSET-Operanden ein neuer TST-Name angegeben wird. Bei einer Wiederholung der TSET-Angabe in weiteren FILE-Makroaufrufen für andere Dateien wird kein neuer TST-Eintrag angelegt. Der entsprechende TFT-Eintrag erhält lediglich einen Zeiger auf den TST-Eintrag, und im TST-Eintrag wird ein Dateizähler hochgezählt.
Bei Bandwechsel aktualisiert das DVS einen Zeiger im TST-Eintrag, der auf die Archivnummer des Bandes verweist, das das (bisherige) Ende der Dateimenge enthält. Die Bandmenge muss also nicht jedes Mal nach dem Ende der Dateimenge durchsucht werden, wenn eine neue Datei hinzugefügt werden soll, und unnötiger Bandwechsel wird vermieden.
In jedem Auftrag können mehrere TST-Einträge angelegt werden.
Beispiel 1
Ein bestimmtes Band als Erstes Band einer Bandmenge anfordern:
FILE AAA,LINK=OUTP,DEVICE=TAPE,VOLUME=000001,FSEQ=1,TSET=T
Beispiel 2
Ein beliebiges freies Band anfordern:
FILE AAA,LINK=OUTP,DEVICE=TAPE,FSEQ=1,TSET=T[,VOLUME=PRIVATE]
Beispiel 3
Eine Dateimenge wurde folgendermaßen eingerichtet:
FILE A,LINK=A,DEVICE=TAPE,VOLUME=(VOL1,VOL2),FSEQ=1,TSET=SET1
Die Dateimenge soll erweitert werden:
FILE C,LINK=C,DEVICE=TAPE,FSEQ=NEW,TSET=SET1,VOL=VOL3
Erweitern einer Dateimenge um mehrere Dateien (Kommandoschnittstelle)
Wenn Sie sicher sind, dass alle Dateien einer Dateimenge auf demselben Band Platz finden, können Sie die folgende kommando- und programminterne Verarbeitungsfolge ausführen:
Kommando | Programm |
---|---|
CREATE-FILE FILE-NAME=A,SUPPORT=*TAPE( | Ausgabedatei A anlegen |
ADD-FILE-LINK LINK-NAME=A,FILE-NAME=A, | Ausgabedatei A eröffnen
Datei A schließen |
CREATE-FILE FILE-NAME=B,SUPPORT=*TAPE( | Ausgabedatei B anlegen |
ADD-FILE-LINK LINK-NAME=B,FILE-NAME=B, | Ausgabedatei B eröffnen
Datei B schließen |
CREATE-FILE FILE-NAME=C,SUPPORT=*TAPE( | Ausgabedatei C anlegen |
ADD-FILE-LINK LINK-NAME=C,FILE-NAME=C, | Ausgabedatei C eröffnen
Datei C schließen |
Ist der Umfang einer Datei der Dateimenge nicht abschätzbar, könnten Sie die Bandmengen in den CREATE-FILE-Kommandos für die Dateien A, B und C wie folgt erweitern:
VOLUME=(000001,000002)
Setzt sich jetzt die Datei A auf dem zweiten Band fort, fordert das DVS beim Erstellen der Dateien B und C jeweils erneut das erste Band an, um das Ende der Dateimenge festzustellen. Ist die Datei A so groß, dass Datei B auf dem zweiten Band keinen Platz mehr findet, fordert das DVS ein weiteres freies Band an. Anschließend führt jedoch die OPEN-Verarbeitung für die Datei C zum Fehler, weil die Dateimenge auf einem Band endet, das im Kommando CREATE-FILE nicht angegeben wurde und daher nicht Teil der Bandmenge ist.
Sie können über den Operanden TAPE-SET-NAME im Kommando ADD-FILE-LINK Datei- und Bandmenge temporär miteinander verknüpfen. Im Operanden TAPE-SET-NAME geben Sie den Namen eines „Tape Sets“ an, das ist eine temporäre Datenträgerliste, die in der TST (Tape Set Table) geführt wird. Die TST ist eine Tabelle, in die die Archivnummern der Bänder eingetragen werden, die – über einen TSET-Namen verknüpft – für einen Auftrag angefordert wurden.
Im folgenden Beispiel wird wieder die Dateimenge A, B und C erzeugt.
Kommando | Programm |
---|---|
CREATE-TAPE-SET TAPE-SET-NAME=SET1, VOLUME=000001 | Tapeset SET1 einrichten |
CREATE-FILE FILE-NAME=A,SUPPORT=*TAPE(DEVICE-TYPE=xyz) | Ausgabedatei A anlegen |
ADD-FILE-LINK LINK-NAME=A,FILE-NAME=A, | Ausgabedatei A eröffnen
Datei A schließen |
CREATE-FILE FILE-NAME=B,SUPPORT=*TAPE(DEVICE-TYPE=xyz) | Ausgabedatei B einrichten |
ADD-FILE-LINK LINK-NAME=B,FILE-NAME=B, | Ausgabedatei B eröffnen
Datei B schließen |
CREATE-FILE FILE-NAME=C,SUPPORT=*TAPE(DEVICE-TYPE=xyz) | Ausgabedatei C einrichten |
ADD-FILE-LINK LINK-NAME=C,FILE-NAME=A, | Ausgabedatei C eröffnen
Datei C schließen |
Beim Schließen der Datei muss das Band jeweils auf Dateiende positioniert werden.
Alle Dateien beziehen sich auf den gleichen TST-Eintrag; die Verknüpfung von Datei und TST-Eintrag erfolgt über die TFT (Task File Table), die mit dem Operanden LINK-NAME für jede Datei angelegt wird. Das DVS organisiert automatisch die Anordnung der Dateimenge auf der gemeinsamen Bandmenge.
Der TST-Eintrag wird mit den Kommandos CREATE-TAPE-SET / EXTEND-TAPE-SET aufgebaut. Bei einer Wiederholung der Angabe TAPE-SET-NAME in ADD-FILE-LINK-Kommandos wird kein neuer TST-Eintrag angelegt. Der entsprechende TFT-Eintrag erhält lediglich einen Zeiger auf den TST-Eintrag, und in dem TST-Eintrag wird ein Dateizähler hochgezählt.
Bei Bandwechsel aktualisiert das DVS einen Zeiger in den TST-Eintrag, der auf die Archivnummer des Bandes verweist, das das (bisherige) Ende der Dateimenge enthält. Die Bandmenge muss also nicht jedes Mal nach dem Ende der Dateimenge durchsucht werden, wenn eine neue Datei hinzugefügt werden soll, und unnötiger Bandwechsel wird vermieden.
Beispiel: Dateimenge erzeugen
Mit den folgenden Kommandos fordern Sie ein bestimmtes Band als Erstes Band der Bandmenge an:
/CREATE-TAPE-SET TAPE-SET-NAME=T,VOLUME=000001 /CREATE-FILE FILE-NAME=A,SUPPORT=TAPE(DEVICE-TYPE=xyz) /ADD-FILE-LINK LINK-NAME=A,FILE-NAME=A,SUPPORT=*TAPE(VOLUME-LIST= *TAPE-SET(TAPE-SET-NAME=T),FILE-SEQUENCE=1
Mit dem folgenden Kommando fordern Sie ein beliebiges freies Band an:
/CREATE-FILE FILE-NAME=A,SUPPORT=TAPE(VOLUME=*ANY,DEVICE-TYPE=xyz)
Die Dateimenge kann erweitert werden mit den folgenden Kommandos:
/CREATE-FILE FILE-NAME=B,SUPPORT=TAPE(DEVICE-TYPE=xyz) /ADD-FILE-LINK LINK-NAME=B,FILE-NAME=B,SUPPORT=*TAPE(VOLUME-LIST= *TAPE-SET(TAPE-SET-NAME=T),FILE-SEQUENCE=*NEW
Beispiel: Dateimenge erweitern
Eine Dateimenge wurde wie folgt eingerichtet:
/CREATE-TAPE-SET TAPE-SET-NAME=SET1, VOLUME=(000001,000002) /CREATE-FILE FILE-NAME=A,SUPPORT=TAPE(DEVICE-TYPE=xyz) /ADD-FILE-LINK LINK-NAME=A,FILE-NAME=A,SUPPORT=*TAPE(VOLUME-LIST=TAPE-SET (TAPE-SET-NAME=SET1),FILE-SEQUENCE=1)
Die Dateimenge soll erweitert werden:
/CREATE-TAPE-SET TAPE-SET-NAME=SET2, VOLUME=000003 /CREATE-FILE FILE-NAME=C,SUPPORT=TAPE(DEVICE-TYPE=xyz) /ADD-FILE-LINK LINK-NAME=C,FILE-NAME=C,SUPPORT=*TAPE(VOLUME-LIST=TAPE-SET (TAPE-SET-NAME=SET2),FILE-SEQUENCE=*NEW)