Problema com pool de conexão tomcat 7 + grails 2.2.4 + mysql 5.5
20/08/2015 09:17
0
Olá,

Trabalho no setor de desenvolvimento de um Centro Universitário e temos um sistema em Grails para administrar as inscrições para os eventos de extensão, esse sistema funciona a um ano sem problemas, contudo temos enfrentado o seguinte cenário: durante duas inscrições dentre várias que ocorreram esse mês, o sistema simplesmente parou, resultando em um erro HTTP 503. Olhando nos logs do Tomcat encontramos o seguinte erro:


ERROR [Thread: ajp-bio-127.0.0.1-8009-exec-36] [util.JDBCExceptionReporter], msg:[ Cannot get a connection, pool error Timeout waiting for idle object ]
?Timeout waiting for idle object. Stacktrace follows: ]java.util.NoSuchElementException: Timeout waiting for idle object  
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1167)  
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)  
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)  
at grails.orm.HibernateCriteriaBuilder.invokeMethod(HibernateCriteriaBuilder.java:1618)
at br.edu.unirn.sisuni.subsistema.EventosController.getEventosComInscricaoHoje(EventosController.groovy:45)  
at br.edu.unirn.sisuni.subsistema.EventosController.index(EventosController.groovy:30)  
at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195)  
at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
at java.lang.Thread.run(Thread.java:745)
O nosso DataSource está da seguinte maneira

dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "USUÁRIO DO BANCO"
password="SENHA DO BANCO"
dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update"
url =""
}
}
test {
dataSource {
dbCreate = "update"
url = ""
}
}
production {
dataSource {
dbCreate = "update"
url = "URL"
properties {
maxActive = 50
maxIdle = 25
minIdle = 5
initialSize = 5
minEvictableIdleTimeMillis = 60000
timeBetweenEvictionRunsMillis = 60000
maxWait = 10000
validationQuery = "/* ping */"
}
}
}
}
Poderiam me orientar?
Tags: grails 2.2.4, tomcat 7, mysql, pool


0
Veja se não tem algum Dead-lock no banco quando ocorrer o erro.
Se não me engano o framework gerencia a abertura e fechamento de conexões...mas se por ventura no seu condigo tiver alguma abertura de conexão e não for fechada corretamente...também da esse erro.
Tente voltar sua aplicação para uma versão que ja funcionou antes e veja se persiste o erro...caso contrario pode ser conexão fechada errada ou não fechada!



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto