微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hikari连接使应用程序无响应

如何解决hikari连接使应用程序无响应

在企业网络上,我正在使用springboot应用程序,该应用程序认具有Hikari连接池机制。启动应用程序时已建立数据库连接,以下是Hikari Pool配置:-

DEBUG com.zaxxer.hikari.HikariConfig - HikariPool-1 - configuration:
DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false
DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false
DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false
DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................false
DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................false
DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................false
DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................none
DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................none
DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................none
DEBUG com.zaxxer.hikari.HikariConfig - connectionInitsql...............none
DEBUG com.zaxxer.hikari.HikariConfig - connectionInitsql...............none
DEBUG com.zaxxer.hikari.HikariConfig - connectionInitsql...............none
DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery.............none
DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery.............none
DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery.............none
DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............30000
DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............30000
DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............30000
DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................none
DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................none
DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................none
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............none
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............none
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............none
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................none
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................none
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................none
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=<masked>}
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=<masked>}
DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=<masked>}
DEBUG com.zaxxer.hikari.HikariConfig - driverClassName................."com.microsoft.sqlserver.jdbc.sqlServerDriver"
DEBUG com.zaxxer.hikari.HikariConfig - driverClassName................."com.microsoft.sqlserver.jdbc.sqlServerDriver"
DEBUG com.zaxxer.hikari.HikariConfig - driverClassName................."com.microsoft.sqlserver.jdbc.sqlServerDriver"
DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{}
DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{}
DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{}
DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............none
DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............none
DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............none
DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000
DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000
DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000
DEBUG com.zaxxer.hikari.HikariConfig - initializationFailTimeout.......1
DEBUG com.zaxxer.hikari.HikariConfig - initializationFailTimeout.......1
DEBUG com.zaxxer.hikari.HikariConfig - initializationFailTimeout.......1
DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false
DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false
DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false
DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................jdbc:sqlserver://{db-name}.database.windows.net:1433;database={db-name};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................jdbc:sqlserver://{db-name}.database.windows.net:1433;database={db-name};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................jdbc:sqlserver://{db-name}.database.windows.net:1433;database={db-name};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........0
DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........0
DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........0
DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000
DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000
DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000
DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................10
DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................10
DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................10
DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................none
DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................none
DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................none
DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........none
DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........none
DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........none
DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................10
DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................10
DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................10
DEBUG com.zaxxer.hikari.HikariConfig - password........................<masked>
DEBUG com.zaxxer.hikari.HikariConfig - password........................<masked>
DEBUG com.zaxxer.hikari.HikariConfig - password........................<masked>
DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"HikariPool-1"
DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"HikariPool-1"
DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"HikariPool-1"
DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false
DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false
DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false
DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................false
DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................false
DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................false
DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutor...............none
DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutor...............none
DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutor...............none
DEBUG com.zaxxer.hikari.HikariConfig - schema..........................none
DEBUG com.zaxxer.hikari.HikariConfig - schema..........................none
DEBUG com.zaxxer.hikari.HikariConfig - schema..........................none
DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................internal
DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................internal
DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................internal
DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............default
DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............default
DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............default
DEBUG com.zaxxer.hikari.HikariConfig - username........................<masked>
DEBUG com.zaxxer.hikari.HikariConfig - username........................<masked>
DEBUG com.zaxxer.hikari.HikariConfig - username........................<masked>
DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000
DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000
DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000

我遇到一个问题,即在启动了一天的负载后,Spring Boot服务突然运行了一天,由于我假设驱动程序与驱动程序试图访问的数据源之间的通信链接,应用程序突然变得无响应。应用程序执行某些操作时连接失败,导致以下日志和应用程序未执行任何其他操作。

有时错误是:-

WARN 98332 --- [   scheduling-1] com.zaxxer.hikari.pool.ProxyConnection   : HikariPool-1 - Connection ConnectionID:1 ClientConnectionId: 91a118c1-e9c5-4bda-beae-bb8fba1ca9bf marked as broken because of sqlSTATE(08S01),ErrorCode(0)

