In z/OS CICS auf mehrere DB2-Pläne zugreifen.

Beim Erstellen eines Systems von Programmen, die auf DB2-Tabellen zugreifen, möchten Sie möglicherweise nicht alle Datenbankanforderungsmodule (DBRMs) für die einzelnen Programme in einen einzigen DB2-Plan binden.

Aus Gründen der Sicherheit und der Verwaltung möchten Sie auf einige DB2-Pläne möglicherweise in einem System von Programmen zugreifen. In diesem Abschnitt werden drei mögliche Methoden für den Zugriff auf mehrere DB2-Pläne in CICS for z/OS erläutert. In den ersten beiden Methoden wird beschrieben, wie die Transaktions-ID geändert wird. Bei der dritten Methode wird die Funktion für die dynamische DB2-Planauswahl verwendet.

Wenn Sie den DB2-Plannamen und die Transaktions-ID in der RDO-Definition DB2ENTRY oder DB2TRAN (RDO - Onlineressourcendefinition) zugeordnet haben, können Sie den DB2-Plannamen ändern, indem Sie die Transaktions-ID ändern. Weitere Informationen zu den RDO-Definitionen DB2ENTRY und DB2TRAN finden Sie im entsprechenden Handbuch zu den Ressourcendefinitionen für Ihre DB2-Version.

Mithilfe von 'sysVar.transactionID' auf DB2-Pläne zugreifen

Die EGL-Systemvariable sysVar.transactionID ermöglicht Ihnen, die ID der segmentierten Transaktion dynamisch zu ändern. Beim Ausführen eines segmentierten Programms wird der Wert in sysVar.transactionID als Transaktions-ID verwendet, um das Programm nach jeder converse-Anweisung sofort erneut zu starten. Im folgenden Diagramm sehen Sie ein einfaches Beispiel dafür, wie sysVar.transactionID verwendet wird, um die Transaktions-ID dynamisch zu ändern. Der Anfangswert für die Transaktions-ID ist dabei 'Menu'.

Abbildung 1. Beispiel für die Verwendung von 'sysVar.transactionID'Beispiel für die Änderung der Transaktions-ID
Tabelle 1. Änderungen an der Transaktions-ID
Anwendung: APPA APPB APPC
Transaktions-ID (nach converse): AAAA BBBB CCCC
DB2-Plan: PLANA PLANB PLANC
Bei diesem Beispiel stellt das Menüprogramm ein Menüformular mit drei Optionen um. Wenn der Benutzer eine Option auswählt, gibt das Menüprogramm die Anweisung transfer to program (Übertragung zu Programm) an das entsprechende taskorientierte Programm aus. Jedes der drei taskorientierten Programme verschiebt eine Transaktions-ID an sysVar.transactionID, stellt ein Formular um und ruft eine Zeile aus einer DB2-Tabelle ab. Die folgende Logik beispielsweise sollte in jedem der taskorientierten Programme verwendet werden:
...
sysVar.transactionID="AAAA"; // Neue Transaktions-ID festlegen
converseInfoform();          // Informationsformular für Benutzer anzeigen (converse)
readDB2Record();             // Daten aus einer DB2-Tabelle abrufen
...

Im Menüprogramm oder vor der Anweisung converse in den taskorientierten Programmen befinden sich keine SQL-Anweisungen.

Die Datenbankanforderungsmodule für die einzelnen taskorientierten Programme werden in einen einzigen DB2-Plan gebunden und in der RDO-Definition RDO DB2ENTRY oder DB2TRAN einer einzigen Transaktions-ID zugeordnet. Dies ist die Transaktions-ID, die vor der Anweisung converse in sysVar.transactionID verschoben wird. Nach der Anweisung converse startet eine neue Transaktion mit dem DB2-Plan, dem die neue Transaktions-ID zugeordnet ist.

Die Transaktions-IDs AAAA, BBBB und CCCC sind in der RDO-Definition DB2ENTRY den DB2-Plänen PLANA, PLANB bzw. PLANC zugeordnet.

Diese Zuordnungsmethode kann nur in segmentierten Programmen verwendet werden. Bei CICS-Programmen können Sie jedoch mit einer Anweisung transfer to transaction oder durch dynamische Auswahl eines DB2-Plans auf unterschiedliche DB2-Pläne zugreifen.

Mit der Anweisung 'transfer to transaction' auf DB2-Pläne zugreifen

Diese Methode ist nützlich, wenn Sie die Steuerung von einem Programm auf ein anderes mithilfe der Anweisung transfer to transaction (Übertragung zu Transaktion) übertragen. Die Transaktions-ID wird geändert, wenn Sie mithilfe der Anweisung transfer to transaction eine Übertragung von einem Programm auf ein anderes vornehmen. Dies gibt Ihnen Zugriff auf einen neuen DB2-Plan, wenn Sie die neue Transaktions-ID in der RDO-Definition DB2ENTRY einem anderen DB2-Plan zugeordnet haben.

DB2-Plan dynamisch auswählen

Diese Methode verwendet die dynamische Auswahl von DB2-Plänen, wodurch Sie die Möglichkeit haben, einen DB2-Plannamen für eine z/OS-CICS-Transaktion dynamisch auszuwählen. Durch die dynamische DB2-Planauswahl haben Sie die Option, einen PLANEXITNAME in der RDO-Definition DB2ENTRY statt eines DB2-Plannamens zu definieren. Das Exitprogramm wählt einen DB2-Plan für die z/OS CICS-Transaktion aus. Mit dieser Funktion können Sie mehrere Pläne einer einzigen Transaktions-ID zuordnen. Weitere Informationen zur dynamischen Auswahl von DB2-Plänen finden Sie in der Dokumentation zu Ihrem DB2-System.

Die erste SQL-Anweisung in einer logischen Arbeitseinheit (LUW) startet das Exitprogramm.


Feedback