c3p0 接続プール 詳細設定 | プロパティ一覧
2009/06/26 13:09Update
c3p0 接続プール の詳細設定について解説します。
c3p0 Hibernateでの利用について
Hibernate c3p0 - よく利用されているコネクションプーリング
c3p0 をc3p0.properties/c3p0-config.xmlで記述する方法について
c3p0.properties
c3p0-config.xml
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 操作はヘルパースレッドによって実行されます。複数のスレッドにより複数の操作を同時に実行することで、パフォーマンスを向上させることができます。
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 操作はヘルパースレッドによって実行されます。複数のスレッドにより複数の操作を同時に実行することで、パフォーマンスを向上させることができます。
Sponsored Link
- Relative Articles
- Hibernate設定ファイルその1 - hibernate.cfg.xml - (2008/07/09 14:08)
- Hibernate c3p0 - よく利用されているコネクションプーリング - (2008/07/09 15:00)
- Hibernate 方言(Dialect)一覧 - (2008/07/09 15:10)
- Hibernate SQLクエリ実行のタイムアウト時間設定 - (2009/09/04 17:12)
- Hibernateの名前つきクエリ - パラメータの設定 - (2008/07/23 15:06)
- Hibernate Criteriaクエリ - Criteria.addメソッドで抽出条件の設定 - (2008/08/07 13:43)
- Hibernate Criteriaクエリ - Criteria.addOrderメソッドで並び順の設定 - (2008/08/07 15:57)
- Hibernate Criteriaクエリ - Criteria.addメソッドで抽出条件の設定 | Example - (2008/08/07 17:52)
- Hibernate 名前つきSQLクエリ - return-scalarで戻り値型の設定 - (2009/06/02 15:12)
- Hibernate マッピング - outer-joinプロパティでパフォーマンス改善 - (2008/08/29 18:32)