In diesem Kapitel 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 oder VSAM. Die Natural-Schnittstelle zu Db2 ermöglicht Natural-Programmen den Zugriff auf Db2-Daten mit denselben nativen Natural-Statements zur Datenmanipulation (Data Manipulation Language), die auch für Adabas und VSAM verfügbar sind. Daher können Programme, die für Db2-Tabellen geschrieben wurden, auch für den Zugriff auf Adabas- und VSAM-Datenbanken verwendet werden. Darüber hinaus sind Natural SQL DML-Statements 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-Statements 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.
Predict, das offene, operationale Data Dictionary 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.
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 (NATxxxx) im Zusammenhang mit Db2 sind 3275 - 3286, 3700-3749 und 7386-7395. Kurz- und Langtexte dieser Meldungen (in englischer Sprache) finden Sie in der Natural-Messages and Codes-Dokumentation.
Beschreibungen der Meldungen und Codes, die bei der statischen Generierung ausgegeben werden können, finden Sie unter Meldungen und Codes der statischen Generierung unter NDB in der Meldungen und Codes-Dokumentation.