2016-08-04 65 views
0

我们正在使用针对MySQL数据库的Grails 2.5.3,并且最近引入了第二个数据源定义。在调用多个事务服务的非事务服务中,我们得到以下例外。PooledConnection已关闭多个数据源错误

» 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是关闭的第二个数据源的连接的第一个交易结束后,并试图重新使用连接:当它试图启动第二交易发生的异常。我想知道是否有人看过这个和/或解决它。

回答

0

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

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

+0

但是,要注意这只是一个黑客。我们仍在寻找更好的解决方案。如果你能找到更好的东西或缩小问题的原因,请告诉我。 – Maria