Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Datei eröffnen

Mit der Funktion OPEN wird einem Programm die Bearbeitung einer Datei erst ermöglicht. Die Funktion OPEN prüft u.a., ob ein Benutzer die erforderliche Zugriffsberechtigung besitzt, ob eine Datei bereits eröffnet ist und ob die Eröffnungsmodi miteinander verträglich sind. Die Öffnungsmodi und der Zugriff auf die Datei durch mehrere Benutzer entsprechen im Wesentlichen der OPEN-Funktion für die anderen DVS-Zugriffsmethoden (siehe Handbuch „Einführung in das DVS“ [1]).
Für die Datei kann entweder nur Lesezugriff oder sowohl Lese- als auch Schreibzugriff vereinbart werden. Bei Schreibzugriff kann die Datei modifiziert, erweitert oder von Dateianfang an neu beschrieben werden. Sowohl ein Schreiber und/oder mehrere Leser als auch mehrere Schreiber/Leser können auf die Datei gleichzeitig zugreifen. Der Anwender kann festlegen, ob ein Dateibereich bzw. die gesamte Datei sofort bei Definition eines Fensters in das Fenster eingelesen werden soll oder ob eine angegebene Seite erst beim ersten Zugriff auf sie in das Fenster eingelesen werden soll. 

Wichtige Operanden bei Datei-Eröffnung

Operand

Operandenwert

Bedeutung

FCT

*OPEN

Datei eröffnen

LARGE_
FILE


Mit dem Funktionsoperanden LARGE_FILE wird angegeben, ob die zu eröffnende Datei eine „große Datei“ werden soll, deren Dateigröße >= 32 GB werden kann.

*ALLOWED

Die Datei darf eine große Datei werden.

*FORBIDDEN

Die Datei darf keine große Datei werden.

MODE


Mit dem Funktionsoperanden MODE wird angegeben, welche Verarbeitung (Lesen, Schreiben) für die Datei vorgesehen ist (Schreiben bedeutet die Ausführung der DIV-Funktion SAVE).

*INPUT

Die Datei wird als Eingabedatei eröffnet; die Ausführung der Funktion SAVE ist nicht erlaubt.

*INOUT

Die Datei muss existieren; es sind sowohl Lese- als auch Schreiboperationen zulässig.

*OUTIN

Die Datei wird neu erstellt; es sind sowohl Lese- als auch Schreiboperationen zulässig.

SHARUPD


Mit dem Funktionsoperand SHARUPD wird in Abhängigkeit von MODE angegeben, welche Multi-User Betriebsarten erlaubt sein sollen (vgl. hierzu Tabellen im Abschnitt Multi-User-Betrieb):

*NO

Ein Schreiber oder mehrere Leser können die Datei gleichzeitig eröffnet haben.

*WEAK

Ein Schreiber und mehrere Leser können die Datei gleichzeitig eröffnet haben.

*YES

mehrere Schreiber können die Datei gleichzeitig eröffnet haben.


LOCVIEW


Mit dem Operanden LOCVIEW wird festgelegt, zu welchem Zeitpunkt eine Seite in ein Fenster eingelesen wird.

*MAP

Bereits bei der Definition eines Fensters (FCT=*MAP) werden alle Seiten des angegebenen Dateibereiches eingelesen.

*NONE

Erst beim Zugriff auf eine Seite wird die Seite aus der Plattendatei in das Fenster eingelesen

Multi-User-Betrieb

Eine UPAM-Datei kann mit den Zugriffsmethoden UPAM (siehe "UPAM - User Primary Access Method"), FASTPAM (siehe "FASTPAM - Fast Primary Access Method") oder DIV erstellt bzw. bearbeitet werden. FASTPAM und DIV können jedoch nur UPAM-Dateien mit der Eigenschaft BLKCTRL=NO bearbeiten.)

