pureQuery ランタイム・プロパティーを使用して、pureQuery Runtime が pureQuery 情報を取得し、キャプチャーした SQL データを保管するために使用するロケーションを制御できます。
以下のシナリオでは、pureQuery ランタイム・プロパティーを使用して、pureQuery Runtime によるさまざまなストレージ・ロケーションの使用法を制御する方法について説明します。
pureQuery クライアント最適化およびリポジトリーを使用するようにアプリケーションを構成
以下のステップでは、pureQuery クライアント最適化で
最初にリポジトリーを使用する方法について概説します。
- データベース管理者は SQL 管理リポジトリーを作成します。
- 管理者は、リポジトリー内に少なくとも 1 つのランタイム・グループ・バージョンを作成します。
- アプリケーション管理者は、ランタイム・グループ・バージョンに以下の pureQuery ランタイム・プロパティーを設定します。
その pureQuery ランタイム・プロパティーは、データベース管理者がランタイム・グループ・バージョンにアップロードします。
- executionMode
- 値は DYNAMIC に設定されます。
- captureMode
- 値は ON に設定されます。
- propertiesRefreshInterval
- 値は 1 (1 分) に設定されます。
その他の pureQuery ランタイム・プロパティーは、必要に応じてアプリケーションに設定されます。
ランタイム・グループ・バージョンには、pureQueryXML データは含まれません。
- データベース管理者は、ランタイム・グループ・バージョンをアクティブ化します。
- pureQuery クライアント最適化を使用するよう構成されたアプリケーションでは、アプリケーション管理者が、以下の pureQuery ランタイム・プロパティーを SQL 管理リポジトリーから pureQuery データを取得するように指定します。
- finalRepositoryProperties
- 事前に作成したリポジトリーを指定します。
- propertiesGroupId
- 事前に作成した pureQuery ランタイム・グループを指定します。
- repositoryRequired
- 値はアプリケーション管理者が指定した動作に設定されます。
- propertiesRefreshInterval
- 値は 1 (1 分) に設定されます。
- アプリケーション管理者はアプリケーションを開始します。
- アプリケーションが実行します。pureQuery クライアント最適化は、SQL データをキャプチャーし、ランタイム・グループ・データの一部としてリポジトリーに保管します。
- データベース管理者は、以下のステップを実行して、
キャプチャーした SQL を pureQuery クライアント最適化で使用する準備を整えます。
- ManageRepository ユーティリティーを使用して、
キャプチャーした SQL データおよびその他の pureQuery データをリポジトリーから抽出します。
- 必要に応じて、キャプチャーした SQL データを単一の pureQueryXML ファイルにマージします。
- pureQueryXML ファイルを構成します。
- StaticBinder ユーティリティーを使用して、pureQueryXML ファイル内の SQL ステートメントからアプリケーション・データベース上にパッケージを作成し、そのパッケージをデータベースにバインドします。
- データベース管理者は、以下の pureQuery データを、既存のランタイム・グループの新バージョンにあるリポジトリーにアップロードします。
- pureQueryXML データ。
- 以下の pureQuery ランタイム・プロパティー。
- executionMode
- 値は STATIC に設定されます。
- allowDynamicSQL
- 値は TRUE に設定されます。
- captureMode
- 値は OFF に設定されます。このプロパティーを ON に設定すると、
アプリケーションから追加の SQL ステートメントをキャプチャーできます。
- propertiesRefreshInterval
- 1 分のままになります。
- データベース管理者は、新ランタイム・グループ・バージョンをアクティブに設定します。
- pureQuery 対応のアプリケーションは、pureQuery 情報に対する変更を検査して pureQuery 情報を更新した後、キャプチャーされてデータベースにバインドされたステートメントの静的 SQL ステートメントを呼び出します。
注: WHERE CURRENT OF を使用する一部の SQL ステートメントが長い実行時間を必要とする場合、その実行時間が原因で静的 SQL ステートメントの使用が遅延することがあります。
- データベース管理者は、この処理を繰り返し、引き続きアプリケーションから SQL データをキャプチャーし、pureQuery 情報を更新して、他の pureQuery フィーチャーをテストすることができます。
アプリケーション・サーバー管理者は、データベース管理者によるテストの間は、アプリケーションを再始動する必要はありません。
既存のアプリケーションをリポジトリーを使用するように構成
pureQuery クライアント最適化対応の既存のアプリケーションを、
SQL 管理リポジトリーを使用するように構成できます。
アプリケーションがリポジトリーの pureQuery データを使用している場合、データベース管理者は、アプリケーションを再デプロイすることなく、リポジトリー内の pureQuery データを変更できます。
以下のステップでは、pureQuery ランタイム・プロパティーおよび pureQueryXML データをリポジトリーに移動する方法について概説します。
これらのステップは、以下の環境を想定しています。
- アプリケーションが現在 pureQuery クライアント最適化を使用しており、静的 SQL を実行している。
- pureQuery プロパティーおよび pureQueryXML がアプリケーションの EAR ファイルおよび DataSource.pdqProperties 内にある。
- アプリケーション管理者は、アプリケーションが現在使用している pureQuery プロパティーを判別します。
注: 現行のプロパティー設定を確認するため、管理者は JCC トレースを使用して現行のプロパティーを表示することができます。
- アプリケーション管理者は、現行の pureQueryXML ファイルを入手します。
例えば、EAR ファイルかソース・コード制御システムからファイルを抽出します。
- アプリケーション管理者は、すべての現行のプロパティーおよび値を含んだ pureQuery プロパティー・ファイルを作成します。
注: pureQueryXml プロパティーは、ファイルに含まれません。
finalRepositoryProperties および propertiesGroupId プロパティーは、
pureQueryXML ファイルのロケーションを指定します。
- データベース管理者は、SQL 管理リポジトリーが存在しなければ作成します。
- データベース管理者はリポジトリー内にランタイム・グループ・バージョンを作成し、アプリケーション管理者から pureQuery ランタイム・プロパティー・ファイルおよび pureQueryXML ファイルをアップロードします。
- データベース管理者は、ランタイム・グループ・バージョンをアクティブ化します。
- アプリケーション管理者は、アプリケーションが始動時にリポジトリーから pureQuery 情報を取得するために使用する pureQuery ランタイム・プロパティーを更新します。
- finalRepositoryProperties
- アプリケーションの pureQueryXML データおよびランタイム・プロパティーを含んでいるリポジトリーを指定します。
- propertiesGroupId
- リポジトリー内のランタイム・グループを指定します。
- repositoryRequired
- アプリケーション管理者が指定した動作に設定されます。
- アプリケーション管理者は、pureQuery ランタイム・プロパティーを以下のロケーションのいずれかに追加します。
- そのデータ・ソースを使用するすべてのアプリケーションがリポジトリーを使用可能な場合は、DataSource.pdqProperties。
- アプリケーションが 1 つのデータ・ソースのみを使用する場合は、EAR ファイル内の pdq.appwide.properties。
- EAR ファイル内の pdq.targetDSName.properties。ここで、targetDSName はリポジトリー・プロパティーおよび pureQueryXML データを参照するデータ・ソースの名前です。
注: EAR ファイルが変更された場合、アプリケーション管理者はその更新後の EAR ファイルを再デプロイする必要があります。
- アプリケーション管理者はアプリケーションを再デプロイして開始します。
アプリケーションは pureQuery ランタイム・プロパティーおよび pureQueryXML データをリポジトリー内のランタイム・グループ・バージョンから取得します。
キャプチャーした SQL データと共にリポジトリーに保管される pureQueryXML データの更新
以下のステップでは、リポジトリーに保管されるキャプチャーした SQL データの使用法について概説します。
これらのステップは、以下の環境を想定しています。
- pureQuery クライアント最適化を使用するように構成されたアプリケーションが静的 SQL を呼び出しており、インクリメンタル・キャプチャーが有効になっている。
- pureQuery プロパティーおよびキャプチャーした SQL データがリポジトリー内にあり、propertiesRefreshInterval プロパティーの値が 60 (1 時間) である。
データベース管理者は以下のステップを実行します。
- キャプチャーした SQL を、リポジトリー内のランタイム・グループから抽出し、必要に応じて、pureQueryXML データおよび構成データを抽出します。
ManageRepository ユーティリティーを使用します。
注: キャプチャーした SQL データは取得中であるため、
captureMode プロパティーは ON に設定されたままになります。
SQL データは依然としてキャプチャーされています。
ただし、ManageRepository ユーティリティーは、キャプチャーした SQL データの完全なセットのみを抽出します。
- Merge、Configure、および StaticBinder の各ユーティリティーを使用して
新規 pureQueryXML ファイルを作成し、その pureQueryXML ファイル内の SQL ステートメントをデータベースにバインドします。
- 新しい pureQueryXML および pureQuery ランタイム・プロパティーを、リポジトリー内のランタイム・グループの新バージョンにアップロードします。
- オプション: pureQueryXML ファイルにマージ後の、キャプチャーした SQL データを削除します。
- 新ランタイム・グループ・バージョンをアクティブに設定します。
1 時間以内に、アプリケーションが使用する pureQuery Runtime がリポジトリー内の更新された pureQuery データを検査し、ランタイム・グループの新バージョンで更新後の pureQueryXML データおよび pureQuery プロパティーを使用します。
注: ワークベンチを使用している場合、リポジトリーに接続し、「ランタイム・グループ作業用コピー・エディター」を使用してランタイム・グループ・バージョンの pureQuery データを管理できます。