In der folgenden Tabelle sind die OPEN-Modi zusammengestellt.
Open-Modus | Kurzbeschreibung |
---|---|
INPUT | Sequenzielles Lesen in Richtung Dateiende; die Datei muss existieren |
OUTPUT | Neue Datei sequenziell erstellen oder eine vorhandene Datei überschreiben |
EXTEND | Datei erweitern |
UPDATE | Nur für Plattendateien im Ortungsbetrieb: Sätze aktualisieren; der zu aktualisierendeSatz muss mit GET bereitgestellt werden, bei der Verarbeitung darf die Satzlänge nicht verändert werden, der aktualisierte Satz wird mit PUTX zurückgeschrieben. |
REVERSE | Sequenzielles Lesen in Richtung Dateianfang; die Datei muss existieren; Banddateien, die sich über mehrere Datenträger erstrecken, können nur dateiabschnittsweise mithilfe des Operanden VSEQ (Makro FILE) bzw. des Operanden START-POSITION (Kommando ADD-FILE-LINK) gelesen werden; kein automatischer Bandwechsel. |
Die folgende Tabelle gibt Auskunft darüber, welche Aktionsmakros in Verbindung mit den o.g. Open-Modi zulässig sind.
Aktions-Makro | OPEN-Typ | ||||
---|---|---|---|---|---|
INPUT | OUTPUT | EXTEND | UPDATE | REVERSE | |
GET | x | x | x | ||
PUT | x | x | |||
PUTX | x | ||||
RELSE | x | x | x | x | x |
SETL | x | x | x | x | x |
Bei der Bearbeitung von SAM-NODE-FILES muss eine Anwendung beim Öffnen der Datei im Dateisteuerblock (FCB) den Indikator SAM_NODE_FILE_ENABLE setzen um anzuzeigen, dass sie die Besonderheiten bei der Verarbeitung von SAM-Node-Files kennt (siehe Hinweis im Abschnitt „Wiedergewinnungsadresse").
Primär-/Sekundärzuweisung bei Plattendateien
Wird eine SAM-Datei erstellt oder erweitert (OPEN OUTPUT/EXTEND), müssen Primär- und Sekundärzuweisung mindestens gleich der Blockgröße sein.
Soll im Übertragungsbetrieb eine Datei erstellt oder erweitert werden (OPEN OUTPUT/EXTEND), die mit RECFORM=F oder RECFORM=V definiert wurde und pro Datenblock mehr als einen Satz enthält, so gilt:
Die Primärzuweisung muss mindestens das Doppelte der Datenblocklänge betragen (Primärzuweisung >= 2 * BLKSIZE). Andernfalls geht die Steuerung an den EXLST-Ausgang NOSPACE (Speicherplatzzuweisung nicht ausreichend).
Die Sekundärzuweisung durch SAM wird bereits beim ersten Satz des letzten Blockes eingeleitet, der noch in den zugewiesenen Bereich geschrieben werden kann. Kann die Sekundärzuweisung nicht durchgeführt werden, dann geht die Steuerung an den EXLST-Ausgang NOSPACE (sofern er im Programm vorgesehen ist). Dies gibt dem Benutzer die Möglichkeit, die restlichen Sätze des letzten Blockes noch zu schreiben.
Auswirkungen des LABEL-Operanden bei Banddateien
Die folgende Tabelle zeigt die Auswirkungen des Makro- bzw. Kommando-Operanden beim Öffnen einer SAM-Datei:
Makro FILE: | Kommando ADD-FILE-LINK: | Auswirkung |
---|---|---|
NO / NSTD | *NO / *NON-STD | Angaben im BUFOFF-Operanden führen zum OPEN-Fehler bei CODE=ISO/OWN und BLK-SIZE=STD |
(STD,0) | *STD(DIN-REVISION-NUMBER=0) | Angaben im BUFOFF-Operanden und CODE=ISO/OWN führen zum OPEN-Fehler |
(STD,1) | *STD(DIN-REVISION-NUMBER=1) | Angaben im BUFOFF-Operanden und die Angabe von CODE=ISO/OWN führen zum OPEN-Fehler; |
(STD,2) | *STD(DIN-REVISION-NUMBER=2) | Standardblöcke werden in Nichtstandardblöcke(BLKCTRL=DATA/NO) und V-Sätze in D-Sätze umgewandelt; RECSIZE > 9999 führt zusammen mit RECFORM=V zum OPEN-Fehler |
(STD,3) | *STD(DIN-REVISION-NUMBER=3) | Standardblöcke werden in Nichtstandardblöcke(BLKCTRL=DATA/NO) und V-Sätze in D-Sätze umgewandelt; RECSIZE > 9999 führt zusammen mit RECFORM=V zum OPEN-Fehler |
STD oder keine Angabe | *STD | Angaben im BUFOFF-Operanden führen zum OPEN-Fehler. |
Aus der Kombination der Angaben in den Operanden CODE, RECSIZE und RECFORM (Makro FILE) bzw. CODE, RECORD-SIZE und RECORD-FORMAT (Kommando ADD-FILE-LINK) ergeben sich folgende, implizite Werte für LABEL, wenn die zu erstellende Datei die Erste auf dem Band ist:
CODE | Blockformat | REFORM | LABEL-Wert (implizit) |
---|---|---|---|
EBCDIC | PAMKEY | - | (STD,1) |
EBCDIC | DATA/NO | U | (STD,2) |
EBCDIC | DATA/NO | F/V | (STD,3), V-Sätze --> D-Sätze |
ISO/OWN | PAMKEY | - | OPEN-Fehler |
ISO/OWN | DATA/NO | U | (STD,2) |
ISO/OWN | DATA/NO | F | (STD,3) |
ISO/OWN | DATA/NO | V | V-Sätze --> D-Sätze (STD,3) |
Die Kombination von BUFOFF und RECFORM=U oder BLKCTRL=DATA im Makro FILE ist nicht zulässig. Ebenso ist die Kombination der Operanden RECORD-FORMAT=*UNDEFINED und BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK nicht zulässig!
Bei LABEL=(STD,1) bzw. LABEL-TYPE=*STD(DIN-REVISION=1) ist es nicht möglich, eine Datei mit CODE=EBCDIC, mit Nicht-Standardblöcken und D-Sätzen zu schreiben, sie kann jedoch gelesen werden.
Es kommt zum OPEN-Fehler, wenn ein im LABEL-Operanden geforderte Standardkennsatzstufe nicht mit der im VOL1-Kennsatz enthaltenen übereinstimmt.
Wurde LABEL=STD bzw. LABEL-TYPE=*STD angegeben oder keine Angabe gemacht, wird die Kennsatzstufe entsprechend der o.g. Tabelle 66 ermittelt. Liegt die so ermittelte Kennsatzstufe über der im VOL1-Kennsatz, gilt die im VOL1-Kennsatz definierte Kennsatzstufe. Liegt sie unter der Kennsatzstufe im VOL1-Kennsatz oder gilt aus dem VOL1-Kennsatz LABEL=(STD,0) und gilt CODE=ISO/OWN, kommt es zum OPEN-Fehler.