首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当无法访问oracle数据库服务器时,jdbc调用超时很长时间。

当无法访问oracle数据库服务器时,jdbc调用超时很长时间。
EN

Stack Overflow用户
提问于 2019-10-01 03:50:34
回答 1查看 161关注 0票数 0

我正在为spring-boot服务构建自定义健康检查,该服务连接到7个不同国家/地区的oracle数据库。我想要构建这些,这样我就可以使用spring-boot-admin来监控这些服务。问题是,当服务器不可用时,例如它停机或防火墙配置不正确,超时需要很长的时间,一分钟。Spring-boot-admin然后将服务器标记为不可访问,而不是关闭。

据我所知,发生的情况是套接字永远不会连接,最终连接会遇到其他超时。在我的运行状况检查中,我尝试配置网络超时,但似乎没有任何区别。我们正在使用

https://docs.oracle.com/en/database/oracle/oracle-database/18/jjuar/oracle/ucp/jdbc/PoolDataSourceImpl.html

和ojdbc7

健康检查使用为主池定义的数据源been,但是如果设置网络超时已经太晚,我不确定是否已经创建了池。对我来说,问题是文档确实不清楚哪些属性是有效的。

我试过了,但它们似乎什么也不起作用

查看了这些链接

Setting Network Timeout for JDBC connection

JDBC getConnection timeout issue

PreparedStatement won't ever timeout even if explicitly set

这提供了有关超时类型的更多详细信息。

https://www.programering.com/a/MDNzIjMwATY.html

所以我的问题是,人们应该如何真正设置oracle池来处理网络/套接字、事务、池和语句超时?

EN

回答 1

Stack Overflow用户

发布于 2019-10-19 02:55:04

推荐的连接URL如下所示。此外,请参阅UCPTimeouts.java以签出与超时相关的属性。

代码语言:javascript
复制
 (DESCRIPTION =
         (CONNECT_TIMEOUT=90)  (RETRY_COUNT=20)(RETRY_DELAY=3) (TRANSPORT_CONNECT_TIMEOUT=3) 
           (ADDRESS_LIST =
            (LOAD_BALANCE=on)
            ( ADDRESS = (PROTOCOL = TCP)(HOST=primary-scan)(PORT=1521)))
            (ADDRESS_LIST =
             (LOAD_BALANCE=on)
            ( ADDRESS = (PROTOCOL = TCP)(HOST=secondary-scan)(PORT=1521)))
           (CONNECT_DATA=(SERVICE_NAME = gold-cloud)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58174413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档