GORM没有关闭grails受控类之外的连接

时间:2015-10-29 12:45:39

标签: grails gorm

我在grails 2.4.3上有一个方法(我删除了无关紧要的部分):

@Override
protected void handleAnswerEvent(Message event) {
     def con = Contrato.find("from Contrato where ? in elements(telefones)", [tel])
}

但是这个方法是在grails托管类之外的一个线程中运行的(我不太确定我在这里说的是有道理的......)。重点是经过一段时间它给了我:

org.apache.tomcat.jdbc.pool.PoolExhaustedException: [http-bio-8080-exec-254] Timeout: Pool empty.

更改最大连接数无法解决泄漏问题。我应该怎么做才能自动关闭这个或者还有其他解决方法吗?

1 个答案:

答案 0 :(得分:0)

看看这些链接,我猜他们可能会帮助您解决问题

https://jira.grails.org/browse/GRAILS-11043

https://jira.grails.org/browse/GRAILS-11700

感谢。

[更新]

问题与连接池泄漏问题有关。如果您没有明确关闭连接,则在事务上下文之外使用GroovySQL会泄漏连接(GRAILS-5454修复了在事务上下文中,但问题仍在事务之外)。 看看这些链接,我猜他们可能会帮助您解决问题。问题已在grails 2.4.4中解决

https://github.com/grails/grails-core/issues/2797

https://github.com/grails/grails-core/issues/3017

https://github.com/grails/grails-core/issues/2776

感谢。