4核8G内存50G磁盘机器上应用的德鲁伊的一份配置


name="initialSize" value="5"/>

name="maxActive" value="50"/>

name="minIdle" value="3"/>

name="maxWait" value="10000"/>

name="defaultAutoCommit" value="false"/>

name="minEvictableIdleTimeMillis" value="1800000"/>

name="timeBetweenEvictionRunsMillis" value="30000"/>

name="validationQuery" value="select 1"/>

name="testWhileIdle" value="true"/>

name="testOnBorrow" value="true"/>

name="testOnReturn" value="true"/>

name="removeAbandoned" value="true"/>

name="removeAbandonedTimeout" value="180"/>


补充:

2 获取连接失败(active = maxActive)

(1)异常日志

(2)异常分析

由于最active等于maxActive而且在等待的60000ms中没有连接被释放

(3)解决方案

最大连接设置成5相对较小,maxActive 的值的设置规则一般为:1000 / 服务器数量,但是maxActive最大不要超过60,调整maxActive的值为50

3 获取连接失败(active < maxActive)

(1)错误日志

### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: 

Could not get JDBC Connection; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException:

 wait millis 1000, active 3, maxActive 20, creating 1 

 at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)

 at org.mybatis.spring.SqlSessionTemplate

(2)异常分析

active < maxActive ,所以当获取连接的时候,要新建连接,此时获取连接方法需要等待,但是由于一些原因(例如网络因素),在1000ms内,新连接没有获取到造成获取连接超时

(3)解决方案

调整maxWait参数值为10000ms


总结:根据自己的系统合理的调整数值才是最合理的.


---------------------------供参考-----------------------------------------------

你可能感兴趣的:(数据库,德鲁伊,datasource配置,DB数据库)