プールされた接続をクライアントに割り振る前に、その妥当性をテストするようにアプリケーション・サーバーを設定できます。
このテスト操作は、データベース・サーバーとの間の相互接続が確立されていることを確認する単純な SQL 照会で構成されています。
始める前に
データベースに障害が発生する場合、
無効な接続がフリー・プール内に存在している可能性があります。これは、
failingConnectionOnly パージ・ポリシーがある場合に起こる可能性が高くなります。
このポリシーでは、障害のある接続のみをプールから除去するようになっているためです。
プール内に残っている接続が有効かどうかは、障害の原因によって異なります。
接続の事前テストは、
フリー・プールからの接続をクライアントに指定する前にテストする手段です。
注: この操作は、接続してからすぐに切断することで、データ・ソース構成の妥当性を検査する testConnection 操作とは完全に別個です。
このタスクについて
アプリケーションがプールされている接続を使用する場合、
管理コンソールで「接続の事前テスト」フィーチャーを使用可能にすると、
無効になった接続の取得を防ぐことができます。
このフィーチャーは、
ルーチン・データベースが停止するような場合には特に有用です。
このような停止は、通常は、使用頻度の低い期間にスケジュールされているため、
データベースへの接続は、アクティブ・ユースではなくフリー・プールにある場合が多くなります。
アクティブな接続は事前テストされません。事前テストをすると、
通常の操作時にパフォーマンスが低下します。事前テストを行うと、ユーザーが、
停止前に既に障害が発生していた接続を再開しようとして時間を浪費することがなくなります。
プロシージャー
- 管理コンソールで、「リソース」>「JDBC プロバイダー」をクリックします。
- プロバイダーを選択して、「追加プロパティー」の下の「データ・ソース」をクリックします。
- データ・ソースを選択し、
「追加プロパティー」の下の「WebSphere Application Server データ・ソース・プロパティー」をクリックします。
- 「接続の事前テスト」チェック・ボックスを選択します。
- 「接続事前テストの再試行間隔」の値 (秒単位) を入力します。
このプロパティーで、事前テスト操作が失敗した場合に新規の接続要求が行われる間隔が決まります。
- 「SQL ストリングの事前テスト」に、有効な SQL ステートメントを入力します。
パフォーマンスへの影響が最小限の、信用できる SQL コマンドを使用します。このステートメントは、フリー・プールから接続が取得されるたびに処理されます。
例えば、TESTTABLE から SELECT COUNT(*) を指定できます。 (Oracle データベースの場合、SELECT USER FROM DUAL を使用します。)