2016-08-04 24 views
0

MySQLデータベースに対してGrails 2.5.3を実行しており、最近2番目のデータソース定義を導入しました。複数のトランザクションサービスを呼び出す非トランザクション型サービスでは、次の例外が発生します。 Grailsの最初のトランザクションが終了した後、第2のデータソースへの接続を閉じていて、その接続を再利用しようとしているように思え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. 

:それは2番目のトランザクションを開始しようとしたときに例外が発生します。私は誰もがこれを見て、それを回避したのかどうか疑問に思います。

答えて

0

私たちは同じ問題に直面しましたが、2つの異なるデータソースには直面しませんでした。私たちのアプリケーションはHibernateとiBatisを使用していましたが、hibernateパートはgrails内に統合されて正常に動作していましたが、iBatisコードは2回目の連続トランザクションが呼び出されたときに上記の問題を出しました。

これを解決するために、resources.groovyに別のデータソースを作成し、この新しいデータソースでiBatisコードを使用しました。ソリューションの構成の詳細については、Grails Pooled Connection Exceptionを参照してください。

+0

ただし、これはちょうどハックです。私たちはまだより良いソリューションを探しています。あなたが問題の理由をより良くあるいは狭めることができるかどうかを教えてください。 – Maria

関連する問題