アプリケーションのデータベースアクティビティーによっては、JDBC リソースの接続プール設定のサイズを変更しなければいけない可能性があります。パフォーマンスに影響を与える JDBC リソースの属性のリストと、その値を設定する際のパフォーマンス上の考慮点を、次に示します。
サーバーインスタンスの寿命内でプールが維持する傾向のあるサイズ。プールの初期サイズでもあります。デフォルトは 8 です。この数値は、予期されるプールの平均サイズにできるだけ近い値にするべきです。高負荷下での使用が予期されるプールの場合、アプリケーションの寿命内での接続の作成やプールのサイズ変更が最小限に抑えられるよう、大きな数値を使用してください。小さい負荷が予期されるプールの場合、リソース消費が最小限に抑えられるよう、小さい数値を使用してください。
プールが任意の時点で持つことのできる接続の最大数。デフォルトは 32 です。プールまたはアプリケーションが持つことのできる接続リソースの量に制限を加える場合に、この設定を使用します。また、この制限は、過剰なリソース消費によるアプリケーションエラーを回避するためにも役立ちます。
未使用状態の接続がプール内にとどまることが保証される、秒単位の最大時間。このアイドルタイムアウトが経過すると、接続が自動的に閉じられます。必要であれば、閉じられた接続の代替として、最小接続数までの接続が新たに作成されます。この設定は、データベースサーバー側で適用される接続タイムアウトを制御するわけではありません。デフォルト値は 60 秒です。
この属性を –1 に設定すると、接続が閉じられなくなります。この設定は、高い要求が継続的に見込まれるようなプールに適しています。それ以外の場合は、使用不可能な接続がプール内に蓄積されないよう、このタイムアウトがデータベースサーバー側のタイムアウトよりも短くなるようにしてください (特定ベンダーのデータベース上でそのようなタイムアウトが構成されている場合)。
タイムアウトの発生までに要求がキュー内で接続を待機する時間 (秒)。このタイムアウトが経過すると、ユーザーにエラーが表示されます。デフォルトは 60 です。
この属性を 0 に設定すると、接続の要求が無制限に待機するようになります。また、この設定ではプールが接続タイマーを考慮する必要がなくなるため、パフォーマンスが改善する可能性もあります。
プール内の接続の健全性を判定する目的でプールによって使用される方法。デフォルトはオフです。
ある検証方法が使用される場合、プールは、アプリケーションに接続をリースする前に、その接続の妥当性検査を実行します。
効果やパフォーマンスへの影響は、選択する方法ごとに異なります。
検証方法が table の場合に検証に使用されるユーザー定義テーブル。デフォルトは test です。
この方法を使用する場合、使用されるテーブルは検証専用にするべきであり、かつテーブル内の行数は最小限に抑えるべきです。
無効な接続が見つかった場合に、プール内のすべての接続を再作成するのか、あるいは無効な接続のみを再作成するのかを示します。ユーザーが接続検証方法を選択した場合にのみ適用されます。デフォルトは無効です。
これを有効にした場合、すべての再作成が一度に行われ、接続を要求しているスレッドは多大な影響を受けます。これを無効にした場合、接続の再作成の負荷が、各接続を要求しているスレッド間で分散されます。
プール内のデータベース接続のトランザクション遮断レベルを指定します。
デフォルトでは、接続のデフォルトの遮断レベルがそのまま使用されます。これを任意の値に設定すると、メソッド呼び出しによるパフォーマンス低下が若干発生します。
トランザクション遮断レベルが指定された場合にのみ適用されます。デフォルトは無効です。
この設定を無効のままにすると、接続の作成時にのみ、遮断レベルが設定されます。有効にすると、接続がアプリケーションにリースされるたびに、レベルが設定されます。ほとんどの場合、この設定は無効のままにします。