【问题标题】:JDBC Connection get lost after some idle time空闲时间后 JDBC 连接丢失
【发布时间】:2021-06-10 13:32:26
【问题描述】:

一段时间后,我在执行一些 MySQL 查询时遇到通信链路故障异常。我正在使用 package groovy.sql 的 SQL 连接对象。如果我连续浏览该应用程序,该应用程序可以正常工作,但如果我在某个理想时间后浏览该应用程序,它将无法正常工作。

详情如下:

  • 雄猫 8
  • Grails-3.3.11

代码 sn-p:

def dataSource = grails.util.Holders.applicationContext.getBean('dataSource')
Sql sql = new Sql(dataSource);
sql.rows(query)

数据源属性:

properties:
            maxActive: 50
            maxIdle: 25
            minIdle: 5
            initialSize: 5
            maxWait: 10000
            removeAbandoned: true
            removeAbandonedTimeout: 400
            logAbandoned: true
            minEvictableIdleTimeMillis: 1800000
            timeBetweenEvictionRunsMillis: 1800000
            numTestsPerEvictionRun: 3
            testOnBorrow: true
            testWhileIdle: true
            testOnReturn: true
            validationQuery: "SELECT 1"

提前致谢。

【问题讨论】:

    标签: java datasource tomcat-jdbc grails-3.3.x


    【解决方案1】:

    我会尝试将 timeBetweenEvictionRunsMillis 设置为 -1(停用)。如果它解决了您的问题,则意味着您遇到了连接池管理问题。

    【讨论】:

      【解决方案2】:

      抛出了什么(如果有的话)异常? 你可以考虑看看 https://www.ibm.com/docs/en/mpf/8.0.0?topic=sources-handling-stale-connections

      【讨论】:

      • 感谢您提供文档链接。 Tomcat 和 Mysql 属性配置正确。实际上,我正在寻找“使连接长时间活跃”。
      猜你喜欢
      • 2011-03-10
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      • 2018-07-15
      • 2011-07-07
      相关资源
      最近更新 更多