Betrieb

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


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 =

[, 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.

Der nächste Abschnitt "Unter z/VSE" ist nur bei NAT828 und 912 vorhanden!

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)

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:

11:24:04           ***** NATURAL SYSDDM UTILITY *****                2006-05-25
                         - Catalog a VSAM file/DDM -

        DBID 254   FNR  12    DDM AUTOMOBILES-VS                   Def seq
      ---------------------------------------- 
     VSAM file information
     
     VSAM file name ............ AUTO
     VSAM View ...........(Y/N) N
     Logical related to FNR ....
     User defined prefix .......   

     VSAM file organization   
                               
     KSDS, ESDS, RRDS, VRDS (K,E,R,V) .. K   
                                      
     Compress file ........(Y/N) N 
     Zones X'0C' / X'0F' (C/F) 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
Compress file
Gibt an, ob die erweiterte VSAM-Datei (also die größere ISN) verwendet 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 Bibliothek 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

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

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

Die API wird wie folgt aufgerufen (ein Beispielprogramm namens USR0100P ist in der Bibliothek 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:

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 Bibliothek 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.