c3p0 接続プール 詳細設定 | プロパティ一覧

2009/06/26 13:09Update
TAGS: configuration | c3p0 | 設定 | hibernate

c3p0 接続プール の詳細設定について解説します。

c3p0 Hibernateでの利用について
Hibernate c3p0 - よく利用されているコネクションプーリング

c3p0 をc3p0.properties/c3p0-config.xmlで記述する方法について
c3p0.properties
c3p0-config.xml

c3p0 Configuration プロパティ一覧


acquireIncrement
    デフォルト:3
    接続プールが使い尽くしたとき、一回同時に新たに取得するコレクション数

acquireRetryAttempts
    デフォルト:30
    新コレクションを取得するのに失敗したときのリトライ回数

acquireRetryDelay
    デフォルト:1000
    ミリ秒。リトライ間隔時間

autoCommitOnClose
    デフォルト:false
    コレクションをクローズするとき、すべての未確定の操作をコミットするかどうかを設定。デフォルトはロールバック。

automaticTestTable
    デフォルト:null
    接続テスト用テーブル名。c3p0は自動的に指定される名前のテーブルを生成し、接続を行う際に、このテーブルを用いてテストを行います。また、automaticTestTableが設定される場合、c3p0はテスト用クエリ語句を自動的に生成しますので、preferredTestQuery設定が無視されます。

breakAfterAcquireFailure
    デフォルト:false
    true:コレクションの取得ができなかった場合、DataSource自体は閉鎖され、接続不可になります。
    false:コレクションの取得ができなかった場合、すべてのスレッドにExceptionを投げますが、DataSourceは有効のままで保持し続き、次回のgetConnection()の時も、新たなコレクションの取得を試みます。

checkoutTimeout
    デフォルト:0
    ミリ秒。プールが使い尽くされている場合のコレクションの最大待つ時間。タイムアウト時SQLExceptionが投げ出されます。0は無期限に待つことです。

connectionCustomizerClassName
    デフォルト:null
    コレクション・カスタマイズ・クラス。ConnectionCustomizerインタフェースを実装したフルパスのクラス名を指定する必要があります。
http://www.mchange.com/projects/c3p0/apidocs/com/mchange/v2/c3p0/ConnectionCustomizer.html

connectionTesterClassName
    デフォルト:com.mchange.v2.c3p0.impl.DefaultConnectionTester
    接続テストクラス。 ConnectionTesterまたは QueryConnectionTesterインタフェースを実装する必要があります。

idleConnectionTestPeriod
    デフォルト:0
    接続プール内のアイドル状態のコレクションを時間間隔「0以外の数字」でチェックします。0はチェックしないことを意味します。

initialPoolSize
    デフォルト:3
    初期状態のコレクション数。minPoolSize と maxPoolSize の間の数字で設定する必要があります。

maxConnectionAge
    デフォルト:0
    秒単位。接続プール内のコレクションの生存期間。生存期間外のコレクションが破棄されます。0は「生存期間」を設けないことで永遠に生き続きます。

maxIdleTime
    デフォルト:0
    秒単位。最大アイドル時間。指定される時間内で使用されていなければコレクションが破棄されます。
    ※maxConnectionAgeとの違いは、maxConnectionAgeには絶対時間を指定するのに、maxIdleTimeは相対時間になります。

maxPoolSize
    デフォルト:15
    接続プールに保持できる最大コレクション数。

maxStatements
    デフォルト:0
    c3p0のグローバルPreparedStatementキャッシュ・サイズ。maxStatements と maxStatementsPerConnectionともに0の場合、statementキャッシュが無効になります。maxStatementsは全コレクションのStatementsキャッシュの数を定義するため、定義するのであれば、アプリケーション全体を見て、よく使われるPreparedStatementsの数 かける maxPoolSize で得られる数値を設定すれば妥当でしょう。

maxStatementsPerConnection
    デフォルト:0
    c3p0個々のコレクションPreparedStatementsキャッシュ・サイズ。設定するのであれば、アプリケーションのdistinct PreparedStatementsの数+2,3の数値が妥当でしょう。

minPoolSize
    デフォルト:3
    接続プールに保持する最小コレクション数。

numHelperThreads
    デフォルト:3
    c3p0 は非同期操作をサポートします。遅いJDBC 操作はヘルパースレッドによって実行されます。複数のスレッドにより複数の操作を同時に実行することで、パフォーマンスを向上させることができます。

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments