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,应该够小了。
展开
 我来答
杭州同济医院13
推荐于2016-04-20 · TA获得超过864个赞
知道大有可为答主
回答量:2494
采纳率:0%
帮助的人:1836万
展开全部
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>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式