Betrieb

#### Search Results

Search

# Betrieb

In diesem Kapitel finden Sie Informationen zu verschiedenen Aspekten, die beim Betrieb von Natural for VSAM relevant sind:

- Aufrufen von Natural for VSAM

- OPEN/CLOSE-Verarbeitung

- Natural-Dateizugriff

- Puffer für die Speicherverwaltung

- Anwendungsprogrammierschnittstellen

## Aufrufen von Natural for VSAM

Wenn die Natural-Schnittstelle zu VSAM verfügbar ist, wird sie initialisiert, wenn Sie eine Natural-Sitzung starten. Sie kann ausgeschaltet werden, indem Sie den Parameter `VSIZE` auf `0` setzen (siehe auch die entsprechende Beschreibung im Abschnitt Natural für VSAM anpassen).

## OPEN/CLOSE-Verarbeitung

In diesem Abschnitt sind mit VSAM-Dateien sowohl VSAM-Benutzerdateien als auch VSAM-Natural-Systemdateien gemeint.

Die Datenbank-`OPEN`/`CLOSE`-Verarbeitung wird durch den Natural-Parameter `OPRB` gesteuert (siehe Natural-Parameter-Referenz-Dokumentation).

Anstelle des `OPRB`-Parameters können Sie auch das Makro `NTOPRB` des Natural-Parametermoduls verwenden.

Auf einen `OPEN`/`CLOSE`-Fehler muss die Fehlermeldung NAT3539 folgen. In einer TP-Umgebung kann die Fehlermeldung NAT3516 auch während einer aktiven Natural-Sitzung auftreten, wenn die Datei geschlossen wird.

Anmerkung
Für die dynamische `OPEN`-Behandlung innerhalb einer Sitzung können Sie die Anwendungsprogrammierschnittstelle USR2008N verwenden.

### OPRB-Parameter für VSAM-Datenbanken

Der Parameter `OPRB` ist unter CICS oder Com-plete nicht anwendbar, da in diesen Umgebungen der TP-Monitor die `OPEN`/`CLOSE`-Verarbeitung von VSAM-Dateien steuert.

Standardmäßig, d.h. ohne Angabe des `OPRB`-Parameters, werden VSAM-Dateien für die Ein-/Ausgabe geöffnet, so dass sie gelesen und/oder aktualisiert werden können.

Wenn Sie möchten, dass alle verwendeten VSAM-Dateien nur für die Eingabe geöffnet werden, geben Sie den `OPRB`-Parameter mit der folgenden Syntax an:

`OPRB = (.ALL)`

Mit dieser Syntax geben Sie eine `OPEN`-Anforderung für alle zu adressierenden VSAM-Dateien an. Alle Dateien werden nur zur Eingabe geöffnet. Einzelne Dateien werden jedoch nur geöffnet, wenn sie tatsächlich von einem bestimmten Programm angesprochen werden.

Anmerkung
Wenn Sie wollen, dass alle VSAM-Systemdateien zur Eingabe geöffnet werden, müssen Sie den Natural-Profilparameter `ROSY=ON` setzen (siehe Natural-Parameter-Referenz-Dokumentation).

Wenn Sie VSAM-Dateien zur Eingabe (`I`) oder Ausgabe (`O`) pro DBID öffnen wollen, verwenden Sie die folgende Syntax:

`OPRB = (DBID =` nnn, |  | `MODE =` |  | `I` |  | `[,` string `; ...]` |  | `[, ...]` | `)`
`O`
| string `; ...`

Mit `MODE` geben Sie eine globale Standardbehandlung für `DBID nnn` an.

Wenn Sie keine Standardbehandlung pro DBID angeben wollen oder wenn Sie für einige VSAM-Dateien eine andere Ein-/Ausgabebehandlung als die Standardbehandlung wünschen, können Sie den String-Parameter auf geeignete Weise angeben.

Die DBID muss mit dem `NTDB`-Makro als VSAM DBID definiert werden, und `string` ist vom Betriebssystem abhängig (siehe unten).

Wichtig
Wenn mehrere Strings definiert werden sollen, muss ein Semikolon (`;`) als Trennzeichen angegeben werden. Wenn nicht, muss das Semikolon weggelassen werden.

#### Unter z/OS

Unter z/OS geben Sie den String `string` wie folgt an:

|  |  |  |  |  |  | `,` |  |  |  | `,` |  |  | `[,R]`
`FNR =` nnn | `K` |  |
| `E` | `O` | `B`
`DD =` dd-name `, TYP =` | `R` | `I` | `A`
| `P` |  |

Die angegebenen VSAM-Dateien müssen als DDMs definiert sein. Anstatt jedoch die Dateinummer des Natural-DDM anzugeben, welches der zu adressierenden VSAM-Datei entspricht, können der dd-name und der Typ (`KSDS`, `ESDS`, `RRDS`, oder `PATH`) dieser Datei direkt angegeben werden, so dass Sie nicht erst in das DDM schauen müssen.

Einzelne Dateien können zur Ausgabe (Option `O`), zur Eingabe (Option `I`), vor dem eigentlichen Zugriff (Option `B`) oder beim ersten Zugriff (Option `A`) geöffnet werden, als wiederverwendbare Datei (Option `R`) geöffnet werden.

Aus Leistungsgründen ist es manchmal wünschenswert, den VSAM-Parameter `STRNO` (Stringnummer) zu ändern, um mehr Index- und Datenpuffer bereitzustellen. Standardmäßig verwendet Natural die Stringnummer 3 für die Eingabeverarbeitung und Stringnummer 5 für die Ausgabeverarbeitung. Da `STRNO` in der JCL angegeben wird, können beide Werte mit dem Parameter `AMP` in der entsprechenden DD-Karte geändert werden.

#### Beispiel für eine OPRB-Angabe

Das folgende `OPRB`-Beispiel öffnet die angegebenen Dateien zur Eingabe, während nicht angegebene Dateien standardmäßig zur Ausgabe geöffnet werden:

`OPRB=(DBID=254,MODE=I)`

oder

`OPRB=(DBID=254,FNR=21,I,A;FNR=22,I,A)`

