Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Verarbeitung von Dateimengen

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.

Wird innerhalb einer Dateimenge eine Datei überschrieben oder erweitert, kann auf die Folgedateien in der Dateimenge nicht mehr zugegriffen werden! Der Rest des Bandes ist implizit gelöscht.

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.

Arbeiten Sie mit einer TSET, müssen Sie beim Erstellen der ersten Datei einer Dateimenge FSEQ=1 angeben. Für weitere Dateien der Dateimenge dürfen im VOLUME-Operanden Archivnummern aufgelistet werden, die im TST-Eintrag nicht bekannt sind (siehe folgende Beispiele).

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(
VOLUME=000001, DEVICE-TYPE=xyz)

Ausgabedatei A anlegen

ADD-FILE-LINK LINK-NAME=A,FILE-NAME=A,
SUPPORT=*TAPE(FILE-SEQUENCE=1)

Ausgabedatei A eröffnen

:

Datei A schließen

CREATE-FILE FILE-NAME=B,SUPPORT=*TAPE(
VOLUME=000001,DEVICE-TYPE=xyz)

Ausgabedatei B anlegen

ADD-FILE-LINK LINK-NAME=B,FILE-NAME=B,
SUPPORT=*TAPE(FILE-SEQUENCEC=*NEW)

Ausgabedatei B eröffnen

:

Datei B schließen

CREATE-FILE FILE-NAME=C,SUPPORT=*TAPE(
VOLUME=000001, DEVICE-TYPE=xyz)

Ausgabedatei C anlegen

ADD-FILE-LINK LINK-NAME=C,FILE-NAME=C,
SUPPORT=*TAPE(FILE-SEQUENCE=*NEW)

Ausgabedatei C eröffnen

:

Datei C schließen

Tabelle 27: Dateimenge erweitern (Beispiel 1)

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,
SUPPORT=*TAPE(VOLUME-LIST=*TAPE-SET(
TAPE-SET-NAME=SET1),FILE-SEQUENCE=1)

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,
SUPPORT=*TAPE(VOLUME-LIST=*TAPE-SET(
TAPE-SET-NAME=SET1),FILE-SEQUENCE=*NEW)

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,
SUPPORT=*TAPE(VOLUME-LIST=*TAPE-SET(
TAPE-SET-NAME=SET1),FILE-SEQUENCE=*NEW)

Ausgabedatei C eröffnen

:

Datei C schließen

Tabelle 28: Dateimenge erweitern (Beispiel 2)

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.

Arbeiten Sie mit einer TSET, müssen Sie beim Erstellen der ersten Datei einer Dateimenge FILE-SEQUENCE=1 angeben. Für weitere Dateien der Dateimenge dürfen im Operanden VOLUME Archivnummern aufgelistet werden, die in dem TST-Eintrag nicht bekannt sind (s.u. Beispiel). In jedem Auftrag können mehrere TST-Einträge angelegt werden.
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)