使用Druid连接池远程访问阿里云服务器中安装的Oracle库,隔一段时间总是连接超时的解决方案
这个问题折磨了我好久,去各种途径寻求答案,最后看druid文档解决了。
先上文档链接
Druidc使用手册
问题的由来
我使用SpringBoot开发一个web项目,使用了Druid连接池,数据库是远程连接的我自己的阿里云ECS服务器中安装的oracle 11g
在开发过程中,总是会出现隔一段时间页面就刷新看不到数据,一直显示加载中,时间一长,后台就会报错(超时)
我使用的Druid配置
首先是版本1.1.21
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
其次是Properties配置
# 连接池配置
spring.datasource.druid.initial-size=10
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=50
# 配置获取连接等待超时的时间
spring.datasource.druid.max-wait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
# 保持连接活跃
spring.datasource.druid.keep-alive=true
# oracle配置
spring.datasource.druid.validation-query=SELECT * from dual
解决问题的核心配置:spring.datasource.druid.keep-alive=true
总结
1、多看Druid使用手册
2、多动手操作体验代码配置的功能
3、遇到问题多总结