Druid接続プールのtestQuery/validationQuery

6096 ワード

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        init-method="init" destroy-method="close">
        
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.user}" />
        <property name="password" value="${jdbc.password}" />
        
        <property name="initialSize" value="1" />
        <property name="minIdle" value="1" />
        <property name="maxActive" value="20" />

        
        <property name="maxWait" value="60000" />

        
        <property name="timeBetweenEvictionRunsMillis" value="60000" />

        
        <property name="minEvictableIdleTimeMillis" value="300000" />

                
        <property name="validationQuery" value="SELECT 1 FROM DUAL" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />

    

        <property name="filters" value="stat" /> 
bean>

druidの推奨構成は次のとおりです.
<property name="validationQuery" value="SELECT 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />

validationQueryは、少なくとも1つのデータを返すSELECT文である必要があるデータベース接続を検証するためのクエリー文です.各データベースには、それぞれの検証文があります.
testOnBorrowとtestOnReturnは生産環境では一般的に開かれず、主に性能の考慮である.無効な接続は主にtestWhileIdleによって保証され、使用できないデータベース接続が取得された場合、通常はアプリケーションによって例外が処理されます.