In diesem Kapitel finden Sie Informationen zu verschiedenen Aspekten, die beim Betrieb von Natural for VSAM relevant sind.
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).
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.
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 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.
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'
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:
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.
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 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 |
| 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
|
| 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. |
| Delete DDM | DDM löschen
Löscht ein zuvor katalogisiertes DDM aus der Natural-Systemdatei FDIC. Das DDM bleibt im Arbeitsbereich erhalten. Wichtig |
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
|
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.
|
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.
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 und VSAM File Organization.
| 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) |
|
||||||
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). |
| Physical Data Set | ||||||
| Key |
|
X1234 |
|
DDM1 | PREFIX = X | FNR = 10 |
|
|
Z1234 |
|
DDM2 | PREFIX = Z | FNR = 11 | |
| Read DDM1 with key | ||||||
| Display key | ||||||
| results in: |
Key 1234 2345 3456 |
| Option | Erläuterung | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| KSDS, ESDS, RRDS, VRDS | Der Typ der VSAM-Datei:
|
||||||||
| Extended file | Gibt an, ob die erweiterte VSAM-Datei (also die größere
ISN) verwendet werden soll oder nicht.
|
||||||||
| Compress file | Gibt an, ob die Datei komprimiert werden soll oder nicht.
|
||||||||
| Zones X'0C' / X'0F' | In Adabas haben alle positiven gepackten Werte
X'0F' als Zone. Dieser Wert kann in VSAM ein anderer sein.
|
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.
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 Anmerkung |
| 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.
|
||||||||||
| T | Feldtyp:
|
||||||||||
| 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.
|
||||||||||
| 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.
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
Wenn Sie ein Anmerkung |
| 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.
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:
...
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.
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 (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 (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 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.
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 (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.
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
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
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
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
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 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.
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:
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:
|
||||
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.
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:
|
||||
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.
|
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. |