使用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、遇到问题多总结

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