Odnosząc się do tego artykułu , masz przestarzałe połączenia w puli połączeń DBCP, które są po cichu zrzucane przez system operacyjny lub zaporę ogniową.
Rozwiązaniem jest zdefiniowanie zapytania weryfikacyjnego i sprawdzenie poprawności połączenia, zanim faktycznie użyjesz go w swojej aplikacji. W grails jest to faktycznie wykonywane przez modyfikację grails-app/conf/spring/Resource.groovy plik i dodaj następujące:
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"
}
}