接続プールの詳細属性の編集ページを使用して、接続リークの診断と使いやすさの向上に役立つ属性を指定します。
接続プールの詳細属性の編集ページには、次のオプションが含まれます。
デフォルト値のある設定をデフォルト値に復元するボタン。デフォルト値のない設定は変更されません。
接続プールの名前。名前は読取り専用フィールドです。接続プール名は、新規JDBC接続プールの作成時にのみ指定できます。
異常に長い時間実行されている問合せを終了させるまでの時間の長さ(秒数)。GlassFish Serverは、作成される文にQueryTimeout
を設定します。値の-1は、オプションが無効であることを示しています。デフォルト値は-1です。
LRU (最近の使用頻度が最も低い)キャッシュ・メカニズムを使用してキャッシュされる文の数。0を指定すると、文のキャッシュは無効になります。デフォルト値は0です。
プールに接続が作成される(再使用以外)ときに実行されるSQL文字列。この文字列の実行で、接続の状態が初期化されます。
リスナー実装クラス名のカンマ区切りリスト。アプリケーションによって実行されるSQL文をトレースすることを指定します。リスナー・クラスはorg.glassfish.api.jdbc.SQLTraceListener
インタフェースを実装する必要があります。リスナーを使用すると、SQL文のログ・メッセージに簡単にフィルタを適用することができ、管理者が文を解析する際に役立ちます。
このオプションが有効な場合、アプリケーションはStatement、PreparedStatement、CallableStatement、ResultSet、DatabaseMetaDataに対してラップされたJDBCオブジェクトを取得します。このオプションはデフォルトで有効になっています。
プールの接続プールを有効にします。このオプションはデフォルトで有効になっています。
接続を検証するための連続したリクエストの時間間隔を秒単位で一度のみ指定します。この属性を適切な値に設定すると、接続ごとの確認リクエスト回数を最小にできます。デフォルト値は0です。この属性が無効であることを意味します。
接続プール内の接続リークを追跡する時間(秒)。このフィールドを使用して、アプリケーションによる接続リークの可能性を検出します。アプリケーションが指定された期間内に接続をプールに返さなかった場合、この接続はリークしている可能性があるとみなされ、コール側のスタック・トレースがログに記録されます。0を指定すると、接続リークのトレースは無効になります。デフォルト値は0です。
このフィールドを「リーク再要求」とともに使用すると、アプリケーションによる潜在的な接続リークを避けることができます。
このオプションを有効にすると、リーク接続の追跡が完了した後で、リークした接続がプールに復元されます。このオプションは、デフォルトでは無効になっています。
接続プール内の文リークを追跡する時間(秒)。このフィールドを使用して、アプリケーションによる文リークの可能性を検出します。アプリケーションが指定された期間内に文をプールに返さなかった場合、この接続はリークしている可能性があるとみなされ、コール側のスタック・トレースがログに記録されます。0を指定すると、文リークのトレースは無効になります。デフォルト値は0です。
このフィールドを「文のリーク再要求」とともに使用すると、アプリケーションによる潜在的な接続リークを避けることができます。
このオプションを有効にすると、リーク文の追跡が完了した後で、リークした文がプールに復元されます。このオプションは、デフォルトでは無効になっています。
新規接続の作成に失敗した場合に行われる試行の回数。0を指定すると、接続の作成は再試行されません。デフォルト値は0です。
接続作成の試行の間隔(秒数)。デフォルト値は10です。この属性は、「作成再試行回数」が1以上の場合にのみ使用されます。
このオプションが有効な場合、物理的な接続は、接続を使用しているときにのみ論理的な接続に関連付けられます。トランザクションが完了してコンポーネント・メソッドが終了したときに関連付けが解除されるため、物理的な接続を再利用しやすくなります。このオプションは、デフォルトでは無効になっています。
このオプションが有効な場合、リソースは実際にメソッドで使用されるときにのみトランザクションに登録されます。このオプションは、デフォルトでは無効になっています。
このオプションが有効な場合、接続とスレッドの間のアソシエーションが作成されます。これにより、同じスレッドが接続を必要とするときは、そのスレッドにすでに関連付けられている接続を再利用できるため、プールから接続を取得するオーバーヘッドが発生しません。このオプションは、デフォルトでは無効になっています。
このオプションが有効な場合、プールから選択された接続は、特定の資格証明を持つ接続と一致する必要があります。複数のユーザー資格証明を持つアプリケーションによって接続プールが使用されている場合は、このオプションを有効にする必要があります。プール内の接続が常に同じ種類であり、プールから選択した接続とリソース・アダプタを照合する必要がないことを管理者が確認している場合は、このオプションを無効にしてもかまいません。このオプションは、デフォルトでは無効になっています。
接続をプールで再利用する回数。指定された回数だけ再利用されると、その接続はクローズされます。接続を再利用できる回数を制限することにより、アプリケーションが文を閉じていない場合に、文のリークを避けることができます。値の0は、この属性が無効であることを示します。デフォルト値は0です。
このオプションが有効な場合、障害発生時にサーバーが再接続するための接続検証が必要です。
GlassFish Serverは、データベース接続を次の方法で検証できます。
auto-commit
およびmetadata
GlassFish Serverは、con.getAutoCommit
またはcon.getMetaData
メソッドをコールして接続を検証します。
注意:
多数のJDBCドライバが、これらのコールの結果をキャッシュします。その結果、これらのコールを使用すると、信頼できる検証が行われない場合もあります。コールがキャッシュされるかどうかについて、ドライバ・ベンダーに問い合せる必要があります。custom-validation
GlassFish Serverは、カスタム実装クラスで「検証クラス名」フィールドに指定した、ユーザー定義の検証メカニズムを使用します。
table
アプリケーションは指定されたデータベース表に問い合せます。表が存在していてアクセス可能である必要がありますが、行は必要ありません。多くの行を持つ既存の表や、すでに頻繁にアクセスされている表を使用しないでください。
検証に使用するデータベース表の名前。このフィールドは、「検証方法」がtable
に設定された場合にのみ適用されます。名前をドロップダウン・リストから選択するか、または入力できます。
カスタム検証の実装クラス名。このフィールドは、「検証方法」がcustom-validation
に設定された場合にのみ適用されます。指定したクラス名は、GlassFish Serverからアクセス可能である必要があります。指定したクラスはorg.glassfish.api.jdbc.ConnectionValidation
インタフェースを実装する必要があります。名前をドロップダウン・リストから選択するか、または入力できます。
このオプションが有効な場合、いずれかの接続が失敗すると、GlassFish Serverはプール内のすべての接続を閉じて、それらを再度確立します。このオプションが無効な場合、個々の接続はそれぞれの使用時のみ再度確立されます。このオプションは、デフォルトでは無効になっています。
このオプションが有効な場合は、サーブレット・フィルタや他社の永続性マネージャなど、コンポーネント以外のコール側がプールを使用できます。コンポーネントのコール側以外によって取得された接続は、トランザクションの終わりにコンテナによって自動的にクローズされません。コール側が明示的にクローズする必要があります。このオプションは、デフォルトでは無効になっています。