久しぶりの更新です。
過去似たような問題が、ある案件に対応したようだが、
最近友人から、解決方法が聞かれたきっかけで
一応spring+mysqlを利用した場合の設定方法をブログにもメモしておきます。
以下spring設定ファイルの抜粋です
<beans>
...
<!-- Local Apache Commons DBCP DataSource that refers to a combined database -->
<!-- (see dataAccessContext-jta.xml for an alternative) -->
<!-- The placeholders are resolved from jdbc.properties through -->
<!-- the PropertyPlaceholderConfigurer in applicationContext.xml -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 最大接続数 -->
<property name="maxActive" value="300" />
<!-- <property name="maxActive" value="30" /> -->
<!-- 未使用の接続を保持する最大数 -->
<property name="maxIdle" value="10" />
<!-- 未使用の接続を保持する最小数 -->
<property name="minIdle" value="5" />
<!-- maxActiveを超える接続要求に対するウェイトタイム ミリ秒(-1でタイム アウトなし) -->
<!-- <property name="maxWait" value="1000" /> -->
<property name="maxWait" value="10000" />
<!-- The initial number of connections that are created when the pool -->
<property name="initialSize" value="5" />
<!-- クローズ漏れとなったコネクションを回収する。-->
<property name="removeAbandoned" value="true" />
<property name="removeAbandonedTimeout" value="60" />
<property name="logAbandoned" value="true" />
<!--
MySQL側から強制切断されるコネクションがなくなるため、
dbcpは常に接続されたコネクションを返してくるよう
30分毎に監視をし、1時間使用されていないコネクションがあればプールから削除する
-->
<property name="timeBetweenEvictionRunsMillis" value="1800000" />
<property name="minEvictableIdleTimeMillis" value="1800000" />
<!-- プールから接続を取得する前に接続の有効性を確認 -->
<property name="validationQuery" value="SELECT 1" />
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="true" />
<property name="testWhileIdle" value="true" />
<property name="numTestsPerEvictionRun" value="5" />
</bean>
...
</beans>
詳細設定はデータソースのクラス(本例はorg.apache.commons.dbcp.BasicDataSource)やDB(本例はMYSQL)により異なる可能性がありますが、APIを参考した上各自設定してください。
0 件のコメント:
コメントを投稿