Es wird eine Datei eröffnet und in die Parameterliste eine Kennung eingetragen (ID), die bei folgenden Aufrufen zu benutzen ist, um die OPEN-Zugehörigkeit der Aufrufe zu kennzeichnen.
Wenn für jeden zu einem DIV-OPEN gehörenden DIV-Aufruf dieselbe Parameterliste benutzt wird, ist die Kennung bereits eingetragen und braucht daher nicht beachtet zu werden.
Nach dem Aufruf enthält die Parameterliste die Dateigröße.
Von der Funktion OPEN werden nur die nachfolgend beschriebenen Funktionsoperanden ausgewertet. Mithilfe weiterer Operanden kann jedoch die Parameterliste bereits für andere DIV-Funktionen vorbereitet werden.
Format FCT=*OPEN
Operation | Operanden |
|
|
| |
| |
|
Operandenbeschreibung
ENV
Beeinflusst die Verträglichkeit paralleler Eröffner in Abhängigkeit von ihrem Ablaufort (siehe dazu „Verträglichkeits-Matrix bei DIV-OPEN").
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= *HOST
Die maximal mögliche Parallelität ist auf Eröffner beschränkt, die im gleichen Host ablaufen.
= *XCS
Die Eröffner können in verschiedenen Hosts eines XCS-Rechnerverbunds ablaufen, ohne dass dadurch die Verträglichkeit eingeschränkt wird (z.B. können Schreiboperationen mit SHARUPD=*YES parallel ablaufen).
= adr
Ist die symbolische Adresse eines 1 Byte langen Feldes, das den Wert für ENV enthält.
= (r)
Ist ein Register, das den Wert für ENV enthält.
FCT
Bestimmt die auszuführende DIV-Funktion.
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= *OPEN
Es wird eine Datei eröffnet und in die Parameterliste eine Kennung (ID) eingetragen. Diese Kennung muss bei den nächsten Aufrufen benutzt werden, um die OPEN-Zugehörigkeit der Aufrufe zu kennzeichnen.
Wird für jeden zu einem DIV-OPEN gehörenden DIV-Aufruf dieselbe Parameterliste benutzt, ist die Kennung bereits eingetragen und braucht daher nicht beachtet zu werden.
Nach dem OPEN-Aufruf enthält die Parameterliste die Kennung für den OPEN im Feld DIVPID.
Nach dem OPEN-Aufruf enthält die Parameterliste die Dateigröße im Feld DIVPSIZE
= adr
Ist die symbolische Adresse eines 1 Byte langen Feldes, das den Wert für die Funktion OPEN enthält (Wert DIVPOPEN
, siehe Layout der der Parameterliste, "Funktion CLOSE").
= (r)
Ist ein Register, das den Wert für die Funktion OPEN enthält.
FILE
Gibt den Dateinamen an.
Falls für den Operanden LINK ein Wert angegeben ist, wird eine FILE-Angabe nicht ausgewertet.
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= 'name'
Ist der in Hochkommata eingeschlossene Dateiname.
Länge des Dateinamens: 1-54 (mit catid) Zeichen.
= adr
Ist die symbolische Adresse eines 54 Byte langen Feldes, das den Dateinamen enthält.
= (r)
Ist ein Register, das die Adresse eines 54 Byte langen Feldes mit dem Dateinamen enthält.
LARGE_FILE
Der Operand LARGE_FILE bestimmt, ob die Dateigröße bei der Datenverarbeitung 32 GB überschreiten darf oder nicht (siehe "Dateien größer 32 GB"). Der Operand wird in die TFT (Task File Table) eingetragen und erst beim Öffnen der Datei mit OPEN ausgewertet.
Voreinstellung: LARGE_FILE = *FORBIDDEN
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= FORBIDDEN
Der Standardwert bedeutet, dass die Angaben im TU-FCB verwendet werden.
= ALLOWED
Die Datei wird als „große Datei“ angelegt: die Dateigröße kann 32 GB überschreiten.
= adr
Ist die Adresse eines 8 Byte langen Feldes, das den Wert für LARGE_FILE enthält.
= (r)
Ist ein Register, das die Adresse eines 8 Byte langen Feldes mit dem Wert für LARGE_FILE enthält.
LINK
Spezifiziert den Dateikettungsnamen (LINK-Name) der Datei.
Über Dateikettungsname/TFT werden Programm und Datei miteinander verknüpft (zu Dateikettungsname/TFT siehe Handbuch „Einführung in das DVS“ [1]).
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= 'name'
Ist der in Hochkommata eingeschlossene Dateikettungsname.
„name“ darf bis zu acht Zeichen lang sein. Soll der Dateikettungsname über die Kommandoschnittstelle ansprechbar sein, muss er dem Datentyp <structured_name 1..8> entsprechen (siehe Handbuch „Kommandos“ [3]).
= adr
Ist die Adresse eines 8 Byte langen Feldes, das den Dateikettungsnamen enthält.
= (r)
Ist ein Register, das die Adresse eines 8 Byte langen Feldes mit dem Dateikettungsnamen enthält.
LOCVIEW
Mit dem Operand LOCVIEW wird spezifiziert, ob Seiten zum MAP-Zeitpunkt in ein Fenster eingelesen werden oder erst nach einem Zugriff auf eine Seite.
Voreinstellung: LOCVIEW = *NONE
Der Operand LOCVIEW ist nur für Fenster wirksam, die mit DISPOS=*OBJECT angelegt sind.
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= *MAP
Bei der Definition eines Fensters (Funktion FCT=*MAP) werden alle Dateiseiten bereits zum MAP-Zeitpunkt in das Fenster eingelesen. Bei einem SHARUPD=*WEAK-Leser verhindert DIV, dass ein paralleler SHARUPD=*WEAK-Schreiber gleichzeitig mit SAVE die Datei verändern kann.
= *NONE
Eine Seite wird beim ersten Zugriff auf sie aus der Datei in das Fenster gelesen (Voreinstellung).
= adr
Ist die symbolische Adresse eines 1 Byte langen Feldes, das einen Wert für LOCVIEW enthält (DIVPLNON
| DIVPLMAP
; siehe Layout der Parameterliste, "Funktion CLOSE").
= (r)
Ist ein Register, das einen Wert für LOCVIEW enthält.
MACID
Legt jeweils das zweite bis einschließlich vierte Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung generiert werden.
= IVP
Voreinstellung: MACID=IVP
= macid
„macid“ ist eine drei Zeichen lange Zeichenfolge, die jeweils das zweite bis vierte Zeichen der generierten Feldnamen und Equates festlegt.
MF
Die Formen des MF-Operanden sind detailliert im Anhang ("Typen von Makroaufrufen") beschrieben.
MODE
Bestimmt den OPEN-Modus (siehe Abschnitt „Multi-User-Betrieb"): Der OPEN-Modus kann nicht durch ein ADD-FILE-LINK-Kommando verändert werden (Returncode DIVPICFS (INCOMPATIBLE_FILE_SPEC)).
Voreinstellung: MODE=*INPUT
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= *INPUT
Die Datei kann nur gelesen werden. Die Funktion SAVE ist daher bei diesem OPEN-Modus nicht möglich.
Unabhängig vom SHARUPD-Modus sind parallele INPUT-Eröffnungen möglich, auch von der Zugriffsmethode UPAM.
Die Datei muss existieren, d.h. sie muss schon einmal mit OUTIN eröffnet worden sein.
= *INOUT
Die Datei kann modifiziert werden, d.h. in die Datei kann mit der DIV-Funktion SAVE geschrieben werden.
Die Datei muss existieren, d.h. sie muss schon einmal mit OUTIN eröffnet worden sein.
Parallele Eröffnungen sind möglich in Abhängigkeit vom SHARUPD-Modus.
= *OUTIN
Die Datei wird neu erstellt, d.h. nach OPEN ist die Datei „leer“. Danach kann in die Datei geschrieben werden. Wie bei MODE=*INOUT kann mit der SAVE-Funktion in die Datei geschrieben werden.
Parallele Eröffnungen sind möglich in Abhängigkeit vom SHARUPD-Modus.
Bei einem Multi-User-Betrieb (SHARUPD=*WEAK|*YES) muss ein MODE=*OUTIN-Eröffner immer der erste Eröffner sein. Sonst wird der OPEN zurückgewiesen.
= adr
Ist die symbolische Adresse eines 1 Byte langen Feldes, das einen Wert für MODE enthält (DIVPINPT
| DIVPINOT
| DIVPOUTI
; siehe Layout der Parameterliste, "Funktion CLOSE").
= (r)
Ist ein Register, das einen Wert für MODE enthält.
PARAM
Bezeichnet die Adresse der Operandenliste. Der Operand wird nur in Verbindung mit MF=E ausgewertet (siehe auch "Typen von Makroaufrufen").
PREFIX
Legt das jeweils erste Zeichen der Feldnamen und Equates fest, die bei der Makroauflösung generiert werden.
= D
Voreinstellung: PREFIX=D
= pre
„pre“ ist ein ein Zeichen langes Präfix, mit dem die generierten Feldnamen und Equates beginnen sollen.
SHARUPD
Steuert den parallelen Zugriff mehrerer Anwender (siehe auch Handbuch „Einführung in das DVS“ [1], Abschnitt „Multi-User-Betrieb an einem Rechner“).
Voreinstellung: SHARUPD = *NO
Bei der Form MF=L ist nur die direkte Angabe erlaubt.
= *NO
Mehrere parallele Leser (MODE=*INPUT) oder ein Schreiber (MODE=*INOUT oder *OUTIN) sind erlaubt.
= *WEAK
Mehrere parallele Leser (MODE=*INPUT) und ein Schreiber (MODE=*INOUT oder *OUTIN) sind erlaubt. Der Inhalt der im Fenster eines Lesers (MODE=*INPUT) enthaltenen Daten ist also abhängig von Änderungen durch einen parallelen Schreiber (MODE=*INOUT | *OUTIN) und vom Einlesezeitpunkt einer Seite in das Fenster. Leser und Schreiber müssen sich daher koordinieren.
Die Angabe von LOCVIEW=*MAP bewirkt, dass die Konsistenz der Daten in einem Fenster auch bei fehlender Koordinierung der Tasks nicht durch einen parallelen Schreiber zerstört wird.
= *YES
Mehrere Schreiber dürfen eine Datei eröffnen.
Hinweise
Die Konsistenz der Daten in der Datei wird in diesem Fall von DIV nicht sichergestellt, sondern muss vielmehr vom Anwender selbst gewährleistet werden, z.B. durch Serialisierung von SAVE-Aufrufen durch den Anwender.
Bei jedem Aufruf des Allocators wird die Dateigröße überprüft.
Wenn bei dieser Überprüfung eine Dateigröße >= 32 GB ermittelt wird und im zugehörigen FCB das Attribut LARGE_FILE=*FORBIDDEN bzw. in der TFT das Attribut EXCEED-32GB=*FORBIDDEN gesetzt ist, wird die Verarbeitung abgebrochen. DIV liefert in diesem Fall den Returncode
X'00400030'
in seiner eigenen Parameterliste DIV(I).
Durch ein ADD-FILE-LINK-Kommando kann der SHARUPD-Modus verändert werden.
= adr
Ist die symbolische Adresse eines 1 Byte langen Feldes, das einen Wert für SHARUPD enthält (Wert DIVPSNO
| DIVPSWEA
| DIVPSYES
; siehe Layout der Parameterliste, "Funktion CLOSE").
= (r)
Ist ein Register, das einen Wert für SHARUPD enthält.
Hinweis
Die Parameter DIVPID und DIVPSIZE sind Returnparameter, auf die nur direkt über die Parameterliste zugegriffen werden kann. Weitere Informationen hierzu siehe Abschnitt „Parameterliste“, "DIV - Dateizugriff über virtuellen Adressraum".