【问题标题】:SQL Error: 17002, SQLState: 08006 IO Error: A connection attempt failed because the connected party did not properly respond after a period of timeSQL 错误:17002,SQLState:08006 IO 错误:连接尝试失败,因为连接方在一段时间后没有正确响应
【发布时间】:2021-03-14 08:36:13
【问题描述】:

我有一个多线程的 spring 应用程序,它通过一组查询与数据库交互并提供输出。我最近遇到了这个错误,不确定它的确切原因。至于管理服务器上的连接,我没有看到任何问题,到目前为止,一切都按预期执行,我最近没有进行任何更改。

我明白了一段时间后,事情开始按预期工作,但现在我很好奇这个错误及其原因,只是为了防止将来发生这种情况。

将日志跟踪发布如下,我们将非常感谢任何有助于解码的帮助。

SQL Error: 17002, SQLState: 08006
2021-03-11 13:46:28,508 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-59) IO Error: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
2021-03-11 13:46:28,548 WARN  [org.jboss.jca.adapters.jdbc.WrappedConnection] (default task-59) IJ030041: Error during closing a statement for: java:jboss/datasources/<pool-name>: java.sql.SQLRecoverableException: Closed Connection
    at oracle.jdbc.driver.PhysicalConnection.needLine(PhysicalConnection.java:3247)
    at oracle.jdbc.driver.OracleStatement.closeOrCache(OracleStatement.java:1392)
    at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:1375)
    at oracle.jdbc.driver.OracleStatementWrapper.close(OracleStatementWrapper.java:119)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.close(OraclePreparedStatementWrapper.java:96)
    at org.jboss.jca.adapters.jdbc.WrappedStatement.internalClose(WrappedStatement.java:1491)
    at org.jboss.jca.adapters.jdbc.WrappedConnection.returnConnection(WrappedConnection.java:286)
    at org.jboss.jca.adapters.jdbc.WrappedConnection.close(WrappedConnection.java:256)
    at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.releaseConnection(AbstractSessionImpl.java:391)
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.releaseConnection(LogicalConnectionImpl.java:255)
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.close(LogicalConnectionImpl.java:182)
    at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.close(JdbcCoordinatorImpl.java:205)
    at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.close(TransactionCoordinatorImpl.java:297)
    at org.hibernate.internal.SessionImpl.close(SessionImpl.java:369)

【问题讨论】:

    标签: java database wildfly oracle12c


    【解决方案1】:

    Hibernate 尝试关闭语句,但连接(会话)由于某种原因已关闭/终止:

    关闭语句时出错: java:jboss/datasources/: java.sql.SQLRecoverableException: 关闭连接

    SQL 错误:17002,SQLState:08006 IO 错误:连接尝试 失败,因为连接方没有正确响应后 一段时间,或建立连接失败,因为已连接 主机没有响应

    发生这种情况可能有多种原因。可能是网络问题导致超时。

    如果您的 DBA 可以看到数据库服务器上的任何错误,您应该与他核实。

    您是否为 JDBC 数据源配置了数据库连接验证? http://www.mastertheboss.com/jboss-server/jboss-datasource/how-to-automatically-reconnect-to-the-database-in-wildfly

    【讨论】:

    • 谢谢@SimonMartinelli,我正在与 DB 团队进行对话以获取他们的统计数据。我没有使用任何验证,但是您提供的链接看起来很有希望。
    【解决方案2】:

    您的应用服务器和数据库服务器之间存在网络连接中断。但是是什么原因造成的,没有更多细节我们无法解释。如果它开始自动工作,那么它看起来像是两台服务器之间的临时网络问题。或者,如果您在 db 服务器 url 中使用了无效的 ip/dns 名称,就会导致这种情况。但这需要您做出改变才能解决问题。

    【讨论】:

      猜你喜欢
      • 2019-06-22
      • 2021-04-22
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 2016-08-30
      • 2020-06-19
      • 2014-01-07
      相关资源
      最近更新 更多