数据库connetion reset ora 3136错误分析

65次阅读
没有评论

共计 3158 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要讲解了“数据库 connetion reset  ora 3136 错误分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“数据库 connetion reset  ora 3136 错误分析”吧!

      一、错误描述:这几天平台上线,支付系统要开始部署到生产环境。系统环境:linux centos 7.5 oracle11.2.0.4  java1.8。这套 java 系统总共有 90 个服务,每个服务有 2 个数据库连接,一起启动,分布在 90 台虚拟机中。发现有些机器连接数据的时候,卡住,等待一段时间,可能是 1 分钟,可能是 2 分钟,可能是 10 分钟,或者半个小时,然后日志打印出如下错误信息:

java.sql.SQLRecoverableException: IO Error: Connection reset
 at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:533)
 at oracle.jdbc.driver.PhysicalConnection. init (PhysicalConnection.java:557)
 at oracle.jdbc.driver.T4CConnection. init (T4CConnection.java:233)
 at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
 at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:556)
 at java.sql.DriverManager.getConnection(DriverManager.java:579)
 at java.sql.DriverManager.getConnection(DriverManager.java:221)
 at test.jdbc.Main(Test.java:120)
Caused by: java.net.SocketException: Connection reset
 at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
 at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
 at oracle.net.ns.DataPacket.send(DataPacket.java:248)
 at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:227)
 at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:309)
 at oracle.net.ns.NetInputStream.read(NetInputStream.java:257)
 at oracle.net.ns.NetInputStream.read(NetInputStream.java:182)
 at oracle.net.ns.NetInputStream.read(NetInputStream.java:99)
 at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:121)
 at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:77)
 at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1173)
 at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:309)
 at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:200)
 at oracle.jdbc.driver.T4CTTIoauthenticate.doOSESSKEY(T4CTTIoauthenticate.java:404)
 at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:430)
 ... 35 more

查看 oracle 的日志,发现如下错误:

Fatal NI connect error 12170.
 VERSION INFORMATION:
 TNS for Linux: Version 11.2.0.4.0 - Production
 Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
 TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
 Time: 17-SEP-2018 13:54:01
 Tracing not turned on.
 Tns error struct:
 ns main err code: 12535
 
TNS-12535: TNS:operation timed out
 ns secondary err code: 12606
 nt main err code: 0
 nt secondary err code: 0
 nt OS err code: 0
 Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.14.254.99)(PORT=51492))
WARNING: inbound connection timed out (ORA-3136)

偶尔还会有一两台机器发起大量的数据库空连接请求。我在 oracle 的连接登录日志 dba_audit_trail 有如下统计:

数据库登录报错:null password given; logon denied:

二、这 2 个问题最难是,很难追踪:问题时有时无,而且 90 个机器请求数据库,有些机器能迅速连接上,有些报超时。

到目前为止,搞清楚我说的问题了吗?目前有两个问题:1.java 应用连接启动报超时,connection reset ,oracle  日志报 WARNING: inbound connection timed out (ORA-3136)。2 . 发起大量数据库连接空请求问题 null password given; logon denied .  其实这 2 个问题发生最难追踪的是:错误现象时有时无。比如问题 1,连接超时,启动 5 遍,可能第 6 遍连接就能立即连接上数据库。问题 2,不是每次启动,都是大规模的发起空连接请求错误。而是有时候。

感谢各位的阅读,以上就是“数据库 connetion reset  ora 3136 错误分析”的内容了,经过本文的学习后,相信大家对数据库 connetion reset  ora 3136 错误分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计3158字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)