开发者社区> 问答> 正文

Oracle VPN 断开后 重建连接,数据库无法恢复连接

` spring:

========================== datasource数据库设定

datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: oracle.jdbc.OracleDriver url: jdbc:oracle:thin:@10.19.0.17:1521:MoOne username: user001 password: passworduser01

数据源其他配置

druid:

配置初始化大小、最小、最大线程数

initialSize: 5 minIdle: 5

CPU核数+1,也可以大些但不要超过20,数据库加锁时连接过多性能下降

maxActive: 20

最大等待时间,内网:800,外网:1200(三次握手1s)

maxWait: 60000 timeBetweenEvictionRunsMillis: 60000

配置一个连接在池中最大空间时间,单位是毫秒

minEvictableIdleTimeMillis: 300000 validationQuery: select 1 from dual testWhileIdle: true

设置从连接池获取连接时是否检查连接有效性,true检查,false不检查

testOnBorrow: true

设置从连接池归还连接时是否检查连接有效性,true检查,false不检查

testOnReturn: true

可以支持PSCache(提升写入、查询效率)

poolPreparedStatements: true

配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙

filters: stat,wall,log4j

保持长连接

keepAlive: true maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 break-after-acquire-failure: true connection-error-retry-attempts: 3 jpa: show-sql: true properties: hibernate: dialect: org.hibernate.dialect.Oracle10gDialect data: cassandra: ssl: false ` //断开恢复后依然显示错误信息。 { "timestamp": "2021-03-20T07:06:26.629+0000", "status": 500, "error": "Internal Server Error", "message": "could not prepare statement; nested exception is org.hibernate.exception.GenericJDBCException: could not prepare statement", "path": "/home" }

原提问者GitHub用户liuhuiyu2004

展开
收起
山海行 2023-07-05 18:07:37 195 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果您在使用 Oracle 数据库时,遇到 VPN 断开后无法恢复连接的问题,可能是由于以下原因之一:

    网络连接问题。VPN 断开后,需要确保您的计算机可以访问数据库服务器。可能需要检查网络配置、防火墙和路由器等设置,以确保网络通畅。

    Oracle 数据库配置问题。在连接 Oracle 数据库时,需要确保数据库的配置正确。可能需要检查 tnsnames.ora 文件、监听器设置和 Oracle 数据库参数等设置,以确保数据库可以正常连接。

    Oracle 数据库连接池配置问题。如果您使用连接池来管理数据库连接,需要确保连接池的配置正确。可能需要检查连接池的最大连接数、最大等待时间和连接超时等设置,以确保连接池可以正确管理连接。

    如果您遇到无法连接 Oracle 数据库的问题,可以尝试以下几个方面进行处理:

    检查网络连接。需要确保您的计算机可以访问数据库服务器。可以尝试使用 ping 命令或者其他网络诊断工具来检查网络连接是否正常。

    检查 Oracle 数据库配置。需要确保数据库的配置正确。可以检查 tnsnames.ora 文件、监听器设置和 Oracle 数据库参数等设置,并进行相应的配置和优化。

    检查连接池配置。如果您使用连接池来管理数据库连接,需要确保连接池的配置正确。可以参考连接池的官方文档和示例,了解如何正确配置连接池,并遵循最佳实践和规范。

    2023-07-30 20:35:05
    赞同 展开评论 打赏
  • break-after-acquire-failure这个选项不要搞成true,搞成为true时不会自动重新建立连接,当数据库异常时负责建立连接的线程直接退出,数据库就算恢复正常了也只能重启应用

    原回答者GitHub用户zrlw

    2023-07-06 10:45:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载