コネクションプールの設定-Play2.0のコネクションプール設定については、下記リンクに説明があります。http://www.playframework.org/documentation/2.0.4/SettingsJDBCそれぞれの設定の意味が良く分からなかったので、コメント部分を訳しつつ、機能の動作を確認してみました。今回は、Play2.0.4(BoneCPは0.7.1)を使用しています。Play2.0のコネクションプール設定は即ち、BoneCP(BoneCPDataSource)の設定です。minのように出力されます。(このログはデフォルトでは出力されません。)application.confの初期状態では、必須項目と思われるdriver,url,user,passwordの4つのみ設定されていて、他は任意項目のようです。任意項目は14あります。autocommitisolationpartitionCountmaxConnectionsPerPartitionminConnectionsPerPartitionacquireIncrementacquireRetryAttemptsacquireRetryDelayconnectionTimeoutidleMaxAgeidleConnectionTestPeriodinitSQLlogStatementsmaxConnectionAgeそして、ドキュメントに書かれていない項目がいくつかあります。defaultCatalogreadOnlydisableJMXconnectionTestStatementjndiName以下、それぞれの項目についての詳細です。日本語訳が拙いのはお察しくださいご了承ください。具体的な設定の使われ方は、DB.scala内のprivateクラスBoneCPApiのprivate関数#createDataSource(DB.scala:L.287)を辺りを見ると分かります。BoneCPConfig)にあります。autocommitコネクションのデフォルトautocommit設定を設定するjava.sql.Connection#setAutoCommitで設定されます。isolationコネクションのデフォルト同期レベルを設定するトランザクション同期レベルの設定。java.sql.Connection#setTransactionIsolationで設定されます。java.sql.Connectionの定数フィールド、Transaction_XXXとこの設定がマッピングされています(DB.scala:L.302)。partitionCountロック競合を減らすことでパフォーマンス向上させるために、それぞれの流入するコネクション要求がスレッド親和性のあるプールからコネクションを抜き出す。この数値を高くすればするほど、大量の短命スレッドを使用する場合のパフォーマンスは良くなるだろう。一定の閾値を超えて、これらのプールを維持することはパフォーマンスにおいて負の効果をもたらすだろう(パーティションのコネクションが尽きかけた場合のみ)。スレッドごとに異なるパーティションを割り当てればロック競合を減らすことができる、ということでしょうか。(com.jolbox.bonecp.)BoneCPDataSource#setPartitionCountで設定されます。maxConnectionsPerPartitionパーティション毎に作られるコネクション数。3パーティションのとき、この設定を5に設定すると、データベースに15の独立したコネクションを持つことを意味する。次のことに注意すること。BoneCPは一度にすべてのコネクションを接続しようとするのではなく、minConnectionsPerPartitionに従って開始して必要に応じて徐々に増やす。minConnectionsPerPartitionパーティションごとの、初期コネクション数。コネクションプールは、最初のアクセスがあった時に構築されます。このときは、minConnectionsPerPartitionの数だけコネクションが確保されます。それぞれ、BoneCPDataSource#setMaxConnectionsPerPartition/setMinConnectionsPerPartitionで設定されます。acquireIncrement利用可能なコネクションが枯渇しそうになったとき、BoneCPは一括で動的に新しいコネクションを作る。このプロパティは一度にいくつの新しいコネクションに接続するかを制御する(maxConnectionsPerPartitionの最大値に従って)。注意:これはパーティションごとの設定である。partitionCount=2、minConnectionsPerPartition=1、maxConnectionsPerPartition=5、そしてこの値を3にしたとき、コネクションプール構築時にパーティション#1,#2がそれぞれコネクション=1になります。パーティション#1でコネクションが2つ必要になったら、一度に3つの新しいコネクションを追加して、パーティション#1はコネクション=4となります。パーティション#2はコネクション=1のままです。BoneCPDataSource#setAcquireIncrementで設定されます。断念するまで、この回数分接続を試みる。acquireRetryDelay失敗の後で再びコネクションの確保を試みる前にどのくらい待つかの時間。リトライに関する設定。最初の接続失敗のあとで、接続に成功するまで"5秒待機→再接続"を3回繰り返し、それでもダメなら接続失敗となります。それぞれ、BoneCPDataSource#setAcquireRetryAttempts/setAcquireRetryDelayInMsで設定されます。BoneCPDataSource#setConnectionTimeoutInMsで設定されます。BoneCPDataSource#setIdleMaxAgeで設定されます。idleConnectionTestPeriodこれは、DBにテストクエリーを送信する前にコネクションがアイドリングに留まる時間を設定する。これは、終了時にコネクションがタイムアウトになるのを防ぐのに役立つ。BoneCPDataSource#setIdleConnectionTestPeriodで設定されます。initSQLコネクションが最初に接続されるときにのみ実行される初期SQL文。BoneCPDataSource#setInitSQLで設定されます。logStatements有効にすると、実行されるSQL文がログに記録される。これに加えて、application.confにlogger.com.jolbox.bonecp.PreparedStatementHandle=DEBUGを追加すると、標準のログに出力されます。BoneCPDataSource#setLogStatementsEnabledで設定されます。maxConnectionAge最大コネクション寿命。最後に使用されてから、この時間が経過すると、コネクションは即時に破棄されます。BoneCPDataSource#setMaxConnectionAgeで設定されます。defaultCatalogreadOnlyこれらは、autocommit、isolationと同様にjava.sql.Connectionに直接反映される項目のようです。それぞれ、java.sql.Connection#setCatalog/setReadOnlyで設定されます。disableJMXJMXを無効にする、くらいしかわかりませんでした。BoneCPDataSource#setDisableJMXで設定されます。connectionTestStatementinitSQLに対して、こちらはkeep-aliveなどのコネクションを維持するために使用されるSQL文です。これを設定しない場合は、メタデータによるリクエストでテストを行う(その場合は互換性はあるが遅くなる可能性がある)とされています。詳しくは、APIドキュメント参照。(BoneCPConfig#setConnectionTestStatement)jndiNameJPAに関連するもののようです。http://scala.playframework.org/documentation/2.0.4/JavaJPAを参照してください。このリンク先の記...2009-08-02CD,DVDが認識されないことがある問題オーディオCDなどが、たまに認識されないことがあります。集英社ジャンプリミックス。ペーパーバックの総集編です。(2)プロフィールid:argiusはてなブログをはじめよう!argiusさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。