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

| Anwendung: | APPA | APPB | APPC |
| Transaktions-ID (nach converse): | AAAA | BBBB | CCCC |
| DB2-Plan: | PLANA | PLANB | PLANC |
...
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.
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.
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.