testonborrow tomcat7的jdbc连接池的问题
如果连接空闲没被激活的话,每隔半小时,这些连接全部失效.可能是防火墙问题,但是数据库服务器和tomcat服务器都在内网中,好像也不是防火墙问题.解决方法:testonbo...
如果连接空闲没被激活的话,每隔半小时,这些连接全部失效.
可能是防火墙问题,但是数据库服务器和tomcat服务器都在内网中,好像也不是防火墙问题.
解决方法:
testonborrow="true"
现在有个问题,如果半小时内还没失连时访问的话,完全感觉不到testonborrow="true"带来的性能降低.
但是半小时过后再访问,第一次访问时,要延迟4-5秒钟,这是非常不友好的.已经测试过很多遍了.
我设置的初始化连接是9个,难道是它依次测了9个,所以延迟这么久?还是只测了我访问的这一个?
有什么更好的方法解决?难道tomcat7连接池没有这样的功能:
隔一个时间自动执行个sql,但是不要去检测什么空闲连接然后drop掉,testWhileIdle每次都drop了我的连接,都drop掉了那还有什么用。就是要它只执行个sql ,不干别的事。
本来还可以用另一个属性设置成0,这样就不会drop掉了,但是新问题又来了,空闲连接只增不减会出问题的。
oracle有个sqlnet.ora里面那个东西我也试过,没起作用,我设置成10,应该够小了。 展开
可能是防火墙问题,但是数据库服务器和tomcat服务器都在内网中,好像也不是防火墙问题.
解决方法:
testonborrow="true"
现在有个问题,如果半小时内还没失连时访问的话,完全感觉不到testonborrow="true"带来的性能降低.
但是半小时过后再访问,第一次访问时,要延迟4-5秒钟,这是非常不友好的.已经测试过很多遍了.
我设置的初始化连接是9个,难道是它依次测了9个,所以延迟这么久?还是只测了我访问的这一个?
有什么更好的方法解决?难道tomcat7连接池没有这样的功能:
隔一个时间自动执行个sql,但是不要去检测什么空闲连接然后drop掉,testWhileIdle每次都drop了我的连接,都drop掉了那还有什么用。就是要它只执行个sql ,不干别的事。
本来还可以用另一个属性设置成0,这样就不会drop掉了,但是新问题又来了,空闲连接只增不减会出问题的。
oracle有个sqlnet.ora里面那个东西我也试过,没起作用,我设置成10,应该够小了。 展开
1个回答
展开全部
jdbc和连接池对于你这个场景来说,都足够,既然用spring管理了,建议还是使用连接池,另外,spring自身没有实现连接池,一般都是对第三方连接池的包装,常见的有C3P0,dbcp以及最近比较流行的boneCP等,这几个配置都差不多太多,以boneCP为例:
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="idleConnectionTestPeriod" value="60" />
<property name="idleMaxAge" value="240" />
<property name="maxConnectionsPerPartition" value="30" />
<property name="minConnectionsPerPartition" value="10" />
<property name="partitionCount" value="2" />
<property name="acquireIncrement" value="5" />
<property name="statementsCacheSize" value="100" />
<property name="releaseHelperThreads" value="3" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="idleConnectionTestPeriod" value="60" />
<property name="idleMaxAge" value="240" />
<property name="maxConnectionsPerPartition" value="30" />
<property name="minConnectionsPerPartition" value="10" />
<property name="partitionCount" value="2" />
<property name="acquireIncrement" value="5" />
<property name="statementsCacheSize" value="100" />
<property name="releaseHelperThreads" value="3" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询