项目开始是用bonecp连接池,其他同事配置的,一直也没研究。但是项目上线后,发现一个问题,长时间不访问的情况下,再次访问,会非常常慢。经过排查,是因为连接池里没有存活动的链接,长时间不访问,连接池里的链接都给释放了,再次访问的时候,会重新连。但是具体是什么原因导致的,由于项目时间很紧,也没时间去研究了。决定换个连接池。c3p0是个比较成熟的连接池了,还有proxool也不错,而且有spring,配置起来都很简单。最后决定用proxool,配置好重启,速度很快,测试两天不访问,之前的问题也没再出现,下面把配置文件贡献出来。
pom里加上
<dependency>
<groupId>com.cloudhopper.proxool</groupId>
<artifactId>proxool</artifactId>
<version>0.9.1</version>
</dependency>
spring配置
<beans:bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<beans:property name="driver" value="com.mysql.jdbc.Driver"/>
<beans:property name="driverUrl" value="${jdbcUrl}" />
<beans:property name="user" value="${username}" />
<beans:property name="password" value="${password}" />
<beans:property name="alias" value="Pool_dbname" />
<beans:property name="houseKeepingSleepTime" value="90000" />
<beans:property name="prototypeCount" value="0" />
<beans:property name="maximumConnectionCount" value="50" />
<beans:property name="minimumConnectionCount" value="2" />
<beans:property name="simultaneousBuildThrottle" value="50" />
<beans:property name="maximumConnectionLifetime" value="14400000" />
<beans:property name="houseKeepingTestSql" value="select CURRENT_DATE" />
</beans:bean>
具体参数就不解释了,网上很多。