pureQuery pureQuery ランタイム・プロパティーをデータ・ソース・レベルで設定します。リポジトリーから取得された pureQuery ランタイム・プロパティーをデータ・ソース・レベルでも設定します。アプリケーションを再始動すると、それが発行する SQL ステートメントを pureQuery Runtime がキャプチャーします。
始める前に
WebSphere® Application
Server が動的アプリケーションを実行していることを確認してください。アプリケーションは、DB2® プロバイダーで使用可能な JNDI 名 jdbc/nobleDS でデータ・ソースを使用します。
このタスクについて
データ・ソースの WebSphere JDBC プロバイダー・カスタム・プロパティーを作成します。このプロパティーは、pureQuery Runtime および IBM® Data
Server Driver for JDBC and SQLJ によって使用されます。
pureQuery Runtime のカスタム・プロパティー
pdqProperties は、タスク
シナリオ: pureQuery Runtime 用のリポジトリーの作成および構成で作成したリポジトリーを指します。DB2 ドライバーのプロパティー
dataSourceName は、トランザクション・データベースをデータ・ソースとして指定します。WebSphere プロパティーとそれらの値を次の表にリストします。
表 1. WebSphere カスタム・プロパティーWebSphere カスタム・データ・ソース・プロパティー名 |
値 |
pdqProperties |
finalRepositoryProperties(ds://jdbc/nobleDS),
propertiesGroupId(testApp), repositoryRequired(atStartup), propertiesRefreshInterval(2) |
dataSourceName |
nobleDS |
カスタム・データ・ソースのプロパティー pdqProperties および dataSourceName を指定すると、そのデータ・ソースに関して pureQuery Runtime のプロパティーが指定されます。
注: pdqProperties ストリングを使用してデータ・ソースの pureQuery Runtime プロパティーを設定した場合、それらのプロパティーがカスタム・データ・ソース・プロパティー dataSourceName に優先します。
手順
WebSphere Application Server でカスタム・データ・ソース・プロパティーを設定するには、次のようにします。
- カスタム・データ・ソース・プロパティー pdqProperties をデータ・ソースに対して設定します。
「管理コンソール」で、「カスタム・プロパティー」ペインに進みます。
。
「pdqProperties」という名前のプロパティーを作成します。
pureQuery ランタイム・プロパティーのカスタム・プロパティーを指定するには、次の値を設定します。
finalRepositoryProperties(ds://jdbc/nobleDS),propertiesGroupId(testApp),
repositoryRequired(atStartup),propertiesRefreshInterval(2)
WebSphere カスタム・プロパティーは、次の pureQuery ランタイム・プロパティーを指定します。
- finalRepositoryProperties
- この値は、アプリケーションで使用される pureQuery ランタイム・プロパティーを保管するリポジトリーのロケーションを指定します。
シナリオで、この値はデータ・ソース ds://jdbc/nobleDS です。リポジトリー・データベースは、トランザクション・データベースと同じです。
- propertiesGroupId
- この値は、アプリケーション用の pureQuery ランタイム・プロパティーと pureQueryXML データを保管する実行時グループ ID を指定します。propertiesGroupId の値は、データベースの指定したリポジトリー内の定義済み実行時グループ ID でなければなりません。シナリオでは、リポジトリーはデータ・ソース jdbc/nobleDS によって指定されたデータベース内にあります。propertiesGroupId の値は、シナリオ: pureQuery Runtime 用のリポジトリーの作成および構成で作成した実行時グループの ID です。
- repositoryRequired
- この値は、リポジトリーが使用できない場合の pureQuery Runtime の動作を指定します。シナリオでの値は atStartup です。
pureQuery ランタイム・プロパティーおよび pureQuerXML データをリポジトリーから読み取るには、アプリケーション始動時にリポジトリーが必須です。
リポジトリーが使用不可の場合、または読み取りエラーが検出される場合、例外がアプリケーションにスローされます。
repositoryRequired プロパティーで許可される他の値は、次のとおりです。
- 値 forOutput は、pureQuery Runtime が初めてリポジトリーへの書き込みを試行したとき、キャプチャーした SQL データを保管するリポジトリーが使用不可である場合に、例外をアプリケーションにスローすることを指定します。
- 値 atStartupAndForOutput は、atStartup および forOutput の両方で pureQuery Runtime の動作が有効であることを指定します。
repositoryRequired プロパティーが指定されておらず、finalRepositoryProperties オプションで指定されたロケーションが使用不可である場合、pureQuery Runtime はリポジトリーが使用可能になるまで SQL ステートメントを動的に実行します。
ヒント: アプリケーションで静的に SQL ステートメントを実行する必要がある場合、またはさまざまな SQL の置換でアプリケーションが必要な場合は、repositoryRequired プロパティーを値 atStartup または atStartupAndForOutput に指定してください。
- propertiesRefreshInterval
- この値は、finalRepositoryProperties プロパティーで指定されたロケーションに保管されている pureQuery ランタイム・プロパティーまたは pureQueryXML データへの更新があるか検査している間に待機する間隔 (分) を指定します。
pureQuery Runtime は、propertiesRefreshInterval プロパティーが取得されるプロパティーの 1 つである場合にのみプロパティーへの更新があるか検査します。プロパティーの値は、正整数値です。
注: pureQuery Runtime が最初にプロパティーを取得した後のリフレッシュ間隔を変更できます。
propertiesRefreshInterval プロパティーは、アプリケーションの始動時に使用されるプロパティーとして設定できます。また、
finalRepositoryProperties プロパティーで指定されたロケーションから取得されるプロパティーとしても設定できます。
開始時にリポジトリーが必要でない場合には、リポジトリーの可用性に基づいて別のリフレッシュ間隔を指定することができます。
リポジトリーが使用可能になるまでは、アプリケーションによって指定されたリフレッシュ間隔が適用されます。
リポジトリーが使用可能になると、finalRepositoryProperties プロパティーで指定されたロケーションから取得されるリフレッシュ間隔が適用されます。
- WebSphere カスタム・データ・ソース・プロパティー dataSourceName を設定できます。
「カスタム・プロパティー」パネルで、カスタム DB2 Universal JDBC プロパティー dataSourceName を作成します。
値は、データ・ソースを指定する適切なストリングに設定します。
シナリオで、この値は nobleDS に設定されています。
- WebSphere Application
Server を再始動します。
アプリケーション・サーバーが再始動すると、プロバイダーの CLASSPATH と、カスタム・プロパティーで指定されているデータ・ソースに対する変更が行われます。
タスクの結果
WebSphere JDBC
プロバイダーのカスタム・プロパティー pdqProperties がデータ・ソース用の WebSphere によって認識されると、このデータ・ソースから作成されたすべての接続が pureQuery クライアント最適化に対応します。pureQuery ランタイム・プロパティー finalRepositoryProperties は、pureQuery ランタイム・プロパティーが保管されるリポジトリーのロケーションを指定します。pureQuery ランタイム・プロパティー propertiesGroupId は、リポジトリー内の実行時グループを指定します。
pureQuery プロパティーはリポジトリーから取得され、propertiesRefreshInterval もそのリポジトリーから取得されるため、アプリケーション・サーバーを再始動することなく、pureQuery 構成情報、pureQuery プロパティー、および pureQueryXML データを更新できます。アプリケーションは、情報の更新があるか検査して、更新情報を取得し、使用します。
ヒント: 複数のアプリケーションでデータ・ソースを共有している場合は、pureQuery ランタイム・プロパティーをアプリケーション・レベルでオーバーライドできます。
次のタスク
次のタスクでは、WebSphere アプリケーションを実行して SQL ステートメントを実行します。
pureQuery Runtime は、SQL ステートメントおよび関連付けられた SQL データをキャプチャーして、データをリポジトリーに保管します。