不同网路下连接Oracle数据库时,发现经常断开连接,使用PLSQL也经常断开。
第一反应是CONNECT_TIME问题(参考), select * from user_resource_limits;
Oracle并没有限制CONNECT_TIME
《【线上问题】由防火墙导致的数据库空闲连接断开问题》给出接问题的原因及解决办法。
问题产生的原因:防火墙设置了TCP连接超时
解决办法:
1、调大防火墙的连接切断时长(省厅网管是大爷请不动)
2、Oracle数据库的DCD(也是大爷)
3、程序不定时执行查询
配置Druid设置:testWhileIdle timeBetweenEvictionRunsMillis(要少于TCP连接超时)
实际环境中,timeBetweenEvictionRunsMillis设置成60秒还是出现了:
最终只能开启testOnBorrow