シナリオ: 実稼働環境での pureQuery クライアント最適化で使用される SQL 情報の更新

このシナリオでは、実稼働環境でアプリケーション・サーバーを再始動することなく、pureQuery クライアント最適化で使用される pureQueryXML ファイル内の SQL 情報を更新できます。
実稼働環境で pureQuery クライアント最適化で使用される SQL ステートメントをキャプチャーすることは推奨されません。 SQL ステートメントをキャプチャーしている間、パフォーマンスが低下する可能性があり、キャプチャーのためにアプリケーションを停止する必要がある場合があります。しかし、実稼働環境では、アプリケーションが発行する SQL ステートメントを更新する必要がある場合があります。以下のようなシチュエーションでは、新規 SQL ステートメントを実稼働環境でキャプチャーする必要があります。
  • pureQuery Runtime を使用して SQL ステートメントをキャプチャーするテスト環境を用意できない。
  • 更新が保守変更として行われ、保守グループにテスト環境でアプリケーションを隔離するためのリソースがない。

実稼働環境での SQL ステートメントのキャプチャーをサポートするために、pureQuery 対応アプリケーションと分かれているファイル・システムまたはデータベース内のリポジトリーに pureQuery 構成情報を保管するように、pureQuery クライアント最適化を使用するアプリケーションを構成できます。pureQuery Runtime は、絶えず SQL データをキャプチャーし、キャプチャーした SQL を指定したロケーションに保管します。データベース管理者は、そのロケーションからキャプチャーした SQL データを取り出し、pureQuery Merge、Configure、および StaticBinder ユーティリティーを使用して、アプリケーションを再始動することなく SQL を更新して、トランザクション・データベース上で静的に実行されるようにします。

次の図は、実働 WebSphere® Application Server 環境での継続プロセスのある時点における描写を示しています。

図 1. 継続保守を使用した実稼働環境での pureQuery クライアント最適化
実稼働環境での継続保守を使用した pureQuery クライアント最適化

この図では、個々のアプリケーション・インスタンスが pureQuery クライアント最適化に対応しており、静的に SQL ステートメントを実行しています。 個々のアプリケーションは、pureQuery プロパティーおよび pureQueryXML データを取得するために、トランザクション・データベースと分かれたデータベースのリポジトリーを使用しています。リポジトリーには、pureQuery Runtime によってキャプチャーされた SQL データも保管されます。スクリプトは、キャプチャーした SQL データと pureQuery Runtime によって使用される pureQueryXML データを取り出し、キャプチャーした SQL を pureQueryXML データとマージし、DB2® パッケージを更新して SQL を静的に実行し、pureQueryXML データをリポジトリーに保管します。pureQuery 情報および DB2 パッケージを更新するのに、アプリケーション・インスタンスを再始動する必要はなく、データベース管理者はスクリプトを実行するタイミングをコントロールできます。

例えば、pureQuery クライアント最適化に対応した既存の実動 Web アプリケーションを、それが発行する SQL ステートメントに影響を与える変更内容で更新すると仮定します。キャプチャー・モードで実行するように pureQuery クライアント最適化を構成すると、アプリケーションは pureQueryXML ファイルにある SQL ステートメントを静的に実行します。同時に、アプリケーションの新規 SQL ステートメントは動的に実行され、pureQuery Runtime によってキャプチャーされてリポジトリーに保管されます。更新済みのアプリケーションからキャプチャーした SQL データには、実行カウントや最後に使用された日付、新規スタック・トレース、特殊レジスター情報、バッチ処理についての情報などのメタデータおよび統計が含まれています (それらの情報に変更があった場合)。

pureQuery Merge ユーティリティーを使用して、新しくキャプチャーした SQL データを処理し、それを pureQuery Runtime によって使用される pureQueryXML ファイル内の既存ステートメントに適用できます。Merge ユーティリティーを使用して、長期間実行されなかったステートメントを削除することもできます。

データベース管理者は、キャプチャーした SQL データをリポジトリーから取り出し、Merge ユーティリティーを実行してデータを、Web アプリケーションで pureQuery Runtime によって使用される pureQueryXML ファイルとマージし、更新した pureQueryXML ファイルを構成し、バインドしてからリポジトリーにアップロードできます。

注: 図では、pureQuery Runtime によって使用される pureQueryXML ファイルと pureQuery Runtime によってキャプチャーされる SQL データが同じリポジトリーにあります。pureQueryXML および pureQuery ランタイム・プロパティーと分かれたリポジトリーにキャプチャーした SQL を保管するように pureQuery Runtime を構成できます。

フィードバック