2017-11-20 14 views
1

バネデータjpaを使用しています.1つはエンティティマネージャを注入しました。
私たちはjpa-repositoryを使用していますが、1つの機能に対しては、注入されたエンティティマネージャを使用しています。これは、アプリケーションが起動してからしばらくの間うまく動作しますが、以下のエラーを出し始めます。それはしばらくしてから、entity-managerがデータベース接続を切断したようです。これを複製することはできません。エンティティマネージャにタイムアウトが設定されてから、DB接続が切断されます。
JDBC自動コミットモードを検査できませんでした - バネデータJPA

14:32:44,188 WARN [http-nio-8080-exec-5] SqlExceptionHelper: SQL Error: 0, SQLState: null 2017-11-17 14:32:44,189 ERROR [http-nio-8080-exec-5] SqlExceptionHelper: Connection is closed 2017-11-17 14:32:44,189 WARN [http-nio-8080-exec-5] SqlExceptionHelper: SQL Error: 0, SQLState: null 2017-11-17 14:32:44,189 ERROR [http-nio-8080-exec-5] SqlExceptionHelper: Connection is closed 2017-11-17 14:32:44,190 WARN [http-nio-8080-exec-5] ConsoleService: PersistenceException: org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763) at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677) at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:458)

答えて

1

エンティティマネージャ自体には、このようなものはありません。しかし、あなたのデータベースは、ある時間後、特にアイドル時や、多くの作業(データベースは接続やトランザクションがどれくらいのCP​​U時間を消費しているかを見積もることができます)の後に接続を閉じることがあります。

このような驚きの原因として、接続プールが考えられます。

興味深い質問は、なぜ、あなたが直接使用するエンティティマネージャでのみ発生するのかです。考えられる1つの理由は、接続を適切に解放していないということです。これにより、接続プールが期限切れになったとみなし、タイムアウト後に接続プールを閉じることがあります。

これをデバッグするには、まず接続プールの構成を調べてログをアクティブにして、接続が返されたときに接続が渡されたときやプールがトリガーするその他の特別なイベントを確認できるようにします。

+0

ありがとうございます。私は、接続プールの設定をデバッグします。私が何を得るか見てみましょう..もう一度ありがとう。 – Pandharinath

関連する問題