In einer idealen Umgebung führen Sie die für die pureQuery-Clientoptimierung aktivierte Anwendung aus, erfassen Sie SQL-Daten und testen Sie die statische SQL-Ausführung in einer Umgebung, die mit der Produktionsumgebung identisch ist. Identische Test- und Produktionsumgebungen sind jedoch nicht immer möglich. Beispielsweise verwenden Testsysteme möglicherweise DB2 for Linux, UNIX, and Windows, während die Produktionsumgebung DB2 for z/OS verwendet.
Beim Migrieren einer für die pureQuery-Clientoptimierung aktivierten Anwendung müssen Sie möglicherweise die Merkmale der DB2-Pakete wie die Paket- und Objektgruppennamen ändern, die sich in der pureQueryXML-Datei befinden. Nach der Ausführung des Dienstprogramms Configure für die pureQueryXML-Datei mit produktionsspezifischen Optionen können Sie die Pakete mit dem Dienstprogramm StaticBinder in der Produktionsdatenbank erstellen und sie für die Datenbank binden.
Sie können auch die in der Produktionsumgebung zu verwendenden pureQuery Runtime-Eigenschaften und pureQueryXML-Daten migrieren. Sie müssen möglicherweise die Eigenschaften finalRepositoryProperties, captureMode und allowDynamicSQL modifizieren.
Wenn Sie ein Repository verwenden, können Sie auch ein Repository in der Produktionsumgebung erstellen, die Laufzeitgruppenversion für die Anwendung erstellen und pureQuery Runtime-Eigenschaftsinformationen sowie die pureQueryXML-Datei in das Repository hochladen.
In den vorherigen Tasks im Szenario haben Sie eine Anwendung für die pureQuery-Clientoptimierung auf einem Testsystem konfiguriert. Nach dem Abschluss der Tests wollen Sie nun die SQL-Anweisungen in der pureQueryXML-Datei für die Produktionsdatenbank binden. Im folgenden Beispiel wird vorausgesetzt, dass die Produktionsobjektgruppe PRODCOL und QUALIFIER PROD ist. Sie aktualisieren dementsprechend die Datenquelle mit der richtigen Einstellung packagePath, damit die Pakete erkannt werden. Bei den Beispielen in diesem Thema wird auch vorausgesetzt, dass die Produktionsdatenbank den Paketnamen PRODPKG verwendet.
java com.ibm.pdq.tools.ManageRepository -extract runtimeGroup -repositoryDriverClass com.ibm.db2.jcc.DB2Driver -repositoryURL "jdbc:db2://testserver.test.com:32706/sample" -repositoryUsername "myuser" -repositoryPassword "mypwd" -runtimeGroupId testApp -runtimeGroupVersion V2 -outputDirectory C:\TEMP\out –pureQueryXml prodApp.pdqxml
Nach dem Abrufen der Datei führen Sie die pureQuery-Dienstprogramme Configure und StaticBinder für die pureQueryXML-Datei mit den entsprechenden Optionen aus.
java com.ibm.pdq.tools.Configure -pureQueryXml prodApp.pdqxml –validateXml true –collection PRODCOL -rootPkgName PRODAPPL -replaceSchemas "(TEST>PROD)" -cleanConfigure true
java com.ibm.pdq.tools.StaticBinder –url jdbc:db2://prodserver.prod.com:446/STLEC1” -username "myuser" -password "mypwd" -isolationLevel CS -bindOptions "QUALIFIER PROD" -pureQueryXml prodApp.pdqxml -showDetails true
Wenn Sie die Option -showDetails true angeben, zeigt das Dienstprogramm StaticBinder Übersichtsdaten zu den erstellten DB2-Paketen an.
Die StaticBinder-Option -isolationLevel CS gibt an, dass StaticBinder ein einzelnes Paket mit der Isolationsstufe CS (Cursorstabilität) erstellt. Die Isolationsstufe CS ist die Standardstufe für Datenbanken von DB2 for Linux, UNIX, and Windows.
Das Dienstprogramm StaticBinder beginnt, die pureQueryXml-Datei capture.xml zu binden. Start der Verarbeitung von Optionen: -username "*****" -password "*****" -url "jdbc:db2://prodserver.prod.com" -pureQueryXml prodApp.pdqxml -isolationLevel "CS" -bindOptions "QUALIFIER PROD" Das Dienstprogramm StaticBinder hat das Paket 'PRODAPPL2' für die Isolationsstufe 'CS' erfolgreich gebunden.
Bei der Migration einer Anwendung in eine Produktionsumgebung müssen möglicherweise Identifikationsinformationen für statisches SQL wie Konsistenztokens und Paketversionen geändert werden.
Beispiel
Wenn die angepasste WebSphere-JDBC-Provider-Eigenschaft currentPackageSet während der Ausführung für die WebSphere Application Server-Datenquelle nicht auf PRODCOL1B gesetzt ist, wird die Objektgruppe PRODCOL in der pureQueryXML-Datei verwendet. Das Paket wird auf STLEC1B nicht gefunden und SQLCODE 805 wird an die Anwendung zurückgegeben.
Wenn Sie über dynamische SQL-Anweisungen verfügen, müssen Sie die Datenquelleneigenschaft currentPackagePath angeben. Wenn die dynamischen JDBC-Pakete für die Objektgruppe NULLID gebunden sind, müssen Sie den Wert der Eigenschaft currentPackagePath für die WebSphere Application Server-Datenquelle auf PRODCOL1B,NULLID setzen.
Beispiel
Wenn die SQL-Anweisungen in der pureQueryXML-Datei zum Testen für einen Standort gebunden sind, z. B. STLEC mit der Objektgruppe PRODCOL, können Sie das Paket mit dem Befehl BIND COPY an den Produktionsort STLEC1B mit der Objektgruppe PRODCOL1B kopieren.