WebSphere Application Server 環境での pureQuery ランタイム・プロパティーのスコープ

pureQuery ランタイム・プロパティーを設定して、pureQuery Runtime の操作を制御します。pureQuery ランタイム・プロパティーのスコープは、特定の WebSphere® ロケーションでプロパティーを設定することにより制御できます。 複数のロケーションでプロパティーを設定した場合、pureQuery Runtime は、ロケーションに基づく優先順位に従ってどの値を使用するかを決定します。
WebSphere では、ロケーションを使用してプロパティーのスコープを決定し、プロパティーが複数のロケーションで指定されている場合は、優先順位を決定します。 WebSphere のスコープ・レベルの優先順位は、次のとおりです。
  • アプリケーション・レベル: pureQuery プロパティーは、WebSphere アプリケーションに適用されます。アプリケーション・レベルでの pureQuery ランタイム・プロパティーの設定は、同じプロパティーのグローバル・レベルの設定およびデータ・ソース・レベルの設定の両方に優先します。同じプロパティーでない場合、pureQuery ランタイム・プロパティーは、グローバル・レベルの pureQuery プロパティーおよびデータ・ソース・レベルの pureQuery プロパティーとマージされます。
  • データ・ソース・レベル: pureQuery プロパティーは、データ・ソースから作成されるすべての接続に適用されます。データ・ソース・レベルのプロパティー設定は、グローバル・レベルと両方で同じプロパティーが定義されている場合は、グローバル・レベルのプロパティーの設定に優先します。同じプロパティーでない場合、pureQuery ランタイム・プロパティーはグローバル・レベルの pureQuery プロパティーとマージされます。
  • グローバル・レベル: pureQuery プロパティーは、WebSphere Application Server 内のすべてのアプリケーションに適用されます。

pureQuery ランタイム・プロパティー finalRepositoryProperties を使用すると、データベース内のファイル・システムまたはリポジトリーからランタイム・プロパティーを取得できます。ファイル・システムまたはリポジトリーからランタイム・プロパティーを取得すると、優先順位に影響します。

ファイル・システムまたはリポジトリーの指定

finalRepositoryProperties プロパティーで指定されたロケーションから pureQuery ランタイム・プロパティーが取得および設定される前に、pureQuery クライアント最適化と既存の pureQuery ランタイム・プロパティーがデフォルト値にリセットされます。 データ・ソース・レベルで設定されたいかなるプロパティーも保存されません。グローバル pureQuery プロパティーとして取得および設定されたプロパティーは、影響を受けません。

pureQuery ランタイム・プロパティーの設定がどのように決定されるかを、次の例で示します。
  • プロパティーが複数のレベルで設定されている場合、どの値が使用されるかはレベルによって決まります。例えば、captureMode の値が、pdq.properties グローバル・プロパティー・ファイルで「オフ」に設定され、アプリケーションによって使用されるデータ・ソースのデータ・ソース・レベルの pdqProperties では「オン」に設定され、アプリケーション・レベルの pdq.appwide.properties では「オフ」に設定されている場合、アプリケーション・レベルの設定が優先され、captureMode プロパティーの値は「オフ」に設定されます。
  • finalRepositoryProperties プロパティーを使用して、pureQuery ランタイム・プロパティーがファイル・システムまたはリポジトリーから取得される場合、グローバル、データ・ソース、アプリケーションの各レベルでのプロパティー設定にかかわらず、ロケーションで指定されている captureMode プロパティーの値が優先されます。例えば、captureMode がアプリケーションによって使用されるデータ・ソースのデータ・ソース・レベルの pdqProperties で「オン」に設定され、finalRepositoryProperties プロパティーも設定されている場合、pureQuery Runtime は finalRepositoryProperties プロパティーによって指定されているロケーションからプロパティーを取得します。 captureMode プロパティーが取得されるプロパティーに設定されていない場合、captureMode プロパティーはデフォルトの「オフ」に設定されます。captureMode プロパティーの値が取得されるプロパティーとして設定されている場合は、その値が使用されます。

WebSphere 環境で pureQuery ランタイム・プロパティーのスコープを制御する

WebSphere 環境では、pureQuery ランタイム・プロパティーを異なるロケーションで設定して、プロパティーのスコープ・レベルを制御します。ロケーションは、プロパティーが複数のロケーションに設定されている場合は優先順位にも影響します。

グローバル・スコープのロケーション

プロパティー・ファイル pdq.properties で pureQuery ランタイム・プロパティーを指定し、そのファイルを WebSphere JDBC プロバイダーの CLASSPATH に含めます。

pdq.properties ファイルを使用してグローバル・プロパティーを設定する場合は、ファイル pdq.properties を pureQuery JAR ファイルと一緒に JDBC プロバイダーの CLASSPATH に置きます。JDBC プロバイダーの CLASSPATH で設定されたプロパティーは、このドライバーを使用するすべてのアプリケーションに適用されます。特定のアプリケーションまたはデータ・ソースに適用するプロパティーは、ここに指定しないでください。

注: SQL ステートメントの実行を動的モードから静的モードに切り替えるために pdq.properties ファイルを変更した場合は、変更を反映するためにアプリケーション・サーバーを再始動する必要があります。プロパティーは、その特定の JDBC プロバイダーを使用するすべてのデータ・ソースに適用されるため、すべてのアプリケーションは同じ実行モードで実行されます、キャプチャーしたすべての SQL ステートメントは、キャプチャー中に同じ pureQueryXml ファイルに進みます。
データ・ソース・レベルのスコープのロケーション

JDBC ドライバーのカスタム・プロパティー pdqProperties を WebSphere データ・ソースに対して指定します。

