相关疑难解决方法(0)

在MySQL,Grails 2应用程序更长时间不活动期间保持池连接活动(或将它们计时并获得新的连接)的正确方法

我有一个grails应用程序,有高活动的flurries,但往往是一段时间不活动,可以持续几个小时到一个晚上.我注意到早上的第一个用户得到以下类型的异常,我相信这是由于池中的连接过时而MYSql数据库关闭它们.

我在Googling中发现了有关使用Connector/J连接属性'autoReconnect = true'是否是一个好主意的信息(以及即使连接被恢复,客户端是否仍会获得异常),或者是否设置其他属性将周期性地逐出或刷新空闲连接,测试借用等.Grails使用下面的DBCP.我目前有一个简单的配置,如下所示,我正在寻找一个答案,如何最好地确保在长时间非活动期间有效且未关闭后从池中抓取任何连接.

dataSource {
        pooled = true
        dbCreate = "update"
        url = "jdbc:mysql://my.ip.address:3306/databasename"
        driverClassName = "com.mysql.jdbc.Driver"
        dialect = org.hibernate.dialect.MySQL5InnoDBDialect
        username = "****"
        password = "****"
        properties {
          //what should I add here?
          }
    }
Run Code Online (Sandbox Code Playgroud)

例外

    2012-06-20 08:40:55,150 [http-bio-8443-exec-1] ERROR transaction.JDBCTransaction  - JDBC begin failed
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 64,129,968 milliseconds ago.  The last packet sent successfully to the server was 64,129,968 milliseconds ago. is longer than the server configured value of 'wait_timeout'. …
Run Code Online (Sandbox Code Playgroud)

mysql grails connection-pooling connector-j

37
推荐指数
2
解决办法
7万
查看次数

标签 统计

connection-pooling ×1

connector-j ×1

grails ×1

mysql ×1