【问题标题】:PooledConnection has already been closed error with multiple datasourcesPooledConnection 已关闭多个数据源的错误
【发布时间】:2016-12-10 19:15:44
【问题描述】:

我们正在针对 MySQL 数据库运行 Grails 2.5.3,并且最近引入了第二个数据源定义。我们在调用多个事务服务的非事务服务中遇到以下异常。尝试启动第二个事务时发生异常:

» 3 Aug 2016 16:49:44.119  PooledConnection has already been closed.. Stacktrace follows: 
» 3 Aug 2016 16:49:44.119  java.sql.SQLException: PooledConnection has already been closed. 

在第一个事务结束后,Grails 似乎正在关闭与第二个数据源的连接,并试图重用该连接。我想知道是否有人看到过这个和/或解决过这个问题。

【问题讨论】:

    标签: grails tomcat7 connection-pooling


    【解决方案1】:

    我们遇到了同样的问题,但不是针对两个不同的数据源。我们的应用程序使用的是 Hibernate 和 iBatis,虽然 hibernate 部分集成在 grails 中并且工作正常,但 iBatis 代码在调用第二个连续事务时出现了上述问题。

    为了解决这个问题,我们在 resources.groovy 中创建了另一个数据源,并将 iBatis 代码与这个新数据源一起使用。我们解决方案的配置详情可以参考Grails Pooled Connection Exception

    【讨论】:

    • 但是,请注意这只是一个 hack。我们仍在寻找更好的解决方案。如果您能找到更好的东西或缩小问题的原因,请告诉我。
    猜你喜欢
    • 2016-07-18
    • 2014-05-06
    • 2017-06-12
    • 2020-05-31
    • 1970-01-01
    • 2016-09-13
    • 2017-12-12
    • 1970-01-01
    • 2014-08-02
    相关资源
    最近更新 更多