In diesem Abschnitt werden die folgenden Themen behandelt:
Natural for DB2 ist eine Natural-Schnittstelle für den Zugriff auf Daten in einer DB2-Datenbank.
Im Großen und Ganzen gibt es keinen Unterschied zwischen der Verwendung von Natural mit Db2 und der Verwendung von Natural mit Adabas, VSAM oder DL/I. Die Natural-Schnittstelle zu Db2 ermöglicht Natural-Programmen den Zugriff auf Db2-Daten mit denselben nativen Natural-Anweisungen zur Datenmanipulation (DML), die auch für Adabas, VSAM und DL/I verfügbar sind. Daher können Programme, die für Db2-Tabellen geschrieben wurden, auch für den Zugriff auf Adabas-, VSAM- oder DL/I-Datenbanken verwendet werden. Darüber hinaus sind Natural SQL DML-Anweisungen verfügbar.
Alle Operationen, die eine Interaktion mit Db2 erfordern, werden von Natural for DB2 ausgeführt.
Natural for Db2 wird in den folgenden Umgebungen unterstützt:
Db2 wird von Com-plete unterstützt. Programme, die unter Com-plete laufen, können auf Db2-Datenbanken über die Db2 Call Attachment Facility (CAF) zugreifen. Zusammen mit der Com-plete-Schnittstelle zu Db2 ermöglicht diese Einrichtung einen vollständig konversationellen Zugriff auf Db2-Tabellen.
Wenn der während des Installationsprozesses erstellte Db2-Plan nicht in Ihrer Db2-SERVER-Parameterliste für Com-plete angegeben ist, müssen Sie NATPLAN vor dem ersten SQL-Aufruf explizit aufrufen, um diesen Plan zuzuweisen.
Unter CICS verwendet Natural die CICS/Db2 Attachment Facility für
den Zugriff auf Db2. Stellen Sie daher sicher, dass dieses Attachment gestartet
ist. Ist dies nicht der Fall, wird die Natural-Sitzung mit dem CICS-Abend-Code
AEY9
vorzeitig beendet, was zur Natural-Fehlermeldung NAT0954
führt, wenn der Natural-Profilparameter DU
auf OFF
gesetzt ist.
Wenn die Natural-CICS-Transaktions-ID keinem Db2-Plan in der RCT
durch DB2ENTRY
- und DB2TRAN
-Definitionen zugeordnet
ist, müssen Sie vor dem ersten SQL-Aufruf explizit NATPLAN
ausführen, um den gewünschten Db2-Plan anzugeben und NDBUEXT
als
dynamischen Planauswahl-Exit (Attribut PLANExit
) zu definieren.
Die eigentliche Planzuweisung wird durch den dynamischen Planauswahl-Exit
durchgeführt.
Unter CICS läuft ein Natural-Programm in der Regel im
Pseudo-Conversational Mode (Natural-Profilparameter
PSEUDO
auf ON
gesetzt; dies ist der Standardwert). In diesem Fall wird am
Ende der CICS-Transaktion die Db2-Transaktion festgeschrieben und alle offenen
Db2-Cursor werden implizit geschlossen. Es gibt normalerweise keine
Möglichkeit, offene
Natural-FIND
/SELECT
-Datenbankzugriffsschleifen nach
der Terminal-E/A wieder aufzunehmen.
Um das Problem zu umgehen, dass CICS eine pseudo-konversationelle
Transaktion während der Schleifenverarbeitung beendet und Db2 dadurch alle
Cursor schließt und alle Selektionsergebnisse verliert, benutzt Natural for Db2
den File Server zur Unterstützung der Natural-Transaktionslogik. Wenn Sie im
Pseudo-Conversational Mode unter CICS arbeiten wollen, geben Sie im
Natural-Profilparameter DB2
den
Schlüsselwort-Subparameter FSERV=ON
an und
stellen Sie eine File Server-Datei in der CICS-Region bereit.
Wenn Sie keine File Server-Datei in der CICS-Region bereitstellen
und im Natural-Profilparameter DB2
der
Schlüsselwort-Subparameter CONVERS
auf ON
gesetzt ist, schaltet Natural for Db2 immer dann in den
Conversational Mode, wenn während einer offenen Datenbankschleife eine
Terminal-E/A stattfindet. Das bedeutet, dass die CICS-Transaktion über
Terminal-Ein-/Ausgaben erzeugt wird, solange es offene Datenbankschleifen gibt.
Dies kann zu Deadlocks bei Db2 führen, da Db2-Ressourcen über
Terminal-Ein-/Ausgaben zugeordnet werden.
Um Anwendungen zu unterstützen, die das implizite Commit bei CICS
Terminal-Ein-/Ausgaben nicht einsetzen und stattdessen ein explizites
ROLLBACK
oder COMMIT
codieren, um ihre
Datenbanktransaktion zu beenden, wurde ein Conversational Mode 2
eingeführt.
Conversational Mode 2 bedeutet, dass eine Db2-Update-Transaktion
über Terminal-Ein-/Ausgaben erzeugt wird, bis ein explizites
COMMIT
oder ROLLBACK
ausgegeben wird.
Der Conversational Mode 2 kann angefordert werden , indem im
Natural-Profilparameter DB2
der
Schlüsselwort-Subparameter CONVRS2=ON
gesetzt
wird, oder er kann durch den Aufruf des CALLNAT
-Programms
NDBCONV
dynamisch gesetzt oder zurückgesetzt werden.
Warnung: Diese Art von Anwendungen neigen dazu, CICS- und Db2-Ressourcen zu binden, da die Ressourcen über Terminal-Ein-/Ausgaben nicht freigegeben werden! |
Die Verwendung des File Servers wird gesteuert durch den
Schlüsselwort-Subparameter FSERV
im
Makro NTDB2
.
In einer CICS-Umgebung ist der File Server ein optionales Feature, um die Probleme bei der Umstellung auf konversationelle Verarbeitung zu lösen. Vor einer Bildschirm-Ein-/Ausgabe erkennt Natural, ob offene Cursors vorhanden sind, und speichert die in diesen Cursors enthaltenen Daten in den File Server. Mit dem File Server können Datenbankschleifen über Terminal-Ein-/Ausgaben hinweg fortgesetzt werden, aber Datenbankänderungen, die vor einer Terminal-Ein-/Ausgabe vorgenommen wurden, können nicht mehr rückgängig gemacht werden.
Ausführliche Informationen zum File Server siehe unter Natural File Server für DB2.
Unter IMS TM verwendet Natural die IMS Db2 Attachment Facility für den Zugriff auf Db2. Stellen Sie daher sicher, dass dieses Attachment gestartet ist.
In IMS TM-Transaktionsverarbeitungsumgebungen schließt Db2 alle Cursors und verliert dadurch alle Selektionsergebnisse, wenn das Programm zum Terminal zurückkehrt, um eine Antwortnachricht zu senden. Dieser Betriebsmodus unterscheidet sich von der Art und Weise, wie Db2 im Conversational Mode unter CICS oder in TSO-Umgebungen arbeitet, wo Cursor über die Terminal-Kommunikation hinweg geöffnet bleiben können und daher ausgewählte Zeilen für längere Zeit beibehalten werden können.
Die Verwendung des File Servers wird gesteuert durch den
Schlüsselwort-Subparameter FSERV
im
Makro NTDB2
.
Der File Server wird benötigt, um das Natural for Db2-Cursor-Management zu unterstützen, während IMS TM nach jeder Terminal-Ein-/Ausgabe-Operation ein implizites End-of-Transaction an Db2 ausgibt. Mit dem File Server können Datenbankschleifen über Terminal-Ein-/Ausgaben hinweg fortgesetzt werden, aber Datenbankänderungen, die vor einer Terminal-Ein-/Ausgabe vorgenommen wurden, können nicht mehr rückgängig gemacht werden.
Ausführliche Informationen zum File Server siehe unter Natural File Server für DB2.
Natural for Db2 kann unter TSO ausgeführt werden, ohne dass Änderungen an der Natural/TSO-Schnittstelle erforderlich sind.
Neben z/OS Batch kann die Batch-Umgebung für Natural auch der TSO
Background sein, der das TSO-Terminal-Monitorprogramm durch eine EXEC
PGM=IKJEFT01
-Anweisung in einem JCL-Stream aufruft.
Sowohl TSO-Online- als auch Batch-Programme können entweder unter der Kontrolle des DSN-Kommandos oder unter Verwendung der Call Attachment Facility (CAF) ausgeführt werden. Die CAF-Schnittstelle ist erforderlich, wenn Plan-Switching verwendet werden soll.
Die Verwendung des File Servers wird gesteuert durch den
Schlüsselwort-Subparameter FSERV
im
Makro NTDB2
.
In einer TSO-Umgebung ist der File Server ein optionales Feature, durch das während des Entwicklungsstatus eine zukünftige CICS- oder IMS TM-Produktionsumgebung emuliert werden kann.
Bei jeder Terminal-Ein-/Ausgabe gibt Natural ein
COMMIT WORK
-Kommando aus, um CICS- oder IMS
TM-Syncpoints zu simulieren. Daher können Datenbankänderungen, die vor einer
Terminal-Ein-/Ausgabe vorgenommen wurden, nicht mehr rückgängig gemacht
werden.
Ausführliche Informationen zum File Server siehe unter Natural File Server für DB2.
Wenn Sie Natural for Db2 unter TSO oder im Batch-Modus ausführen
und die CAF-Schnittstelle verwenden, müssen Sie NATPLAN
vor dem
ersten SQL-Aufruf explizit aufrufen, um den erforderlichen Db2-Plan
zuzuordnen.
NATPLAN
kann bearbeitet werden, um die entsprechende
Db2-Subsystem-ID anzugeben.
Wenn Sie in derselben Natural-Sitzung im Batch-Modus (nicht BMP) auf Db2 und DL/I zugreifen möchten, können Sie die Db2 DL/I Batch-Unterstützung nutzen, mit der Sie die Wiederherstellung von Db2- und DL/I-Datenbanksystemen koordinieren können.
Wenn Sie diese Möglichkeit nutzen wollen, müssen Sie die Prozedur
DLIBATCH
ausführen, um das Modul DSNMTV01
als
Anwendungsprogramm zu starten. DSNMTV01
wiederum führt den
Natural-Batch-Nukleus aus, der mit der Db2-Schnittstelle DFSLI000
verlinkt sein muss.
Wenn Ihr PSB mit CMPAT=YES
generiert wird, werden
alle Syncpoints ausgeführt, und Sie müssen ein
END
TRANSACTION
-Statement absetzen, bevor Sie Ihre
Natural-Sitzung beenden. Andernfalls gehen alle Datenbankänderungen verloren,
weil Natural am Ende der Sitzung implizit ein
BACKOUT
TRANSACTION
-Statement absetzt.
Wenn Ihr PSB mit CMPAT=NO
generiert wird, werden alle
Syncpoints ignoriert.
Predict, das offene, operationale Data Dictionary der Software AG für die Entwicklung mit der 4GL-Sprache Natural, ist ein zentrales Repository für Anwendungsmetadaten und bietet Dokumentations- und Cross-Reference-Funktionen. Mit Predict können Sie automatisch Code aus Definitionen generieren und so die Produktivität bei Entwicklung und Wartung steigern.
Da Db2 von Predict unterstützt wird, ist ein direkter Zugriff auf den Db2-Katalog über Predict möglich. Informationen aus dem Db2-Katalog können in das Predict-Datendiktionär übertragen werden, um sie in Datendefinitionen für andere Umgebungen zu integrieren.
Db2-Datenbanken, -Tabellen und -Sichten (Views) können eingebunden und verglichen werden, neue Db2-Tabellen und -Sichten können generiert werden, und Natural-DDMs können erzeugt und verglichen werden. Alle Db2-spezifischen Datentypen und die referenzielle Integrität von Db2 werden unterstützt. Details finden Sie in der entsprechenden Predict-Dokumentation.
Darüber hinaus unterstützen die aktiven Predict-Referenzen statisches SQL für Db2, wie unter WITH XREF Option in Programme für die statische Ausführung vorbereiten beschrieben.
Wenn das Programm in einer Umgebung ausgeführt wird, die von Natural Security kontrolliert wird, kann die Verwendung bestimmter Funktionen von Natural for Db2 durch den Security-Administrator eingeschränkt werden, z. B:
Zugriff auf die Natural System-Library SYSDB2
Einzelne Funktionen
Die statische Generierung kann wie folgt unterbunden werden:
Einschränkung des Zugriffs auf die Natural-System-Library
SYSDB2
,
Nichtzulassung des Moduls CMD,
Beschränkung des Zugriffs auf die Libraries, die die entsprechenden Natural-Objekte enthalten,
Nichtzulassung eines der Natural-Systemkommandos
CATALOG
oder STOW
für
eine Library, die relevante Natural-Objekte enthält.
Wenn eine Library in Natural Security definiert ist und die Datenbankkennung (DBID) und Dateinummer (FNR) dieser Library von den Standardangaben abweichen, schaltet das statische Generierungsverfahren automatisch auf die in Natural Security definierten DBID- und FNR-Angaben um.
Weitere Informationen erhalten Sie von Ihrem Security-Administrator.
In diesem Abschnitt werden die bekannten Inkompatibilitäten und Einschränkungen gegenüber Db2 aufgeführt, die auftreten können, wenn Natural for Db2 für den Zugriff auf Daten aus Db2 verwendet wird.
Datentyp DECIMAL oder NUMERIC
Die meisten SQL-Datenbanksysteme unterstützen gepackte
Dezimalzahlen mit einer maximalen Genauigkeit von 31 Ziffern und einer
Skalierung (Bruchteil der Zahl) von bis zu 31 Ziffern. Die Skalierung muss
positiv sein und darf nicht größer als die Genauigkeit sein. Natural erlaubt
eine Genauigkeit und Skalierung von bis zu 29 Ziffern.
Die Nummernbereiche von Natural-Systemmeldungen im Zusammenhang mit Db2 sind 3275 - 3286, 3700-3749 und 7386-7395.
Eine Liste der Fehlermeldungen, die bei der statischen Generierung ausgegeben werden können, finden Sie unter Static Generation Messages and Codes Issued under NDB in der Natural-Messages and Codes-Dokumentation.
Begriff | Erläuterung |
---|---|
Db2 (vormals: DB2) | Db2 bezieht sich auf IBMs Db2 UDB für z/OS. |
DBRM | Datenbankabfrage-Modul. |
DDM | Natural-Datendefinitionsmodul. |
DML | Datenmanipulationssprache (Natural). |
File Server | In diesem Dokument bezieht sich der Begriff "File Server" auf den Natural File Server für Db2. |
NDB | Dies ist der Produktcode von Natural for Db2. In dieser Dokumentation wird der Produktcode häufig als Präfix in den Namen von Dateien (Datasets), Modulen usw. verwendet. |