1.2.6版本 生产环境运行一段时间后连接池发生错误 get connection timeout retry : 1 接着创建连接发生 IO Error: Connection reset 最后 failContinuous is true
2021-06-08 11:21:28.710 ERROR 57448 --- [ task23] c.alibaba.druid.filter.stat.StatFilter : slow sql 25902 millis. select a from table 2021-06-08 11:21:21.927 ERROR 57448 --- [ task10] c.alibaba.druid.filter.stat.StatFilter : slow sql 22402 millis. select a from table 2021-06-08 11:23:55.604 ERROR 57448 --- [ task10] c.alibaba.druid.filter.stat.StatFilter : slow sql 8216 millis. select a from table 2021-06-08 11:23:55.612 ERROR 57448 --- [io-8081-exec-61] c.alibaba.druid.filter.stat.StatFilter : slow sql 8181 millis. select a from table 2021-06-08 11:23:55.615 WARN 57448 --- [io-8081-exec-43] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.617 WARN 57448 --- [io-8081-exec-37] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.617 WARN 57448 --- [io-8081-exec-59] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.623 WARN 57448 --- [io-8081-exec-42] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.618 WARN 57448 --- [io-8081-exec-58] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.623 WARN 57448 --- [io-8081-exec-35] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.636 WARN 57448 --- [io-8081-exec-50] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.636 WARN 57448 --- [io-8081-exec-48] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.636 WARN 57448 --- [io-8081-exec-49] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:23:55.637 WARN 57448 --- [io-8081-exec-40] com.alibaba.druid.pool.DruidDataSource : get connection timeout retry : 1 2021-06-08 11:24:03.983 ERROR 57448 --- [io-8081-exec-35] c.alibaba.druid.filter.stat.StatFilter : slow sql 8327 millis. select a from table 2021-06-08 11:24:04.006 ERROR 57448 --- [eate-1384646526] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:oracle:thin:@x.x.x.x:1521:orcl, errorCode 17002, state 08006
java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:533) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:557) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:233) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:556) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:227) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1659) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2801) ~[druid-1.2.6.jar:1.2.6] Caused by: java.net.SocketException: Connection reset at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) ~[na:1.8.0_65] at java.net.SocketOutputStream.write(SocketOutputStream.java:153) ~[na:1.8.0_65] at oracle.net.ns.DataPacket.send(DataPacket.java:248) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:227) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.net.ano.AnoComm.b(Unknown Source) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.net.ano.Ano.negotiation(Unknown Source) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.net.ns.NSProtocol.connect(NSProtocol.java:510) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1625) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:365) ~[ojdbc6-11.2.0.3.jar:11.2.0.3.0] ... 10 common frames omitted
java.sql.SQLTimeoutException: ORA-01013: user requested cancel of current operation at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:400)
2021-06-08 11:25:16.825 INFO 57448 --- [eate-1384646526] c.a.druid.pool.DruidAbstractDataSource : {dataSource-1} failContinuous is true
java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3332) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:514)
这个什么原因造成的呢?
查询都8-22s了,网络或者数据库状态不太对? c.alibaba.druid.filter.stat.StatFilter : slow sql 22402 millis. select a from table
原提问者GitHub用户antporter
根据您提供的信息,可能存在以下几种问题:
连接池繁忙或连接池资源不足。报错信息中出现了 get connection timeout retry : 1 的提示,这可能是由于连接池中的连接资源不足或者连接池繁忙导致的。建议检查连接池的配置和连接池中连接的使用情况,确保连接池资源的充足和合理使用。
网络连接问题。报错信息中出现了 IO Error: Connection reset 的提示,这可能是由于网络连接中断或服务器异常导致的。建议检查网络连接的稳定性和服务器的运行状态,并进行相应的调试和优化。
SQL 执行效率问题。报错信息中出现了 slow sql 的提示,这可能是由于 SQL 语句执行效率低下导致的。建议检查 SQL 语句的正确性和优化,并进行相应的调试和优化。
这个时间点并发确实很大,但是集群的其他节点没有报错,不确定是数据库导致的还是网络导致的。这个节点最后进程还在,就是最后堆溢出了,导致整个应用挂掉。
已定位到原因。并发获取连接的个数超过”最大并发连接数“导致。但此时连接数远远未到达最大连接数。 select count(*) from v$session where status='ACTIVE' --最大并发连接数
原回答者GitHub用户antporter
这段日志中给出了一些错误和警告信息,可以通过这些信息来推断问题的可能原因:
get connection timeout retry: 1
:连接池无法获取连接,且重试次数为1。IO Error: Connection reset
:连接被重置,发生了输入/输出错误。failContinuous is true
:连接创建失败连续发生多次。根据日志中的信息以及查询执行时间长的警告 c.alibaba.druid.filter.stat.StatFilter: slow sql 22402 millis. select a from table
,有以下可能的原因:
java.lang.OutOfMemoryError: Java heap space
错误指示堆空间不足,导致内存溢出。这可能是由于程序运行期间产生大量对象占用了过多的内存空间。综上所述,可能的原因包括网络问题、数据库问题和内存问题。要解决此问题,可以采取以下措施:
如果问题仍然存在,可能需要进一步分析日志和系统状态来确定准确的原因和解决方案。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。