land of lambda

application.confに、DBコネクションに関する設定を細々書きたい!



元ネタはこちら
勝手に意訳しながらまとめます。



最初にこれだけは言わせてくれ

Play2は、JDBCのデータソース管理にBoneCP使ってるぜ。


こんなURL設定もできる

MySQLとPostgreSQLではこんな書き方しても繋いであげるぜ。
# To configure MySQL
db.default.url="mysql://user:password@localhost/database"

# To configure PostgreSQL
db.default.url="postgres://user:password@localhost/database"


他の設定項目

テンプレートから作成したproject/application.confは、「driver」「url」「user」「password」しか書いてないだろ。実は、他にもこんな項目がPlay2では設定できるんだ。必要なら追加してみな。
# どのJDBCドライバを使う?
db.default.driver=org.h2.Driver

# JDBCのURLは?
db.default.url="jdbc:h2:mem:play"

# DBのユーザ名は?
db.default.user=sa

# DBのパスワードは?
db.default.password=secret

# コネクションのautocommit初期設定はどうする?
db.default.autocommit=true

# コネクションのisolation level初期設定はどうする?
# READ UNCOMMITTED (一番低い)
# READ COMMITTED
# REPEATABLE READ
# SERIALIZABLE(一番高い)
db.default.isolation=READ_COMMITTED

# コネクションプールをいくつ持つ?
# コネクションのロックを減らしたり、パフォーマンスを上げるため、
# スレッド毎にコネクションプールからコネクションを取得じゃん。
# 短い命のスレッドが大量にある場合、この設定値を大きくしとけば、パフォーマンスよくなるよ。
# くれぐれもパフォーマンスが悪くならないように調整してくれ。
db.default.partitionCount=2

# 各プールに何個ずつのコネクションをもたせるかい?
# プールが3個で、ここでの設定値を5にした場合、全部で15本のコネクションを張ることになるぜ。
# 注意して欲しいのは、BoneCPは始めから15本作るわけではないことだ。
# 足りなくなったら15本まで作るってことだからな。
# 最大値ってことに注意してくれ。
db.default.maxConnectionsPerPartition=5

# 一方こちらはプール毎のコネクション最小値。
# 言い換えると、初期値になる。
# アプリを起動すると、ここでの設定値数までコネクションを作成するぜ。
db.default.minConnectionsPerPartition=5

# コネクションが足りなくなったとき、BoneCPは何本ずつ新しいコネクションを
# 作るかを指定してくれ。とはいえ、maxConnectionsPerPartitionを超える
# コネクションは作らないがな。
# この設定値は、プール毎の値なので注意してくれ。
db.default.acquireIncrement=1

# コネクションを取りにいったけどうまく取得できないとき、
# めげずに何回まで再取得にいかせるかい?
db.default.acquireRetryAttempts=10

# コネクション取得失敗の後、再取得まで何秒開けるかい?
db.default.acquireRetryDelay=5 seconds

# 「惜しくも、時間切れ!こりゃ〜、コネクション取得失敗だ!」って諦めるのは、何秒待ったらにするかい?
db.default.connectionTimeout=1 second

# 何もせず寝てるだけのコネクションの寿命はどうする?
db.default.idleMaxAge=10 minute

# DBから「タイムアウトだぜ、さようなら。」って言われないように、
# 定期的にDBに挨拶しておいた方がいいんだ。
# その定期的に挨拶行く間隔はどうするかい?
db.default.idleConnectionTestPeriod=5 minutes

# コネクションを作った時に1発だけ流すSQLを決めてくれ。
db.default.initSQL="SELECT 1"

# DB側がいけるならだけど、log取得用SQLも流そうか?
db.default.logStatements=false

# コネクションの最大寿命を決めてくれ。
# この時間を過ぎたコネクションは、使用が終わったとたんに殺されるよ。
# しかし心配しないでくれ。
# コネクション数がminConnectionsPerPartition以下なら新しいコネクション作ってあげるから。
db.default.maxConnectionAge=1 hour


おっけー。



Add Comments

名前
 
  絵文字
 
 
記事検索
月別アーカイブ
<% for ( var i = 0; i < 7; i++ ) { %> <% } %>
<%= wdays[i] %>
<% for ( var i = 0; i < cal.length; i++ ) { %> <% for ( var j = 0; j < cal[i].length; j++) { %> <% } %> <% } %>
0) { %> id="calendar-211493-day-<%= cal[i][j]%>"<% } %>><%= cal[i][j] %>

'); label.html('\ ライブドアブログでは広告のパーソナライズや効果測定のためクッキー(cookie)を使用しています。
\ このバナーを閉じるか閲覧を継続することでクッキーの使用を承認いただいたものとさせていただきます。
\ また、お客様は当社パートナー企業における所定の手続きにより、クッキーの使用を管理することもできます。
\ 詳細はライブドア利用規約をご確認ください。\ '); banner.append(label); var closeButton = $('