Tomcatのコネクションを再接続

いっつも忘れちゃうから残します。
以下の設定を加えることでプールされているコネクションの接続チェックしてくれます。
(切断されちゃってた場合、再接続してくれます。)
Tomcatのと言うより、DBCPのってのが正しいのかな?


testOnBorrow="true"
validationQuery="select 1 from dual"


実際の定義ファイルでは↓こんな感じかな。
<Resource
name="jdbc/repositoryDataSource"
auth="Container" type="javax.sql.DataSource"
maxActive="20"
maxIdle="10"
minIdle="2
initialSize="2"
maxWait="10000"
testOnBorrow="true"
validationQuery="select 1 from dual"

poolPreparedStatements="true"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/slide?autoReconnect=true&characterEncoding=utf8"
/>


ちなみに、Seasar使ってる人はjdbc.diconを↓な感じで。

<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<property name="validationQuery">"select * from dual"</property>
<property name="validationInterval">10000</property>

<destroyMethod name="close"/>
</component>

0 コメント: