Mysql
 sql >> Database >  >> RDS >> Mysql

Problema di timeout della connessione MySQL - Applicazione Grails su Tomcat che utilizza Hibernate e ORM

Facendo riferimento a questo articolo , hai connessioni obsolete nel pool di connessioni DBCP che vengono eliminate automaticamente dal sistema operativo o dal firewall.

La soluzione è definire una query di convalida ed eseguire un controllo di integrità della connessione prima di utilizzarla effettivamente nella tua applicazione. In grail ciò viene effettivamente eseguito modificando grails-app/conf/spring/Resource.groovy file e aggiungi quanto segue:

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"
  }
}