应用程序连接数据库报错 errorCode 17002, state 08006、IO Error: Connection reset

13 篇文章 2 订阅

错误摘要:

1、create connection SQLException, url: jdbc:oracle:thin:**/***@*****:1521/orcl, errorCode 17002, state 08006

2、java.sql.SQLRecoverableException: IO Error: Connection reset

3、Caused by: java.net.SocketException: Connection reset

环境

       服务器:华为arm架构

       操作系统: centos7.6

       中间件:tomcat-8.35、jdk-1.8.261

       数据库:mysql5.7、oracle 11.2.0.1.0

错误日志

 排查步骤一:排查数据库

sqldeveloper连接数据库正常

应用服务器到数据库服务器的网

络及端口 正常

数据库状态  正常

数据库会话上限   正常

数据库日志   正常

数据库监听日志文件  正常

系统资源   正常

以上证明数据库一切正常

排查步骤二-排查应用服务器

服务器防火墙,selinux、端口等都正常,

排查步骤三-linux熵池

后来在网上查了和我的情况一模一样的这个报错,好多人都说是linux熵池不够的问题(具体的熵池是啥感兴趣的可以自己去了解一下)然后满心欢喜的按照思路安装了rng-tools工具增加系统熵池,安装好后熵池确实增加了,但系统报错依旧。可见并没什么用。

最终解决方案

后来困惑3天之后突然想起服务器是华为的云主机,想到是不是网络方面有点问题(因为之前偶尔是能正常连接数据库,且各机器间相互通讯是没问题的,就没考虑到是网络问题),于是开始一步步排查问题,最后排查到dns时候,看见/etc/resolv.conf文件下配置了几个dns

拿出来ping了一下   好家伙  一个不通,初步证明应该是这几个不能使用的dns在捣乱,注释掉之后重启部署的应用服务,果然正常了

后续:数据库服务器上的监听如果是监听的主机名,最好在应用服务器的hosts文件将ip和主机名映射关系写上,否则也有可能连接不上数据库

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜灬狼丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值