数据库connetion reset ora 3136错误分析
这篇文章主要讲解了“数据库connetion reset ora 3136错误分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库connetion reset ora 3136错误分析”吧!
一、错误描述:这几天平台上线,支付系统要开始部署到生产环境。系统环境:linuxcentos 7.5 oracle11.2.0.4 java1.8。这套java系统总共有90个服务,每个服务有2个数据库连接,一起启动,分布在90台虚拟机中。发现有些机器连接数据的时候,卡住,等待一段时间,可能是1分钟,可能是2分钟,可能是10分钟,或者半个小时,然后日志打印出如下错误信息:
java.sql.SQLRecoverableException:IOError:Connectionresetatoracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:533)atoracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:557)atoracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:233)atoracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)atoracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:556)atjava.sql.DriverManager.getConnection(DriverManager.java:579)atjava.sql.DriverManager.getConnection(DriverManager.java:221)attest.jdbc.Main(Test.java:120)Causedby:java.net.SocketException:Connectionresetatjava.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)atjava.net.SocketOutputStream.write(SocketOutputStream.java:153)atoracle.net.ns.DataPacket.send(DataPacket.java:248)atoracle.net.ns.NetOutputStream.flush(NetOutputStream.java:227)atoracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:309)atoracle.net.ns.NetInputStream.read(NetInputStream.java:257)atoracle.net.ns.NetInputStream.read(NetInputStream.java:182)atoracle.net.ns.NetInputStream.read(NetInputStream.java:99)atoracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:121)atoracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:77)atoracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1173)atoracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:309)atoracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:200)atoracle.jdbc.driver.T4CTTIoauthenticate.doOSESSKEY(T4CTTIoauthenticate.java:404)atoracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:430)...35more
查看oracle的日志,发现如下错误:
FatalNIconnecterror12170.VERSIONINFORMATION:TNSforLinux:Version11.2.0.4.0-ProductionOracleBequeathNTProtocolAdapterforLinux:Version11.2.0.4.0-ProductionTCP/IPNTProtocolAdapterforLinux:Version11.2.0.4.0-ProductionTime:17-SEP-201813:54:01Tracingnotturnedon.Tnserrorstruct:nsmainerrcode:12535TNS-12535:TNS:operationtimedoutnssecondaryerrcode:12606ntmainerrcode:0ntsecondaryerrcode:0ntOSerrcode:0Clientaddress:(ADDRESS=(PROTOCOL=tcp)(HOST=10.14.254.99)(PORT=51492))WARNING:inboundconnectiontimedout(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错误分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。