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