データ・ソースを共有する Web アプリケーションからの SQL ステートメントのキャプチャー

複数の Web アプリケーションでデータ・ソースを共有する場合は、各アプリケーションに固有のクライアント最適化プロパティーを設定することができます。

このタスクについて

アプリケーション固有のプロパティーを設定するときに、プロパティーの変更、SQL ステートメントのキャプチャー、pureQueryXML ファイルの構成、またはアプリケーションの SQL のバインディングを行っても、データ・ソースを共有している他のアプリケーションには影響を与えません。 これらの操作のいずれかを 2 つ以上のアプリケーションで同時に実行することもできます。この場合、一方のアプリケーションでの操作がもう一方のアプリケーションでの操作を妨げることはありません。ただし、これは 1 つ以上のアプリケーションがアプリケーション・サーバーで実行されたステートメント・キャッシングに依存しない場合に限ります。

実際、アプリケーションに固有のクライアント最適化プロパティーを変更する場合に、すべてのアプリケーションを実行しているアプリケーション・サーバーを再始動する必要はありません。 代わりに、1 つのアプリケーションのみを再始動します。

ただし、pdq.properties ファイル内のプロパティーまたは DataSource オブジェクトに設定されているプロパティーを変更する場合は、アプリケーション・サーバーを再始動する必要があります。 これらのロケーションに設定する可能性のあるプロパティーによって、pureQuery がクライアント最適化に関するエラー・メッセージをログに記録するかどうかが決まります。 これらのロケーションでのプロパティーの設定について詳しくは、クライアント最適化に関するプロパティーの設定方法を参照してください。

手順

例えば、Application1 と Application2 という 2 つの Web アプリケーションが WebSphere® Application Server で実行されているとします。Application1 で SQL ステートメントを動的に実行し、Application2 で SQL を静的に実行できるように、両方のアプリケーションに対してクライアント最適化を構成する必要があります。

Application1 では、OrdersDS と ItemsDS の 2 つのデータ・ソースを使用します。 Application2 でも、これらのデータ・ソースのうちの 1 つである OrdersDS を使用します。

簡単な構成をセットアップする手順を以下に示します。ここでは、ロギングやオプションのクライアント最適化プロパティーは使用しません。

Application1 をセットアップして実行するには、次の手順に従ってください。

  1. WebSphere Application Server で、2 つのデータ・ソースのそれぞれに対して、IBM® Data Server Driver for JDBC and SQLJ のカスタム・プロパティー dataSource を設定します。
  2. pdq.ItemsDS.properties と pdq.OrdersDS.properties というプロパティー・ファイルをデータ・ソースごとに 1 つ作成します。
  3. 各プロパティー・ファイルに必要なプロパティーを設定します。

    pdq.ItemsDS.properties の場合は、次の設定値を使用してください。

    pdq.captureMode=ON
    pdq.executionMode=DYNAMIC
    pdq.pureQueryXml=App1Items.pdqxml

    pdq.OrdersDS.properties の場合は、次の設定値を使用してください。

    pdq.captureMode=ON
    pdq.executionMode=DYNAMIC
    pdq.pureQueryXml=App1Orders.pdqxml
    pureQueryXML ファイル名の拡張子が .pdqxml または .xml の場合は、従う規則はどれでもかまいません。
  4. SQL ステートメントをキャプチャーします。
  5. 両方のプロパティー・ファイルで、captureModeOFF に、executionModeDYNAMIC に設定します。
  6. アプリケーション・サーバーのステートメント・キャッシュを使用している場合は、両方のデータ・ソースの接続プールをパージします。このキャッシュを使用している場合に、executionMode の値を変更する際には、必ず接続プールをパージしなければなりません。
  7. Application1 を再始動します。

Application2 をセットアップして実行するには、次の手順に従ってください。

  1. pdq.OrdersDS.properties というプロパティー・ファイルを作成します。
  2. 各プロパティー・ファイルに必要なプロパティーを設定します。
    pdq.captureMode=ON
    pdq.executionMode=DYNAMIC
    pdq.pureQueryXml=App2Orders.pdqxml
    この場合も、pureQueryXML ファイルの名前について従う規則はどれでもかまいません。 ただし、拡張子は .pdqxml または .xml でなければなりません。
  3. SQL ステートメントをキャプチャーします。
  4. pureQueryXML ファイルに対して Configure ユーティリティーを実行し、作成する DB2® パッケージをセットアップします。
  5. pureQueryXML ファイルに対して StaticBinder ユーティリティーを実行し、キャプチャーした SQL ステートメントから DB2 パッケージを作成します。
  6. pdq.OrdersDS.properties ファイルで、captureMode を OFF に、executionMode を STATIC に設定します。
  7. アプリケーション・サーバーのステートメント・キャッシュを使用している場合は、データ・ソースの接続プールをパージします。このキャッシュを使用している場合に、executionMode の値を変更する際には、必ず接続プールをパージしなければなりません。
  8. Application2 を再始動します。

フィードバック