com.microsoft.sqlserver.jdbc.sqlServerException: Operation timed out (Read Failed)
Caused by: java.net.socketException: Operation timed out (Read Failed)
at java.net.socketInputStream.socketRead0(Native Method) ~[na:1.8.0_265]
at java.net.socketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_265]
at java.net.socketInputStream.read(SocketInputStream.java:171) ~[na:1.8.0_265]
at java.net.socketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_265]
at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:1015) ~[mssql-jdbc-8.4.0.jre8.jar:na]

有时在网络薄弱的时候,间歇性地看到该应用程序无响应,只有Hikari管家日志可以显示如下,而没有其他内容

    Caused by: com.microsoft.sqlserver.jdbc.sqlServerException: broken pipe (Write Failed)
    at com.microsoft.sqlserver.jdbc.sqlServerConnection.terminate(sqlServerConnection.java:3145)
    at com.microsoft.sqlserver.jdbc.TDSChannel.write(IOBuffer.java:2076)
    at com.microsoft.sqlserver.jdbc.TDSWriter.flush(IOBuffer.java:4307)
    at com.microsoft.sqlserver.jdbc.TDSWriter.writePacket(IOBuffer.java:4209)
    at com.microsoft.sqlserver.jdbc.TDSWriter.endMessage(IOBuffer.java:3247)
    at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:7737)
    at com.microsoft.sqlserver.jdbc.sqlServerPreparedStatement.doExecutePreparedStatement(sqlServerPreparedStatement.java:600)
    at com.microsoft.sqlserver.jdbc.sqlServerPreparedStatement$PrepStmtExecCmd.doExecute(sqlServerPreparedStatement.java:524)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7375)
    at com.microsoft.sqlserver.jdbc.sqlServerConnection.executeCommand(sqlServerConnection.java:3200)
    at com.microsoft.sqlserver.jdbc.sqlServerStatement.executeCommand(sqlServerStatement.java:247)
    at com.microsoft.sqlserver.jdbc.sqlServerStatement.executeStatement(sqlServerStatement.java:222)
    at com.microsoft.sqlserver.jdbc.sqlServerPreparedStatement.executeQuery(sqlServerPreparedStatement.java:446)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57)
    ... 40 common frames omitted
Caused by: java.net.socketException: broken pipe (Write Failed)
    at java.net.socketoutputStream.socketWrite0(Native Method)
    at java.net.socketoutputStream.socketWrite(SocketoutputStream.java:111)
    at java.net.socketoutputStream.write(SocketoutputStream.java:155)
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream.writeInternal(IOBuffer.java:1111)
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream.write(IOBuffer.java:1104)
    at sun.security.ssl.OutputRecord.writeBuffer(OutputRecord.java:431)
    at sun.security.ssl.OutputRecord.write(OutputRecord.java:417)
    at sun.security.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:894)
    at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:865)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)
    at com.microsoft.sqlserver.jdbc.TDSChannel.write(IOBuffer.java:2071)
    ... 54 common frames omitted
2020-10-22 20:00:06.265 || [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection ConnectionID:57 ClientConnectionId: b1d03bb3-f780-477f-97ae-653f43544265
2020-10-22 20:00:06.265 || [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection ConnectionID:57 ClientConnectionId: b1d03bb3-f780-477f-97ae-653f43544265
2020-10-22 20:00:06.266 || [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - After adding stats (total=10,active=0,idle=10,waiting=0)
2020-10-22 20:00:06.266 || [HikariPool-1 connection adder] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - After adding stats (total=10,waiting=0)
2020-10-22 20:00:20.682 || [HikariPool-1 housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Pool stats (total=10,waiting=0)
2020-10-22 20:00:50.687 || [HikariPool-1 housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Pool stats (total=10,waiting=0)

即使添加了新的连接,我们也只能看到active = 0。 我们如何使我们的Hikari连接正常关闭,并用另一个丢失数据的方式替换它。在此方面的任何帮助,我将不胜感激。谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。