理想的な環境で、pureQuery クライアント最適化に対応したアプリケーションを実行し、SQL データをキャプチャーして、実稼働環境と同じ環境で SQL の静的な実行をテストします。ただし、同一のテスト環境と実稼働環境を用意できない場合があります。例えば、テスト・システムで、DB2® for Linux, UNIX, and Windows を使用するが、実稼働環境では、DB2 for z/OS® を使用する場合があります。
pureQuery クライアント最適化に対応したアプリケーションをマイグレーションするときに、pureQueryXML ファイル内のパッケージおよびコレクション名など、DB2 パッケージの特性を変更する必要がある場合があります。実動固有のオプションを指定して pureQueryXML ファイルに対して Configure ユーティリティーを実行した後に、StaticBinder ユーティリティーを使用すると、パッケージを実動データベースに作成し、パッケージをデータベースにバインドできます。
pureQuery ランタイム・プロパティーおよび pureQueryXML データも実稼働環境で使用するためにマイグレーションします。finalRepositoryProperties プロパティー、captureMode プロパティー、および allowDynamicSQL プロパティーを変更する必要がある場合があります。
リポジトリーを使用している場合は、実稼働環境にもリポジトリーを作成し、アプリケーションの実行時グループ・バージョンを作成して、pureQuery ランタイム・プロパティー情報および pureQueryXML ファイルをリポジトリーにアップロードします。
このシナリオの前のタスクで、pureQuery クライアント最適化を使用するアプリケーションをテスト・システム上で構成しました。テストが完了したので、これから pureQueryXML ファイル内の SQL ステートメントを実動データベースにバインドしようとしています。次の例では、実動コレクションが PRODCOL および QUALIFIER PROD であると仮定しています。したがって、パッケージが認識されるようにデータ・ソースを正しい packagePath 設定で更新します。また、このトピックの例では、実動データベースがパッケージ名 PRODPKG のパッケージ命名規則を使用すると仮定しています。
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
ファイルを取得したら、適切なオプションを指定して、pureQuery Configure および StaticBinder ユーティリティーを pureQueryXML ファイルに対して実行します。
java com.ibm.pdq.tools.Configure -pureQueryXml prodApp.pdqxml –validateXml true –collection PRODCOL -rootPkgName PRODAPPL -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
オプション -showDetails true を指定すると、StaticBinder ユーティリティーによって、それが生成する DB2 パッケージについてのサマリー情報が表示されます。
StaticBinder オプション -isolationLevel CS は、StaticBinder が分離レベルとしてカーソル固定 (CS) を使用して単一パッケージを作成することを指定します。CS 分離レベルは、DB2 for Linux, UNIX, and Windows データベースのデフォルト・レベルです。
The StaticBinder utility is beginning to bind the pureQueryXml file capture.xml. Starting to process options : -username "*****" -password "*****" -url "jdbc:db2://prodserver.prod.com" -pureQueryXml prodApp.pdqxml -isolationLevel "CS" -bindOptions "QUALIFIER PROD" The StaticBinder utility successfully bound the package 'PRODAPPL2' for the isolation level 'CS'.
アプリケーションを実稼働環境にマイグレーションするときに、整合性トークンおよびパッケージ・バージョンなどの静的 SQL 識別情報を変更する必要がある場合があります。
例
実行時に、WebSphere JDBC プロバイダーのカスタム・プロパティー currentPackageSet が WebSphere Application Server データ・ソースで PRODCOL1B に設定されていない場合は、pureQueryXML ファイル内のコレクション PRODCOL が使用されます。パッケージは STLEC1B では見つからず、SQLCODE 805 がアプリケーションに返されます。
動的 SQL ステートメントを使用する場合、データ・ソース・プロパティー currentPackagePath を指定する必要があります。 JDBC 動的パッケージをコレクション NULLID にバインドする場合、WebSphere Application Server データ・ソースでの currentPackagePath プロパティーの値を PRODCOOL1B,NULLID に設定する必要があります。
例
pureQueryXML ファイル内の SQL ステートメントが、コレクション PRODCOL を含むテスト用のロケーション、例えば、STLEC にバインドされている場合。BIND COPY コマンドを使用すると、コレクション PRODCOL1B を含む実動ロケーション STLEC1B にパッケージをコピーできます。