トランザクション・データベース上に SQL ステートメントが含まれるパッケージを作成し、そのパッケージをバインドした後、リポジトリー内の pureQuery Runtime プロパティーと pureQueryXML データを更新して、アプリケーションで SQL ステートメントを静的に実行できるようにします。
アプリケーションが pureQuery プロパティーをリフレッシュすると、SQL ステートメントが静的に実行されます。
このタスクについて
実行時グループ内のデータを更新し、リポジトリー内のバージョンを作成するには、ManageRepository ユーティリティーを使用します。以下の操作を実行します。
- pureQueryXML ファイル内のデータをアップロードします。
- pureQuery Runtime プロパティーを更新します。
- リポジトリー内の実行時グループ・バージョンをアクティブにします。
手順
SQL を静的に実行するように pureQuery Runtime プロパティーを更新するには、次のようにします。
- pqtest.properties ファイルのローカル・バージョンを更新し、executionMode プロパティーの値を STATIC に設定します。
ファイルに以下のテキストを指定します。
pdq.captureMode=ON
pdq.allowDynamicSQL=TRUE
pdq.executionMode=STATIC
pureQueryXML ファイルに SQL ステートメントが指定されている場合は、この pureQuery Runtime の設定によって、アプリケーションが SQL ステートメントを静的に実行します。アプリケーションが pureQueryXML ファイルに指定されていない SQL ステートメントを実行すると、ステートメントはキャプチャーされ、動的に実行されます。
- リポジトリー内の実行時グループのバージョンを作成します。
実行時グループ testApp のバージョン V2 を作成します。pureQuery Runtime プロパティーと pureQueryXML データをリポジトリーにアップロードします。
以下の ManageRepository コマンドを実行すると、実行時グループ・バージョンが作成されます。
java com.ibm.pdq.tools.ManageRepository -create runtimeGroup
-repositoryDriverClass com.ibm.db2.jcc.DB2Driver
-repositoryURL "jdbc:db2://testserver.test.com:32706/sample"
-repositoryUsername "myuser" -repositoryPassword "mypwd"
-runtimeGroupId testApp
-runtimeGroupVersion V2
このコマンドに対する出力は、以下のサンプルのようになります。
IBM Optim pureQuery runtime 2.2.0.3 build 2.18.118
Licensed Materials - Property of IBM
5724-U16
(c) Copyright IBM Corp. 2006, 2010 All Rights Reserved.
=========================================================
Starting to process options: -create "runtimeGroup"
-bind "packages" -runtimeGroupVersion "V2"
-repositoryURL "jdbc:db2://testserver.test.com:32706/sample"
-repositoryUsername "myuser" -repositoryPassword "******"
-repositoryDriverClass "com.ibm.db2.jcc.DB2Driver"
-runtimeGroupId "testApp"
The ManageRepository utility successfully created the runtime group "testApp" version "V2".
- リポジトリー内の実行時グループ・バージョンを、pqtest.properties ファイルおよび pureQueryXML ファイル内のデータで更新します。
以下のコマンドを実行します。
java com.ibm.pdq.tools.ManageRepository
-update runtimeGroup
-repositoryDriverClass com.ibm.db2.jcc.DB2Driver
-repositoryURL "jdbc:db2://testserver.test.com:32706/sample"
-repositoryUsername "myuser" -repositoryPassword "mypwd"
-runtimeGroupId testApp
-pureQueryProperties ./pqtest.properties
-pureQueryXml ./testApp.pdqxml
-runtimeGroupVersion V2
このコマンドに対する出力は、以下のサンプルのようになります。
IBM Optim pureQuery Runtime 2.2.0.3 build 2.18.118
Licensed Materials - Property of IBM
5724-U16
(c) Copyright IBM Corp. 2006, 2010 All Rights Reserved.
===================================================
Starting to process options: -update "runtimeGroup" -runtimeGroupVersion "v1"
-repositoryURL "jdbc:db2://testserver.test.com:32706/sample"
-repositoryUsername "*****" –repositoryPasword "*****"
-pureQueryProperties ".¥pqtest.properties"
-pureQueryXml "capture.pdqxml"
-runtimeGroupId "testApp"
The ManageRepository utility successfully updated the runtime group "testApp" version "V2".
- 実行時グループ testApp 内の V2 バージョンをアクティブ化します。
以下のコマンドを実行します。
java com.ibm.pdq.tools.ManageRepository -activate runtimeGroup
-repositoryDriverClass com.ibm.db2.jcc.DB2Driver
-repositoryURL "jdbc:db2://testserver.test.com:32706/sample"
-repositoryUsername "myuser"
-repositoryPassword "mypwd"
-runtimeGroupId testApp
-runtimeGroupVersion V2
バージョン V2 をアクティブ化すると、バージョン V1 が自動的に非アクティブ化されます。pureQuery Runtime は、pureQuery 情報をリポジトリー内の実行時グループのアクティブ・バージョンから取得します。
このコマンドに対する出力は、以下のサンプルのようになります。
IBM Optim pureQuery Runtime 2.2.0.3 build 2.18.118
Licensed Materials - Property of IBM
5724-U16
(c) Copyright IBM Corp. 2006, 2010 All Rights Reserved.
========================================
Starting to process options: -activate "runtimeGroup" -runtimeGroupVersion "V2"
-repositoryURL "jdbc:db2://testserver.test.com:32706/sample"
-repositoryUsername "*****" -repositoryPassword "*****"
-runtimeGroupId "testApp"
The ManageRepository utility successfully activated the runtime group "testApp" version "V2".
タスクの結果
このアプリケーションに対して、pureQuery Runtime のリフレッシュ間隔プロパティー propertiesRefreshInterval が 2 分に設定されました。更新された pureQuery Runtime プロパティーは、2 分後に有効になります。executionMode プロパティーの値を STATIC に設定すると、アプリケーションは SQL ステートメントを静的に実行します。
実行時グループ testApp のバージョン V2 では、pureQuery Runtime プロパティー captureMode が ON に設定されています。
pureQuery Runtime は引き続きアプリケーションから SQL データをキャプチャーします。
アプリケーションからキャプチャーされていない SQL ステートメントがある場合は、キャプチャーされた SQL と pureQueryXML データを抽出し、SQL ステートメントをマージ、構成、およびバインドしてから、更新された pureQueryXML ファイルをリポジトリーにアップロードする、というプロセスを繰り返します。
実行時グループ testApp のバージョン V1 の pureQuery データは変更されません。
バージョン V1 をアクティブ化して、以前の pureQuery Runtime 設定に戻すことができます。
注: SQL ステートメントが静的に実行されるかどうかを確認する方法の 1 つとして、パッケージのドロップがあります。データベースからパッケージ TESTAPP をドロップすると、アプリケーションは、pureQueryXML ファイル内にリストされた SQL ステートメントを実行できなくなります。
pureQueryXML ファイルで StaticBinder ユーティリティーを実行してパッケージを再作成すると、アプリケーションは SQL ステートメントを静的に実行します。
Tivoli® OMEGAMON® XE for DB2® on z/OS® などのデータベース・モニタリング・ツールを使用して、SQL が静的に実行されていることを検証することもできます。
次のタスク
この一連のタスクでは、pureQuery クライアントの最適化を使用して WebSphere® アプリケーションを構成する方法を示し、データベース内のリポジトリーを使用して pureQuery Runtime プロパティーと pureQuery のキャプチャーされた SQL データを保管する方法を示しました。