ユーザーは、データ・ソースごとに pureQuery ランタイム・プロパティーを設定できます。データ・ソース・レベルが適切であるのは、それぞれのデータ・ソースごとの設定が互いに独立している必要がある場合です。例えば、アプリケーションが複数の個別のデータ・ソースを使用する場合、それぞれのデータ・ソースは独自の pureQueryXML ファイルでそのターゲットとなっている SQL をキャプチャーします。

プロパティーがデータ・ソースに対して設定されている場合、プロパティーはそのデータ・ソースを使用しているすべてのアプリケーションに適用されます。したがって、アプリケーションがデータ・ソースを共有していると、キャプチャーされる SQL ステートメントはすべてのアプリケーションの共通ファイルでキャプチャーされます。

プロパティーの値に対して変更を行うたびに、アプリケーション・サーバーを再始動してアプリケーション・サーバーが新しい値を使用できるようにする必要があります。

アプリケーション・レベルのスコープのロケーション
pureQuery ランタイム・プロパティーをアプリケーション・レベルのスコープで有効にするには、アプリケーションの CLASSPATH で次のプロパティー・ファイルのいずれかまたは両方を使用します。
  • pdq.appwide.properties
  • pdq.DSName.properties

    DSName は、データ・ソースに対して設定された WebSphere DB2® Universal JDBC ドライバーのカスタム・プロパティー dataSourceName の値です。

pdq.appwide.properties ファイルは、アプリケーション固有の pureQuery プロパティーを指定します。このファイルで指定されるすべてのプロパティーの値が、アプリケーションが使用するすべてのデータ・ソースに適用されます。

pdq.DSName.properties ファイルは、あるアプリケーションでのデータ・ソース固有のプロパティーを指定します。このファイルで指定されるプロパティーは、アプリケーションが使用する特定のデータ・ソースに適用されます。DSName は、データ・ソースでの WebSphere カスタム・プロパティー dataSourceName のストリング値です。 このカスタム・プロパティーは、WebSphere カスタム・プロパティー pdqProperties の設定に使用されるステップと似たステップを使用して設定されます。

データ・ソース名 DSName を使用しているアプリケーションの場合、pdq.DSName.properties で指定されたプロパティーは pdq.appwide.properties で指定されたものに優先します。

これらの pureQuery ランタイム・プロパティー・ファイルは、WebSphere インストール内の次のロケーションのいずれかに置くことができます。
  • Web アプリケーションの WEB-INF/classes の下
  • JAR ファイルとしての WEB-INF/lib ディレクトリーの下
  • インストール済みアプリケーション・ディレクトリーの直下
アプリケーション内に 1 つの Web モジュールがある場合、最初の 2 つのオプションのみが表示可能です。EJB アプリケーションの場合は、上記に述べた 3 つのロケーションのどれも使用できます。

アプリケーションが pdq.appwide.properties または pdq.dsName.properties ファイルなどのアプリケーション固有のプロパティー・ファイルを使用している場合、プロパティーが変更されたときに新規プロパティーを有効にするには、アプリケーション・サーバーを再始動する代わりに、WebSphere 接続プールをパージし、アプリケーションを再開して、新規プロパティー値を有効にする必要があります。

ロケーションがファイル・システムまたはリポジトリー

pureQuery ランタイム・プロパティー finalRepositoryProperties を使用して、データベース内のファイル・システムまたはリポジトリーを指定します。 プロパティーは、グローバル・レベル、データ・ソース・レベル、またはアプリケーション・レベルで指定できます。

pureQuery Runtime は、finalRepositoryProperties プロパティーで指定されているロケーションからプロパティーを取得する場合に次の規則を適用します。
  • finalRepositoryProperties からロードされたプロパティーは、それらをロードしているアプリケーションのみに影響します。
  • pureQuery クライアント最適化または pureQuery Runtime で無効な finalRepositoryProperties からロードされたプロパティーは無視され、ロギングが使用可能になっている場合、ログに記録されます。この動作は、データ・ソース・レベルまたはアプリケーション・レベルのプロパティーと同じです。
  • プロパティー finalRepositoryProperties の値は、それが最初の finalRepositoryProperties プロパティーで指定されたロケーションから取得された場合は無視されます。 pureQuery Runtime は、finalRepositoryProperties プロパティーを使用した複数レベルのリダイレクトをサポートしていません。
  • finalRepositoryProperties プロパティーの指定に加え、pureQuery ランタイム・プロパティー propertiesGroupId を指定すると、アプリケーションが pureQuery データの取得に使用するデータベースで作成されたリポジトリーで実行時グループ・バージョンが指定されます。

    propertiesGroupId プロパティーの値は、それがデータベースで作成されたリポジトリーで使用されない限り無視されます。リポジトリーが使用されているときは、リダイレクトされたプロパティー内で propertiesGroupId プロパティーの値を変更できません。

  • finalRepositoryProperties プロパティーで指定されたロケーションから取得される pureQuery ランタイム・プロパティーは、propertiesRefreshInterval プロパティーがそのロケーションから取得されたプロパティーの 1 つであり、かつ、正の値に設定されている場合に限り、プロパティーの自動リフレッシュで有効になります。個々のアプリケーションには、finalRepositoryProperties から取得されたプロパティーで定義されている異なる propertiesRefreshInterval を指定できます。

pureQuery Runtime repositoryRequired プロパティーは、ファイル・システムまたはリポジトリーを使用しているときの pureQuery Runtime の動作を制御します。WebSphere ロケーション pureQuery でプロパティーを指定して、pureQuery Runtime の動作を制御します。repositoryRequired プロパティーの値は、取得されるプロパティーの 1 つとして repositoryRequired プロパティーを設定することによりオーバーライドできます。


フィードバック