S2JDBCでコネクションプーリング死活監視&再接続を行う方法

PostgresqlでDB再起動時にコネクションが残る現象が発生したので、死活監視して再接続を試みる方法を検証。
jdbc.diconのvalidationQuery、validationIntervalを使用することで良い感じで回避できた。
監視クエリはとりあえず「select 1」としている。


jdbc.dicon

    <component name="connectionPool"
        class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
        <property name="timeout">600</property>
        <property name="maxPoolSize">20</property>
        <property name="allowLocalTx">true</property>
        <property name="validationQuery">"select 1"</property>
        <property name="validationInterval">10000</property>
        <destroyMethod name="close"/>
    </component>


参考:http://s2container.seasar.org/2.4/ja/jdbc.html