alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.9k stars 8.57k forks source link

Druid: Skip not validate connection. #1086

Closed triffic-tang closed 8 years ago

triffic-tang commented 8 years ago

应用使用了Druid去链接Oracle数据库,奇怪的事情发生了:应用在一段不活跃的时间之后(即在这段时间内没有访问这个应用),再次访问应用时,后台dblog显示:

2016-02-26 14:06:34.306 DEBUG http-bio-9002-exec-9 org.apache.ibatis.transaction.jdbc.JdbcTransaction 132 openConnection - Opening JDBC Connection... 2016-02-26 14:22:09.620 DEBUG http-bio-9002-exec-9 com.alibaba.druid.support.logging.Log4j2Impl 63 debug - skip not validate connection. 2016-02-26 14:22:09.750 DEBUG http-bio-9002-exec-9 org.apache.ibatis.transaction.jdbc.JdbcTransaction 137 openConnection - JDBC connection is [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@47254e47]

要过很长时间才能重新链接到db,难道防火墙在超过一定的时间之后,会自动断开链接?

yufeng217 commented 7 years ago

请问这个问题如何解决的?我用最新版本 1.0.29 这个问题仍然存在!

yufeng217 commented 6 years ago

问题已经变相解决了。回复一下,让后来者有个参考。 环境是:oracle 11g + tomcat8.35.2 + druid1.1.10 + jfinal-java8-3.4,linux CentOS 6.5。

反复尝试改变 druid 的参数(初始连接池大小、最小空闲连接数、连接等待超时的时间、指定每个连接上PSCache的大小)都不成。

最后,写了一个轮循,每分钟执行 select 1 from dual; SQL 语句,使其保持有效连接,观察了 1 天没有问题。

话说,druid 在新申请连接时检查是否有效,那么再检查空闲连接时,也检查一下是否有效,是不是就解决了这个问题呢?免的开发者再写一个轮循了。