1

ログに次のエラーが繰り返し表示されることがあります。

com.mchange.v2.c3p0.impl.NewPooledConnection - [c3p0] A PooledConnection that has already signalled a Connection error is still in use!
com.mchange.v2.c3p0.impl.NewPooledConnection - [c3p0] Another error has occurred [ org.postgresql.util.PSQLException: This connection has been closed. ] which will not be reported to listeners!
org.postgresql.util.PSQLException: This connection has been closed.
        at org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:822)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.rollback(AbstractJdbc2Connection.java:839)
        at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:855)
        at org.squeryl.dsl.QueryDsl$class._executeTransactionWithin(QueryDsl.scala:131)
        at org.squeryl.dsl.QueryDsl$class.transaction(QueryDsl.scala:78)
        at org.squeryl.PrimitiveTypeMode$.transaction(PrimitiveTypeMode.scala:40)

transaction {}その下には、ブロックのポイントまでの自分のコードのトレースがあります。

私のソフトウェアはtransaction {}例外をスローした後に を繰り返しますが、同じ (閉じた) 接続を再度使用しているように見えるため、次の試行も失敗します。奇妙なことに、これにはかなりの時間がかかり、50 秒、2 分かかることもあります。閉じられた接続はすぐに失敗すると思うでしょう。

Squeryl がこの接続をプールに解放し、新しい接続を取得するにはどうすればよいですか?

4

1 に答える 1