Die VSAM-Datenbankkennung ((DBID) und Dateinummer (FNR), wie im DDM angegeben, sind erforderlich. Option `I` gibt an, dass der entsprechende FNR für die Eingabe geöffnet wird. Option `A` gibt an, dass die entsprechende FNR nur geöffnet wird, wenn die Datei von einem Natural-Programm aufgerufen wird.

Das entsprechende `NTOPRB`-Makro-Beispiel lautet:

`NTOPRB 254,'MODE=I'`

oder

`NTOPRB 254,'FNR=21,I,A';'FNR=22,I,A'`

## Natural-Dateizugriff

Die Natural-Schnittstelle zu VSAM unterstützt VSAM Entry-Sequenced Data Sets (ESDS), Key-Sequenced Data Sets (KSDS), Relative Record Data Sets (RRDS), Variable Relative Record Data Sets (VRDS) und Pfade für alternative Indexe.

Damit Natural auf VSAM-Dateien zugreifen kann, ist für jede VSAM-Datei, die für Natural-Programme zugänglich gemacht werden soll, ein Natural-DDM erforderlich.

In diesem Abschnitt werden die folgenden Themen behandelt:

- Natural-Datendefinitionsmodule (DDMs)

- SYSDDM-Hauptmenü

- DDM katalogisieren – Funktion: Catalog DDM

- DDM bearbeiten

- Einschränkungen bei der DDM-Generierung im Vergleich zu Adabas

### Natural-Datendefinitionsmodule (DDMs)

Für jede Datei muss ein Datendefinitionsmodul (DDM) eingerichtet werden. DDMs werden mit Predict (Einzelheiten finden Sie in der Predict-Dokumentation) oder mit dem Natural-Dienstprogramm SYSDDM erstellt und gepflegt; sie werden in der Natural-Datendiktionär-Systemdatei (FDIC) gespeichert.

Mit VSAM können zusätzlich zu den logischen Natural-DDMs auch VSAM-Benutzer-DDMs aus einem physischen DDM erstellt werden.

Wenn Sie Predict nicht installiert haben, benutzen Sie das Dienstprogramm SYSDDM, um DDMs aus VSAM-Dateien zu erzeugen. Das Dienstprogramm SYSDDM ist in der Editoren-Dokumentation beschrieben. Die für VSAM relevanten Teile davon sind in den folgenden Abschnitten beschrieben.

Alle DDMs, die innerhalb einer Sitzung verwendet werden, befinden sich im Natural-Buffer Pool. Dies steigert die Performance und ermöglicht die Synchronisation der DDM-Verwendung über mehrere Sitzungen hinweg.

### SYSDDM-Hauptmenü

Die folgenden Funktionen im Hauptmenü des Dienstprogramms `SYSDDM` sind für Natural for VSAM relevant:

Funktion | Erläuterung
--- | ---
Catalog DDM | DDM katalogisieren Das DDM, das sich momentan im Arbeitsbereich befindet, wird katalogisiert und steht damit für die Verwendung in Natural-Anwendungen zur Verfügung. Das DDM muss zuvor mit einem `READ`-Kommando (siehe auch Editor- und Systemkommandos in der Dokumentation des SYSDDM-Dienstprogramms) in den Arbeitsbereich gestellt oder mit der unten beschriebenen Funktion Edit DDM eingegeben worden sein. Weiter unten finden Sie ausführlichere Informationen zu Catalog DDM.
Edit DDM | DDM bearbeiten Liest ein DDM aus der Systemdatei FDIC in den SYSDDM-Arbeitsbereich, wo es bearbeitet werden kann.
List DDMs | Datendefinitionsmodule auflisten Zeigt einen einzelnen DDM-Quellcode (DDM-Editor wird nicht aufgerufen) oder eine Liste von DDMs an. Das Anzeigeformat und die Optionen sind identisch mit denen des Kommandos `LIST DDM` (siehe auch Editor- und Systemkommandos in der Dokumentation des SYSDDM-Dienstprogramms).
Copy DDM to Another FDIC File | DDM in eine andere FDIC-Datei kopieren Ein oder alle DDMs können in eine andere Natural-Systemdatei (FDIC) und/oder in eine andere Datenbank kopiert werden. Dies ist z. B. bei der Umstellung einer Natural-Anwendung vom Test- auf den Produktionsstatus erforderlich. Zusätzlich zu DDM-Name, DBID und FNR muss bei Natural for VSAM der Dateityp `V` angegeben werden sowie der DD/FCT-Name der Natural-Systemdatei FDIC, wenn die FDIC-Datei eine VSAM-Datei ist.
List DDMs with Additional Information | DDMs mit Zusatzinformationen auflisten Zeigt eine Liste der DDMs an, die in der angegebenen FDIC-Systemdatei gespeichert sind. Aus der Liste können Sie einzelne DDMs zur weiteren Bearbeitung auswählen. Diese Funktion unterscheidet sich von der Funktion List DDMs dadurch, dass sie zusätzliche Informationen zu den einzelnen DDMs anzeigt. Zu den angezeigten Informationen gehören Dateiname, DBID, Dateinummer, DDM-Länge, Security-Typ (nur in Verbindung mit Natural Security), Dateityp (d.h. `LOG.DDM`, `PHY.FILE`, `LOG.FILE` oder `USERDDM` für VSAM-DDMs) und Bemerkungen wie z.B. die VSAM-Dateiorganisation (KSDS, VRDS, RRDS, ESDS). Einzelheiten finden Sie unter SYSDDM Utility in der Dokumentation der Natural-Editoren.
Delete DDM | DDM löschen Löscht ein zuvor katalogisiertes DDM aus der Natural-Systemdatei FDIC. Das DDM bleibt im Arbeitsbereich erhalten. Wichtig Wenn ein DDM mit SYSDDM gelöscht wird, wird auch das zugehörige Natural Security-Dateiprofil automatisch gelöscht.

Die folgenden für Natural for VSAM relevanten Parameter können für die verschiedenen Funktionen angegeben werden:

Parameter | Erläuterung
--- | ---
`DDM Name` | Der Name des zu bearbeitenden DDM.
`FNR` | Die Dateinummer des zu bearbeitenden DDM.
`DBID` | Die Kennung der Die Datenbank, in der sich das zu bearbeitende DDM befindet.
`Replace` | Wenn `Y` eingegeben wird, werden DDMs, die gerade kopiert oder katalogisiert werden und die bereits vorhanden sind, ersetzt. Wenn `N` eingegeben wird, werden solche DDMs nicht ersetzt.
`FDIC Type` | Der Typ der Systemdatei FDIC.
`DDM Type` | Der Typ des DDM. Für VSAM muss der Typ `V` sein.
`DBID Type` | Der Typ des DDM. Für VSAM muss der Typ `V` sein.

### DDM katalogisieren – Funktion: Catalog DDM

Ein DDM kann entweder durch Eingabe des Funktionscodes `C` im SYSDDM-Hauptmenü oder durch Eingabe des Kommandos `CATALOG` in der Kommandozeile des DDM-Editors katalogisiert werden.

Für diese Funktion sind Dateiname und Dateinummer erforderlich. Bei Natural for VSAM muss eine dem VSAM zugeordnete Datenbankkennung (DBID) angegeben werden. Wenn keine DBID angegeben wird, wird sie als `0` angenommen und zur Ausführungszeit dynamisch auf der Basis der DBID der verwendeten Natural-Systemdatei FUSER erzeugt (siehe auch die Beschreibung des Profilparameters `UDB` in der Natural-Parameter-Referenz-Dokumentation).

Wenn eine DBID angegeben wird, die VSAM zugeordnet ist (und `V` für VSAM im Feld Type of this DDM), fordert SYSDDM Sie zur Eingabe zusätzlicher Informationen auf.

Anmerkung
Die eigentliche DBID-Zuweisung für VSAM erfolgt mit `NTDB`-Makros beim Assemblieren des Natural-Parametermoduls. Siehe Installing Natural for VSAM in der Installations-Dokumentation.

#### Zusätzliche Optionen für VSAM-Dateien

Wenn das DDM auf eine VSAM-Datei zugreifen soll, wird ein zusätzlicher Bildschirm angezeigt, der die Eingabe zusätzlicher VSAM-Optionen anfordert:

    13:11:33              ***** NATURAL SYSDDM UTILITY *****             2021-06-14
                             - Catalog a VSAM file/DDM -
    DDM Name AUTOMOBILES-VS                    Def.Seq.        DBID   254 FNR     12

        VSAM file information

        VSAM file name ........... AUTO____
        VSAM View ................ N (Y/N)
        Logical related to FNR ... _____
        User defined prefix ...... ________________

        VSAM file organisation

        KSDS, ESDS, RRDS, VRDS ... K (K,E,R,V)
        Extended file ............ N (Y/N)

        Compress file ............ N (Y/N)
        Zones X'0C' / X'0F'....... F (C/F)

Die zusätzlichen Optionen für VSAM-Dateien bestehen aus zwei Teilen: VSAM File Information and VSAM File Organization.

#### Optionen für VSAM File Information

Option | Erläuterung
--- | ---
VSAM file name | Der DDNAME/FCT-Eintrag, wie er im TP-Monitor oder bei Verwendung des Batch-Modus definiert ist, z. B.:
    //PERSON DD ...
wobei PERSON unter VSAM file name eingegeben wird.
VSAM View (DDM) |
Gibt an, ob dieses DDM ein logisches Benutzer-DDM oder ein physisches DDM darstellt.
`Y` | Gibt an, dass es sich bei dem DDM um ein logisches DDM handelt, was bedeutet, dass es nicht unbedingt dem physischen Layout der VSAM-Datei entspricht. Ein logisches DDM muss dieselbe Dateinummer verwenden wie das physische DDM, von dem es abgeleitet ist, und das entsprechende physische DDM muss zum Zeitpunkt des Aufrufs des Benutzer-DDMs während der Ausführung existieren. Die Kurznamen des logischen DDM müssen mit den im physischen DDM definierten identisch sein. Die Reihenfolge der Felder innerhalb des DDM kann von der physischen Reihenfolge abweichen. Das Primärschlüsselfeld darf nicht aus dem DDM gelöscht werden. Da das logische DDM eine Teilmenge des physischen DDM ist, erscheinen die entsprechenden Teilmengen der zugrunde liegenden VSAM-Datei dem Benutzer als unabhängige Dateien mit unterschiedlichem Datensatz-Layout. Bei der Verarbeitung eines logischen DDM erhält der Benutzer nur Datensätze aus der entsprechenden Teilmenge und nicht aus einer anderen Teilmenge, die in derselben physischen VSAM-Datei enthalten ist.
`N` | Zeigt an, dass das DDM ein physisches DDM darstellt. Es kann nur ein DDM mit einer bestimmten Dateinummer als physisches DDM für eine VSAM-Datei verwendet werden. Dieses physische DDM wird von Natural intern zur Berechnung von Feld-Offsets verwendet.

Logische DDMs werden verwendet, um verschiedene Datensatztypen in einer physischen VSAM-Datei zu definieren. Bei der DDM-Generierung werden diese Satztypen durch Angabe eines Präfixes für den Primärschlüssel identifiziert.

Wenn ein logisches DDM gelesen wird, werden nur Sätze aus der VSAM-Datei zurückgegeben, deren Schlüssel mit dem angegebenen Präfix beginnt. Datensätze, die mit einem anderen Präfix beginnen, werden ignoriert. Wenn nicht anders angegeben, entspricht das Präfix der logischen Dateinummer.

Jedem logischen DDM muss ein anderes Präfix zugewiesen werden. Natural verlinkt das Präfix automatisch mit dem logischen Schlüssel. Das Feld-Layout im logischen DDM muss nicht dasselbe sein wie im physischen DDM.

Die folgenden beiden Optionen werden nur verwendet, wenn das DDM eine logische Datei darstellt, die von einer physischen VSAM-Datei abgeleitet werden soll.

Option | Erläuterung
--- | ---
Logical related to FNR | Mit dieser Option wird die Dateinummer des physischen DDM angegeben, von dem die logische Datei oder der DDM abgeleitet ist. Ein logisches DDM entspricht einem Satztyp, der durch ein Präfix gesteuert wird. In einer physischen VSAM-Datei können mehrere logische Satztypen enthalten sein. Die Satztypen werden durch ein Präfix unterschieden, das festlegt, welche Sätze verarbeitet werden sollen. Siehe das folgende Beispiel.
User defined prefix | Der Präfixwert, der für die logische Datei zugewiesen werden soll. Der Standardpräfixwert ist die logische Dateinummer (Länge 3).

#### Beispiel für Logical Related to FNR

Physical Data Set |  |  |
Key |  |  |
    X1234
    X2345
    X3456
     DDM1
     PREFIX = X
     FNR = 10
    Z1234
    Z1209
    Z9000
    DDM2
    PREFIX = Z
    FNR = 11
Read DDM1 with key |  |  |
Display key |  |  |
results in: |  |  |
    Key
    1234
    2345
    3456

#### VSAM-Dateiorganisationsoptionen

Option | Erläuterung
--- | ---
KSDS, ESDS, RRDS, VRDS | Der Typ der VSAM-Datei:
`K` | KSDS-Datei (Standard)
`E` | ESDS-Datei
`R` | RRDS-Datei
`V` | VRDS-Datei
Extended file | Gibt an, ob die erweiterte VSAM-Datei (also die größere ISN) verwendet werden soll oder nicht.
`N` | Gibt an, dass keine erweiterte VSAM-Datei (also die größere ISN) verwendet werden soll. Das bedeutet, dass eine 4-Byte-Variable `*ISN` verwendet wird, um die relative Byte-Adresse (RBA) für ESDS-Dateien und die relative Satznummer (RRN) für RRDS- und VRDS-Dateien aufzunehmen.
`` | `N` ist der Standardwert.
`Y` | Gibt an, dass die erweiterte VSAM-Datei verwendet werden soll. Das bedeutet, dass bei ESDS eine größere Variable `*ISN` (bis zu 8 Bytes) für die relative Byte-Adresse (RBA) von VSAM verwendet werden kann. Die relative Satznummer (RRN) für erweiterte RRDS- und VRDS-Dateien beträgt weiterhin 4 Bytes, wird aber unter Verwendung dieses erweiterten ISN-Felds angezeigt.
Compress file | Gibt an, ob die Datei komprimiert werden soll oder nicht.
`N` | Gibt an, dass die Datei nicht komprimiert werden soll. Die Datei wird in der maximalen Länge (d. h. der Länge aller Felder in dieser Datei) geschrieben, wie sie in SYSDDM oder Predict definiert ist.
| `N` ist der Standardwert.
`Y` | Gibt an, dass die Datei in variabler Satzlänge geschrieben werden soll. Während der Komprimierung wird der Datensatz rückwärts nach Standardwerten durchsucht, die bei alphanumerischen Feldern leer sind, bei binären Feldern niedrige Werte, bei gepackten Feldern niedrige Werte mit einer Zone und bei numerischen Feldern `X'F0'`. Die Komprimierung wird beendet, sobald der erste Nicht-Standardwert erkannt oder der erste Deskriptor gefunden wird. Die neu berechnete Länge wird verwendet, um den Datensatz in die Datei zu schreiben. Dies gilt nur für KSDS- und ESDS-Dateien.
| Durch die Komprimierung der nachgestellten Nullwerte in VSAM-Datensätzen wird der Platzbedarf für VSAM-Datensätze minimiert. Die Anwendungsprogrammierschnittstelle `USR0100N` in der Library SYSEXT wird zur Verfügung gestellt, um die logische Satzlänge durch ein Natural-Programm verwalten zu können.
Zones X'0C' / X'0F' | In Adabas haben alle positiven gepackten Werte `X'0F'` als Zone. Dieser Wert kann in VSAM ein anderer sein.
`F` | Gibt an, dass alle gepackten Daten mit der Zone `X'0F'` in die VSAM-Datei geschrieben werden. Dies ist der Standardwert.
`C` | Gibt an, dass alle gepackten Werte mit der Zone `X'0C'` in die VSAM-Datei geschrieben werden.

### DDM bearbeiten

Um das momentan im Arbeitsbereich geladene DDM zu bearbeiten, können Sie den DDM-Editor des SYSDDM-Dienstprogramms verwenden. Wenn noch kein DDM in den Arbeitsbereich eingelesen wurde, wird ein leerer Bildschirm angezeigt, der die manuelle Eingabe einer DDM-Definition ermöglicht.

Anstatt eine komplette DDM-Definition manuell einzugeben, können Sie auch eine bestehende DDM-Definition in den Arbeitsbereich einlesen, indem Sie `EDIT ddm-name` in die Kommandozeile des DDM-Editors eingeben. Dieses DDM kann geändert und unter einem anderen Namen katalogisiert werden.

Anmerkung
Wenn Sie ein DDM ändern, müssen alle Objekte, die auf dieses DDM verweisen, neu katalogisiert werden.

#### DDM-Editor

Beispiel:

    11:26:09                  ***** EDIT DDM (VSAM) *****                2007-02-25
    DDM Name EMPLOYEES-VS                      Def.Seq.        DBID   254 FNR     1
    Command
    I T L DB Name                             F Leng  S D Remark
    - - - -- -------------- top ------------- - ----- - - ------------------------
        1 AA PERSONNEL-ID                     A 8.0     P
      *      CNNNNNNN
      *      C=COUNTRY
      G 1 AB FULL-NAME
        2 AC FIRST-NAME                       A 20.0  N
        2 AD MIDDLE-NAME                      A 20.0  N
        2 AE NAME                             A 20.0    A
        1 AF MAR-STAT                         A 1.0   F
      *      M=MARRIED
      *      S=SINGLE
      *      D=DIVORCED
      *      W=WIDOWED
        1 AG SEX                              A 1.0   F
        1 AH BIRTH                            N 6.0
      G 1 A1 FULL-ADDRESS
      M 2 AI ADDRESS-LINE                     A 20.0  N
        2 AJ CITY                             A 20.0  N

Wenn Sie das Kommando HELP oder ein Fragezeichen (?) in die Kommandozeile eingeben, werden die Hilfeinformationen zum Editor angezeigt.

Informationen im Kopfbereich des DDM-Editors:

DDM Name | Der Name, der verwendet wird, um in einem Natural-Programm auf das DDM zu verweisen. Der Name muss innerhalb der angegebenen Natural-Systemdatei eindeutig sein.
Def. Seq. | Die Standardreihenfolge, in der die Datei gelesen wird, wenn in einem Natural-Programm mit einem `READ LOGICAL`-Statement auf sie zugegriffen wird.
DBID | Die Datenbank, in der die Datei, auf die mit dem DDM zugegriffen werden soll, enthalten ist. Bei Natural for VSAM muss eine dem VSAM zugeordnete DBID angegeben werden. Wenn `0` angegeben wird, wird die Standard-DBID für die Natural-Systemdatei FUSER, wie im Natural-Parametermodul definiert, verwendet. Anmerkung Die tatsächlichen DBID-Zuweisungen für VSAM werden mit `NTDB`-Makros bei der Assemblierung des Natural-Parametermoduls vorgenommen; siehe Installation von Natural for VSAM in der Installations-Dokumentation.
FNR | Die Nummer der Datei, auf die verwiesen wird. Die angegebene Dateinummer wird von Natural for VSAM intern verwendet.

Das DDM selbst umfasst die folgenden Felddefinitionsattribute, die eingegeben oder geändert werden können:

Attribute | Erläuterung
--- | ---
I | Zeilenkennzeichen. Dieses Feld wird vom DDM-Editor zur Markierung von Zeilen verwendet.
`E` | Zeilen, in denen bei der Ausführung des `CHECK`-Kommandos ein Fehler festgestellt wurde.
`S` | Zeilen, die einen gescannten Wert enthalten.
`X`/`Y` | Zeilen, die für den Kopier-/Verschiebevorgang ausgewählt wurden.
T | Feldtyp:
`G` | Gruppenüberschrift
`M` | Multiples Feld.
`P` | Feldüberschrift für Perioden-Gruppe.
`*` | Kommentarzeile.
leer | Elementares Feld.
L | Ebene: Dem Feld zugewiesene Level-Nummer. Gültige Level-Nummern sind 1 - 7. Die Level-Nummern müssen in fortlaufender aufsteigender Reihenfolge angegeben werden.
DB | Der zweistellige Code für VSAM-Dateien, der in VSAM verwendet wird.
Name | Ein 3- bis 32-stelliger externer Feldname. Dies ist der Feldname, der in Natural-Programmen verwendet wird, um auf das Feld zu verweisen.
F | Feldformat. Gültige Formate finden Sie unter Benutzervariablen, Format und Länge von Benutzervariablen (im Natural-Leitfaden zur Programmierung).
Leng | Standardfeldlänge. Diese Länge kann in einem Natural-Programm überschrieben werden. Für numerische Felder (Format N) wird die Länge als `nn.m` angegeben, wobei `nn` für die Anzahl der Vorkommastellen und `m` für die Anzahl der Nachkommastellen steht.
S | Dieses Attribut gilt nicht für Natural for VSAM.
D | Deskriptor-Option.
`A` | Zeigt an, dass das Feld ein alternativer Index für eine VSAM-Datei ist.
`P` | Zeigt an, dass das Feld ein Primärschlüssel ist.
`S` | Gibt an, dass das Feld ein primärer Subdeskriptor oder Superdeskriptor ist, d. h. ein Primärschlüssel für eine VSAM-Datei.
`X` | Gibt an, dass das Feld ein alternativer Subdeskriptor oder Superdeskriptor ist, d. h. ein alternativer Index für eine VSAM-Datei. Bemerkung Ein Kommentar, der sich auf ein Feld und/oder das DDM bezieht.
Remark | Ein Kommentar, der sich auf ein Feld und/oder das DDM bezieht.

Die meisten der im Natural-Programmeditor verfügbaren Editor- und Zeilenkommandos gelten auch für den Natural-DDM-Editor. Spezielle Kommandos, wie z.B. `PROFILE`, `RENUMBER`, `SET`, `SHIFT` usw. und einige Zeilenkommandos sind nicht verfügbar. Weitere Informationen zu den Editorkommandos finden Sie unter DDM-Editor (SYSDDM Utility) und Programm-Editor in der Dokumentation zu den Natural-Editoren.

#### Erweiterte Bearbeitung auf Feldebene – Extended Field Editing

Der DDM-Editor kann auch verwendet werden, um DDM-Definitionen auf Feldebene einzugeben oder zu ändern.

Der erweiterte Editiermodus dient zur Angabe von Feldüberschriften und Editiermasken, die bei Verwendung des Feldes in einem `DISPLAY`- oder `INPUT`-Statement angewendet werden sollen, sowie zur Angabe weiterer Spezifikationen für VSAM-DDM-Definitionen. Alle anderen feldspezifischen Informationen (Feldtyp, Länge, Name, Format, Bemerkungen) können an dieser Stelle ebenfalls geändert werden.

Der erweiterte Bearbeitungsmodus wird durch die Eingabe des Zeilenkommandos `.E` an den ersten Stellen der Zeile, die das Feld enthält, aufgerufen.

Ein Bereich von Felddefinitionen kann zur Bearbeitung ausgewählt werden, indem `.Ennn` eingegeben wird, wobei `nnn` die Anzahl der auszuwählenden Felder ist.

Der Bearbeitungsmodus auf Feldebene wird beendet, wenn Sie Enter drücken, egal ob Sie Änderungen vorgenommen haben oder nicht.

Auf dem Bildschirm Extended Field Editing werden spezielle Attribute der Felddefinition angezeigt, wenn es sich bei dem in Bearbeitung befindlichen DDM um ein VSAM-DDM handelt:

     11:25:26                 ***** EDIT DDM (VSAM) *****                 2007-02-25
                               - Extended Field Editing -
     DDM Name AUTOMOBILES-VS                    Def.Seq.        DBID   254 FNR    12

     I T L DB Name                             F Leng  S D Remark
     - - - -- -------------- top ------------- - ----- - - ------------------------
         1 GA OWNER-PERSONNEL-NUMBER           N 8.0     A SECONDARY KEY
     ------------------------------------------------------------------------------

     Field Header .......... OWNER/NUMBER______________________________________
     Field Edit Mask ....... __________________________________________________

     Alternate Index Name .. AUTOY___

     Maximum Occurrence ....   1

     Upgrade Flag .......... _ (X)
     Unique Key Flag ....... _ (X)
     Null Flag ............. _ (X)

     Field GA redefines field __ with offset   0

Die folgenden Attribute können angegeben werden:

Attribut | Erläuterung
--- | ---
Alternate Index Name | Verweist das Feld auf einen alternativen VSAM-Index oder einen Pfad (gekennzeichnet durch ein `A` in Spalte D), muss der Index- oder Pfadname hier eingegeben werden.
Maximum Occurrence | Die Anzahl der Ausprägungen für ein multiples Feld oder eine Periodengruppe (gekennzeichnet durch ein `M` oder `P` in Spalte T).
Die folgenden Flags gelten nur für alternative Indizes und nicht für Pfade:
Upgrade Flag | Da Natural keine VSAM-Pfade verwendet, kann das Upgrade entweder von Natural oder von VSAM durchgeführt werden, wenn eine KSDS- oder ESDS-Datei mit definierten alternativen Indexen verwendet wird. Ein leerer Wert zeigt an, dass die Aktualisierung des alternativen Indexes von VSAM durchgeführt werden soll, was der Standard ist. Wenn VSAM die Aktualisierung durchführen soll, definieren Sie die VSAM-Datei unter Einsatz von IDCAMS mit `UPGRADE`. Wenn Sie ein `X` eingeben, wird das Upgrade des alternativen Indexes von Natural durchgeführt. In diesem Fall muss AIX mit der Option `NONUPGRADE` definiert werden. Anmerkung Für die LSR-Behandlung ist es empfehlenswert, diese Option anzugeben. Unter CICS muss der FCT-Eintrag auch die Option `VARIABLE` enthalten.
Sort Flag | Ist diese Option mit einem `X` markiert, soll der alternative Index in auf- oder absteigender Wertreihenfolge gelesen werden. Diese Option wird nur wirksam, wenn auch die Option Upgrade Flag angegeben ist.
Unique Key Flag | Wenn diese Option mit einem `X` markiert ist, stellt Natural sicher, dass die Werte des alternativen Indexfeldes eindeutig sind. Der Versuch einer Aktualisierung mit einem nicht eindeutigen Wert führt zu einer Fehlermeldung. Der Standardwert ist ein Leerzeichen. Diese Option wird nur wirksam, wenn auch die Option Upgrade Flag angegeben ist.
Null Flag | Der Wert `S` gibt an, dass Nullwerte für das alternative Indexfeld unterdrückt werden. Der Standardwert ist ein Leerzeichen. Diese Option wird nur wirksam, wenn auch die Option Upgrade Flag angegeben ist.

Anmerkung
Bei allen DDMs, die mit Natural katalogisiert sind und alternative Indexe sowie Angaben zu den oben genannten Flags enthalten, werden alle Flags zur Laufzeit aufgehoben, sobald die Pfadverarbeitung für diese DDMs aktiviert wird.

Die letzten beiden Felder auf dem Bildschirm dienen der Definition von Sub-/Superdeskriptoren für eine VSAM-Datei. Um z.B. das Feld `S1` als Superdeskriptor zu definieren, der im Feld `BA` beginnt und im Feld `BB` endet, muss folgendes eingegeben werden:

    S1 redefines BA with offset 0

Das Feld `S1` muss in VSAM als Primär- oder Sekundärschlüssel definiert worden sein.

VSAM-Superdeskriptoren können nur aus zusammenhängenden Feldern gebildet werden. Um das Feld `S2` als Superdeskriptor zu definieren, der an der 11. Position des Feldes `BA` beginnt und mit den ersten beiden Positionen des Feldes `BB` endet, muss Folgendes eingegeben werden:

    S2 redefines BA with offset 10

Außerdem muss die Länge von `S2` auf `7` gesetzt werden. Wie bereits erwähnt, muss `S2` als Primär- oder Sekundärindex für VSAM definiert worden sein.

### Einschränkungen bei der DDM-Generierung im Vergleich zu Adabas

- Innerhalb von Periodengruppen können keine Schlüssel definiert werden.

- Deskriptoren, die multiple Felder enthalten, sind bei VSAM nicht zulässig.

- Natural-DDMs für VSAM können keine multiplen Felder oder Periodengruppen innerhalb von Periodengruppen enthalten.

- Ein und dasselbe Feld kann nicht mehrmals im selben DDM definiert werden. Eine Datendefinition wie im folgenden Beispiel würde bei der Verwendung mit VSAM zu unvorhersehbaren Ergebnissen führen:

#### Beispiel:

    ...
    G 01 AB FULL-NAME
            02 AC FIRST-NAMEA 20.0  N
            02 AD MIDDLE-I                  A  1.0 N   /* duplicate short name
            02 AE NAME                      A 20.0
            01 AD MIDDLE-NAME               A 20.0 N   /* duplicate short name
    ...

Natural würde das Feld `MIDDLE-I` nicht als Neudefinition von `MIDDLE-NAME` behandeln, sondern als ein separates Feld.

## Puffer für die Speicherverwaltung

Der Parameter `VSIZE` ist in zehn verschiedene Bereiche suballokiert, deren Größe durch den Aufbau des Natural-Parametermoduls bestimmt wird. Die verschiedenen VSAM-Bereiche sind in feste und variable Puffertypen unterteilt. Wenn im `VSIZE`-Puffer nicht genügend Platz für alle Bereiche des Natural-Parametermoduls vorhanden ist, erhalten Sie bei der Initialisierung die Fehlermeldung NAT3592. Zur Laufzeit kann bei festen Puffertypen die Fehlermeldung NAT3513 auftreten. In diesem Fall müssen Sie den entsprechenden Wert des Natural-Parametermoduls anpassen. Variable Puffer werden zur Laufzeit vergrößert, NAT3513 tritt nicht auf. Einige Puffergrößen hängen von der Verwendung von VSAM-Systemdateien ab. Die relevanten Puffer sind FCT, FWA, TSA und UPD.

Der `VSIZE`-Parameter wird wie folgt suballokiert:

- FCT - Dateikontrolltabelle

- FWA - Dateiarbeitsbereich

- OPV - Open-Anforderungstabelle

- SFT - Systemdatei-Tabelle

- SWT - Umschalttabelle

- TAF - Tabelle der zugegriffenen Dateien

- ROLL - Tabelle der Sitzungsstatusinformationen

- DFB - Tabelle der dekodierten Formatpuffer

- TSA - Tabelle für sequenziellen Zugriff

- UPD - Tabelle der Aktualisierungssätze

- VCA - Natural-Kontrollbereich für VSAM

### FCT - Dateikontrolltabelle

FCT (File Control Table) enthält dateispezifische Informationen und ist ein fester Puffertyp.

FCT enthält auch den vollständigen VSAM-Zugriffskontrollblock (ACB), Informationen über vorhandene User-Exits und Informationen über die Anwendungsprogrammierschnittstelle `USR0100N`.

Die Größe der Tabelle wird anhand der folgenden Formel ermittelt und anschließend auf eine Doppelwortgrenze aufgerundet:

( 72 + ACB-length ) ( TAFE * 2 ) + 80

Ohne VSAM-Systemdateien ist die Standardeinstellung wie folgt:

( 72 + 76 ) ( 10 * 2 ) + 80 = 3040

Mit VSAM-Systemdateien ist die Standardeinstellung:

( 72 + 76 ) ( 26 * 2 ) + 80 = 7776

FCT und SWT (siehe unten) teilen sich einen gemeinsamen Pufferbereich.

### FWA - Dateiarbeitsbereich

FWA (File Work Area) enthält Informationen über eine VSAM-Anforderung und ist ein fester Puffertyp.

FWA enthält auch Informationen über die VSAM-Anforderungsparameterliste (Request Parameter List, RPL).

Die Größe der Tabelle wird anhand der folgenden Formel ermittelt und dann auf eine Doppelwortgrenze aufgerundet.

( 40 + RPL-length ) ( TAFE * 2 ) + 80

Ohne VSAM-Systemdateien ist die Standardeinstellung wie folgt:

( 40 + 76 ) ( 10 * 2 ) + 80 = 2400

Mit VSAM-Systemdateien ist die Standardeinstellung:

( 40 + (76*4) ) ( 26 * 2 ) + 80 = 17968

FWA und OPV (siehe unten) teilen sich einen gemeinsamen Pufferbereich.

### OPV - Open-Anforderungstabelle

OPV (Open Table) enthält Informationen über einen OPRB-String und ist ein fester Puffertyp.

Die Größe der Tabelle wird anhand der folgenden Formel ermittelt und dann auf eine Doppelwortgrenze aufgerundet:

24 * ( TAFE * 2 ) + 48

Die Standardeinstellung ist:

24 * ( 10 * 2 ) + 48 = 528

OPV und FWA teilen sich einen gemeinsamen Pufferbereich.

### SFT - Systemdatei-Tabelle

Die Tabelle SFT (System File Table) ist nur aktiv, wenn VSAM-Systemdateien definiert sind. Der Puffertyp ist fest vorgegeben.

Dieser Bereich enthält die Beschreibung der VSAM-Systemdateien FNAT, FUSER, FDIC, FSEC und FSPOOL sowie die von Natural ISPF verwendete Systemdatei, falls vorhanden.

Die Größe des Bereichs beträgt `8192` bei `SFILE=ON`. Die Standardeinstellung ist `0`.

### SWT - Umschalttabelle

SWT (Switch Table) enthält Informationen, die für die Anwendungsprogrammierschnittstelle `USR1047N` zur dynamischen DD/DLBL-Änderung benötigt werden. SWT wird nur zugeordnet, wenn der für den Parameter `DDSWITE` in `NTVSAM` angegebene Wert größer als `0` ist.

Der SWT-Puffertyp ist fest vorgegeben.

Die Größe der Tabelle wird anhand der folgenden Formel ermittelt und dann auf eine Doppelwortgrenze aufgerundet:

24 * DDSWITE + 48

Die Standardeinstellung ist `0`.

SWT und FCT (siehe oben) teilen sich einen gemeinsamen Pufferbereich.

### TAF - Tabelle der zugegriffenen Dateien

Der -Bereich der TAF (Table of Accessed Files) beschreibt das Datensatzlayout für jede Datei, auf die Natural zugreift. Er wird durch Lesen des physischen oder logischen DDM für die Datei erstellt. Jeder TAF-Eintrag besteht aus einem Header-Eintrag und einem Eintrag für jedes Feld im DDM. Der Header-Eintrag beschreibt den Typ der Datei, den Dateinamen, den Primärschlüssel usw. Die Feldeinträge beschreiben das Format, den Offset und die Länge jedes Feldes in der Datei. Die Layouts für die Header- und Feldeinträge werden in den Makros `NVMTAF` bzw. `NVMFLD` beschrieben.

Der TAF-Puffertyp ist fest vorgegeben.

Die Größe der Tabelle wird mit Hilfe der folgenden Formel ermittelt, wobei auf eine Doppelwortgrenze aufgerundet wird:

( ( ( 32 * TAFN ) + 112 ) * TAFE ) + 80

Die Standardeinstellung ist:

( ( ( 32 * 50 ) + 112 ) * 10 ) + 80 = 17200

### ROLL - Tabelle der Sitzungsstatusinformationen

Die ROLL-Tabelle (Table of Session Status Information) wird verwendet, um die Position innerhalb einer Datei für jedes aktive `FIND`- oder `READ`-Statement zu ermitteln. Sie wird durch die CID identifiziert. Dadurch kann Natural alle VSAM-Ressourcen während einer ROLLOUT-Operation (Auslagerung) freigeben und sich dann nach einer ROLLIN-Operation (Einlagerung) wieder korrekt positionieren.

Der Typ des ROLL-Puffers ist fest vorgegeben.

Die Größe dieses Bereichs wird durch den Subparameter `ROLLSIZ` des Makros `NTVSAM` im Natural-Parametermodul bestimmt, wobei auf eine Doppelwortgrenze aufgerundet wird:

TAXSIZE + 80

Die Standardeinstellung ist:

550 + 80 = 632

### DFB - Tabelle der dekodierten Formatpuffer

Die DFB (Table of Decoded Format Buffers) ist in zwei Bereiche gegliedert, einen für globale Formatkennungen (GFIDs) und einen für Kommandokennungen (CIDs).

In diesem Bereich wird für jede gegebene E/A-Anforderung beschrieben, welche Felder aus dem VSAM-Datensatzbereich in den Natural Record Buffer zurückgegeben werden. Jeder DFB-Eintrag (decodierter Formatpuffer) besteht aus einem Header, der durch die CID oder die GFID der E/A-Anforderung identifiziert wird, sowie einem Eintrag für jedes Feld, das an Natural zurückgegeben werden soll. Jeder Feldeintrag im DFB enthält das Format, den Offset und die Länge des Feldes, wie sie sich aus dem zugehörigen TAF-Eintrag für die Datei ergeben. Die Layouts der Header- und Feldeinträge sind in den Makros `NVMDFB` bzw. `NVMDFF` beschrieben.

Der Typ des DFB-Puffers ist fest vorgegeben. Tritt die No-Space-Bedingung für GFID-orientierte Einträge auf, werden die ältesten Einträge gelöscht.

Die Größe des TDFB-Bereichs wird anhand der folgenden Formel ermittelt und anschließend auf eine Doppelwortgrenze aufgerundet:

( 16 * DFBN * 2 + 36 ) * DFBE * 2 + 128

Die Standardeinstellung ist:

( 16 * 50 * 2 + 36 ) * 10 * 2 + 128 = 32848

### TSA - Tabelle für sequenziellen Zugriff

Die TSA (Table of Sequential Access) wird verwendet, um wichtige Zeiger und Informationen zu jedem `READ`- oder `FIND`-Statement zu speichern. Es gibt einen TSA-Eintrag für jedes aktive `READ`- und `FIND`-Statement, und jeder Eintrag wird durch die CID identifiziert. Das Layout des TSA ist im Makro `NVMTSA` beschrieben.

Der Typ des TSA-Puffers ist variabel.

Die Größe des Bereichs wird anhand der folgenden Formel ermittelt und dann auf eine Doppelwortgrenze aufgerundet:

(104 + KEYLGH) * TSAE + 80

Dabei ist TSAE = TSA-Eintrag.

Die Standardeinstellung ist:

(104 + 32) * 10 + 80 = 1440

### UPD - Tabelle der Aktualisierungssätze

Der Bereich UPD (Table of Update Records) enthält einen Eintrag für jede `READ`- oder `FIND`-Schleife, die ein `UPDATE`- oder `DELETE`-Statement enthält. Diese Einträge werden freigegeben, wenn ein `END TRANSACTION`- oder `BACKOUT TRANSACTION`-Statement ausgeführt wird. Jeder Eintrag enthält Kontrollinformationen über den Datensatz und die Werte aller Felder, die innerhalb der Schleife aktualisiert werden können. Das Layout jedes UPD-Eintrags ist im Makro `NVMUPD` beschrieben.

Der Typ des UPD-Puffers ist variabel.

Die Größe des UPD-Bereichs wird durch den Subparameter `UPDL` des Makros `NTVSAM` im Natural-Parametermodul ermittelt, wobei auf eine Doppelwort-Grenze aufgerundet wird.

Die Standardeinstellung ist `8272` ohne VSAM-Systemdateien und `32848` mit VSAM-Systemdateien.

### VCA - Natural-Kontrollbereich für VSAM

VCA (Natural Control Area for VSAM) ist ein Bereich fester Länge, der Zeiger, Adressen, Flags und Arbeitsbereiche enthält, die für eine Natural-Umgebung für VSAM wichtig sind. Das Layout für diesen Bereich ist im Makro `NVMCA` beschrieben. In einer Natural-Umgebung für VSAM zeigt R3 immer auf diesen Bereich.

Die Größe dieses Bereichs beträgt `6744` Bytes.

## Anwendungsprogrammierschnittstellen

Für Natural for VSAM stehen die folgenden Anwendungsprogrammierschnittstellen (APIs) in der Natural Library SYSEXT zur Verfügung:

API | Funktion
--- | ---
`USR0100N` | Steuert die variable VSAM-Satzlänge (LRECL).
`USR1047N` | Unterstützt die dynamische Umschaltung von DD/DLBL-Namen, die in einem DDM definiert sind.
`USR2008N` | Unterstützt dynamische `OPEN`-Aufrufe für VSAM-Datasets.

Eine Kurzbeschreibung der APIs finden Sie im folgenden Abschnitt. Ausführlichere Informationen erhalten Sie, wenn Sie sich bei der System-Library SYSEXT anmelden und das Textobjekt (`USRxxxxT`) anzeigen, das der gewünschten API entspricht, oder dazu das Natural-Dienstprogramm SYSEXT benutzen.

Der folgende Abschnitt enthält Informationen zu den folgenden APIs:

- USR0100N

- USR1047N

- USR2008N

### USR0100N

Die API `USR0100N` steuert die Satzlänge von variablen VSAM-Dateien.

Die API wird wie folgt aufgerufen (ein Beispielprogramm namens `USR0100P` ist in der Library SYSEXT enthalten):

    CALLNAT 'USR0100N' parm1 parm2 parm3 parm4 parm5

Die Parameter sind in der folgenden Tabelle beschrieben:

Parameter | Format/Länge | Erläuterung
--- | --- | ---
`parm1` | A1 | Gibt einen der folgenden Funktionscodes an:
G | Für Abfrage-Statements. Die aktuelle Datensatzlänge wird für `parm5` bestimmt.
P | Für Aktualisierungs-/Speicher-Statements. Die in `parm5` angegebene Länge wird zur aktuellen Datensatzlänge.
`parm2` | A8 | Gibt den DD/DLBL-Namen für die aktuelle Datei an (optional). Falls angegeben, ist `parm5` nur für diese Datei gültig.
`parm3` | N5 | Gibt die DBID aus dem DDM an (optional). Wird anstelle des DD/DLBL-Namens und nur in Verbindung mit `parm4` verwendet.
`parm4` | N5 | Gibt die FNR aus dem DDM an (optional).
`parm5` | N5 | Gibt die Datensatzlänge an oder gibt sie zurück, abhängig von der Einstellung von `parm1`.

Anmerkung
Wenn weder `parm2` noch `parm3` und `parm4` angegeben sind, gilt `parm5` für alle Dateien.

### USR1047N

Die Anwendungsprogrammierschnittstelle `USR1047N` ermöglicht die dynamische Änderung von DD/DLBL-Namen innerhalb eines Natural-Programms, wenn der Subparameter `DDSWITE` im Makro `NTVSAM` angegeben ist. Sie kann verwendet werden, wenn Daten über mehrere VSAM-Dateien verteilt sind, die unterschiedliche DD/DLBL-Namen, aber die gleiche Satzstruktur haben.

Die API wird wie folgt aufgerufen (ein Beispielprogramm mit dem Namen `USR1047P` ist in der Library SYSEXT enthalten):

    CALLNAT 'USR1047N' parm1 parm2 parm3 parm4

Die verschiedenen Parameter sind in der folgenden Tabelle beschrieben:

Parameter | Format/Länge | Erläuterung
--- | --- | ---
`parm1` | A1 | Gibt einen der folgenden Funktionscodes an:
`S` | Zum Umschalten von DD-Namen bei den nächstfolgenden Datenbankaufrufen.
`R` | Zum Zurücksetzen der DD-Namen; der Switch-Tabelleneintrag der Funktion `S` wurde gelöscht (siehe SWT - Umschalttabelle).
`parm2` | A8 | Gibt den alten DD-Namen aus dem DDM an.
`parm3` | A8 | Gibt den neuen DD-Namen für die nächsten Datenbankaufrufe an.
`parm4` | P4 | Rückgabecode von Natural für VSAM.

Der Parameter `parm4` kann die folgenden Rückgabecodes enthalten:

Code | Erläuterung
--- | ---
`0` | Normale Rückgabe.
`4` | Die Umschalttabelle (SWT) ist zu klein. Erhöhen Sie den Subparameter `DDSWITE` im Makro `NTVSAM`.
`8` | Der Umschalttabelleneintrag wurde nicht gefunden; Programmfehler.
`12` | Ungültiger Funktionscode.
`16` | Die Umschalttabelle ist nicht zugeordnet, d.h. der Parameter `DDSWITE` ist auf `0` gesetzt.

### USR2008N

Diese Anwendungsprogrammierschnittstelle (API) ist unter Com-plete und CICS nicht anwendbar.

`USR2008N` unterstützt dynamische `OPEN-`Aufrufe während einer Natural-Sitzung, wenn `OPSUPP=ON` im Makro `NTVSAM` angegeben ist.

Die API wird wie folgt aufgerufen (ein Beispielprogramm namens `USR2008P` ist in der Library SYSEXT enthalten):

    CALLNAT 'USR2008N' parm1 parm2 parm3 parm4 parm5 parm6

Die Parameter sind in der folgenden Tabelle beschrieben:

Parameter | Format/Länge | Erläuterung
--- | --- | ---
`parm1` | N5 | Gibt die DBID aus der `NTDB`-Makro-Definition an; siehe NTDB-Makro im Abschnitt Natural für VSAM anpassen.
`parm2` | A1 | Gibt den globalen `OPEN MODE` an. Siehe OPEN/CLOSE-Verarbeitung.
`parm3` | A4 | Gibt den Datenverwaltungstyp an, z.B. VSAM.
`parm4` | A40/16 | Gibt die gültige `OPRB`-Syntax und/oder den DDM-Langnamen anstelle der Definitionen `DD=` oder `FNR=` an.
`parm5` | P4 | Gibt die Natural for VSAM-Fehlernummer zurück.
`parm6` | A50 | Gibt den Natural for VSAM-Fehlertext zurück.

### On this page

- Aufrufen von Natural for VSAM
- OPEN/CLOSE-Verarbeitung
- Natural-Dateizugriff
- Puffer für die Speicherverwaltung
- Anwendungsprogrammierschnittstellen