oracle集成高可用方案后Java程序无法自动重连记录

背景:
最近公司升级oracle数据库,源数据库版本oracle10,升级数据库版本oracle12c.2。升级数据库后做了双节点的高可用,在测试应用程序是否可以顺利兼容高可用的时候,发现停掉第一节点,只运行第二节点,程序无法自动连接切换为2节点的数据库。
原因:
经过排查发现,我的应用在配置数据源配置的时候没有配置回收连接池里超时的连接。由于我的应用有很多,有的使用SSM架构,有的使用springboot架构。所有在不同的项目参数配置文件里增加以下代码即可解决问题。

#是否在自动回收超时连接的时候打印连接的超时错误
spring.datasource.log-abandoned=true
#是否自动回收超时连接
spring.datasource.remove-abandoned=true
#超时时间(以秒数为单位)
spring.datasource.remove-abandoned-timeout=180
#检测数据库的查询语句
spring.datasource.validation-query=select 1 from dual
spring.datasource.test-on-borrow=true

以上为springboot使用代码,如果想在SSM或者其他框架内使用,换成相应框架的配置格式即可。

oracle12c中连接数据库格式:
jdbc:oracle:this:@//192.169.1.2:1521/cis

你可能感兴趣的:(oracle断线重连,Java)