理想的な環境で、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 -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
オプション -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 プロパティーの 値を PRODCOL1B,NULLID に設定する必要があります。
例
pureQueryXML ファイル内の SQL ステートメントが、コレクション PRODCOL を含むテスト用のロケーション、例えば、STLEC にバインドされている場合。BIND COPY コマンドを使用すると、コレクション PRODCOL1B を含む実動ロケーション STLEC1B にパッケージをコピーできます。