使用jdbc池的Grails2.2.4中处于等待状态的MySQL语句取消计时器

使用jdbc池的Grails2.2.4中处于等待状态的MySQL语句取消计时器,mysql,grails,mysql-connector,jdbc-pool,Mysql,Grails,Mysql Connector,Jdbc Pool,我在grails应用程序2.2.4版上使用了jdbcpool 7.0.47。当我检查threaddump时,它显示很多MySQL语句取消计时器处于等待状态。我还尝试将jdbc连接器移动到tomcat/lib,但它开始给mysql带来一些日期问题。因此,任何其他杀死这些线程的方法好的,评估连接池的所有参数,似乎validationQueryTimeOut导致了所有这些问题。删除该参数后,一切正常。现在,我的工作连接池属性如下 properties { initialSize=5 m

我在grails应用程序2.2.4版上使用了jdbcpool 7.0.47。当我检查threaddump时,它显示很多MySQL语句取消计时器处于等待状态。我还尝试将jdbc连接器移动到tomcat/lib,但它开始给mysql带来一些日期问题。因此,任何其他杀死这些线程的方法

好的,评估连接池的所有参数,似乎validationQueryTimeOut导致了所有这些问题。删除该参数后,一切正常。现在,我的工作连接池属性如下

properties {
    initialSize=5
    maxActive=50
    minIdle=5
    maxIdle=25
    maxWait = 10000
    maxAge = 10 * 60000
    timeBetweenEvictionRunsMillis=5000
    minEvictableIdleTimeMillis=60000
    validationQuery="SELECT 1"
    validationInterval=15000
    testWhileIdle=true
    testOnBorrow=true
    testOnReturn=false
    jdbcInterceptors = "ConnectionState"
    defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
}

我的程序不使用池,我也遇到过这个问题

我的修复方法是将MySQL连接器从5.1.6更新到5.1.35,并在程序结束时关闭SessionFactory,但我没有这样做