Die Erlaubnis für eine parallele Dateibearbeitung ist von den bei der Eröffnung angegebenen Operandenwerten für SHARUPD, MODE, LOCKENV und LOCVIEW abhängig.

Die möglichen parallelen Eröffnungen werden in der folgenden Tabelle dargestellt:

Verträglichkeits-Matrix bei DIV-OPEN




USER
B

USER
B

USER
B

USER
B

USER
B

USER
B

USER
B

USER
B

USER
B

USER
B


SHARUPD=


*YES

*YES

*YES

*NO

*NO

*NO

*WEAK

*WEAK

*WEAK

*WEAK



OPEN-
Modus

I
N
P
U
T

I
N
O
U
T

O
U
T
I
N

I
N
P
U
T

I
N
O
U
T

O
U
T
I
N

I
N
P
U
T

L
M
A
P

I
N
O
U
T

O
U
T
I
N




U
S
E
R

A


*YES

INPUT
INOUT
OUTIN

X
O
O

O
O
O


X



X
X
X

X



*NO

INPUT
INOUT
OUTIN

X



X



X
X
X

X



*WEAK

INPUT
LMAP
INOUT
OUTIN

X
X

X


X
X

X


X
X
X
X

X
X
O

X
O


Tabelle 1: FASTPAM: erlaubte SHARUPD-/OPEN-Kombinationen

LMAP: INPUT LOCVIEW=MAP (gibt es nur bei DIV)

X: OPEN erlaubt

O: OPEN nur erlaubt,

    • wenn die Eröffner dieselbe blockorientierte Zugriffsmethode benutzen (nur UPAM/FASTPAM oder nur DIV)

    • und denselben Wert für den Operanden LOCKENV benutzen
      (alle LOCKENV=*HOST oder LOCKENV=*XCS)

    • und alle im selben HOST laufen oder im selben XCS-Verbund bei Verwendung von LOCKENV=*XCS

Anmerkungen

  • Leseoperationen mit SHARUPD=*WEAK können eine Datei gleichzeitig mit jeder beliebigen Schreiboperation eröffnet haben.
    Den Leseoperationen mit DIV-SHARUPD=*WEAK, die bei OPEN LOCVIEW=*MAP spezifiziert haben, werden bereits bei MAP alle Fensterseiten aus der Datei in das Fenster eingelesen, wobei von DIV sichergestellt wird, dass während des Einlesens keine Dateiseiten durch einen parallelen SAVE einer Schreiboperation mit DIV-SHARUPD=*WEAK verändert werden können.
    Bei einer UPAM/FASTPAM-Schreiboperation existiert dieser Schutz gegen paralleles Schreiben nicht.
    Aus diesem Grund sind Leseoperationen mit DIV-SHARUPD=*WEAK, für die LOCVIEW=*MAP spezifiziert wurde, nur mit Schreiboperationen mit DIV-SHARUPD= *WEAK verträglich, nicht jedoch mit anderen Schreiboperationen.
    Auch die übrigen oben für den Eintrag 'O' formulierten Bedingungen müssen erfüllt sein (alle Eröffner mit gleichen Werten für den LOCKENV-Operanden und alle Eröffner im gleichen Host oder - wenn in verschiedenen Hosts - mit der Angabe LOCKENV=*XCS).
    Leseoperationen mit DIV-SHARUPD=*WEAK, die bei OPEN LOCVIEW=*NONE spezifiziert haben, besitzen dieselbe Verträglichkeit wie Leseoperationen mit UPAM/FASTPAM-SHARUPD=*WEAK.

  • Eröffner mit DIV-SHARUPD=*YES sind nicht mit Eröffnern mit UPAM/-FASTPAM-SHARUPD=*YES verträglich.

  • Leseoperationen sind immer miteinander verträglich (unabhängig von Zugriffsmethode, SHARUPD-Spezifikation, LOCKENV-Spezifikation und Host).

  • SHARUPD=*YES:
    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).