Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Problem mit MySQL-Verbindungszeitüberschreitung – Grails-Anwendung auf Tomcat mit Hibernate und ORM

Bezugnehmend auf diesen Artikel , haben Sie veraltete Verbindungen in Ihrem DBCP-Verbindungspool, die stillschweigend vom Betriebssystem oder der Firewall gelöscht werden.

Die Lösung besteht darin, eine Validierungsabfrage zu definieren und eine Plausibilitätsprüfung der Verbindung durchzuführen, bevor Sie sie tatsächlich in Ihrer Anwendung verwenden. In Grails geschieht dies tatsächlich durch Ändern der grails-app/conf/spring/Resource.groovy Datei und fügen Sie Folgendes hinzu:

beans = {
  dataSource(BasicDataSource) {
    //run the evictor every 30 minutes and evict any connections older than 30 minutes.
    minEvictableIdleTimeMillis=1800000
    timeBetweenEvictionRunsMillis=1800000
    numTestsPerEvictionRun=3
    //test the connection while its idle, before borrow and return it
    testOnBorrow=true
    testWhileIdle=true
    testOnReturn=true
    validationQuery="SELECT 1"
  }
}