2017-01-10 11 views
0

Oracleデータベースに接続すると、私のJavaアプリケーションの中で「SQL Closed connection」が表示されています。SQL接続が閉じられました - タイムアウトを増やす必要がありますか?

タイムアウトを増やす必要がありますか、XML設定を変更する必要はありますか?

<persistence-unit name="mypersistenceUnit"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <class>com.my.package.entities.Person</class> 
     <class>com.my.package.entities.Address</class> 

     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> 
      <property name="hibernate.connection.provider_class" value="org.hibernate.c3p0.internal.C3P0ConnectionProvider"/> 
      <property name="hibernate.c3p0.max_size" value="1"/> 
      <property name="hibernate.c3p0.min_size" value="1"/> 
      <property name="hibernate.c3p0.acquire_increment" value="2"/> 
      <property name="hibernate.c3p0.idle_test_period" value="300"/> 
      <property name="hibernate.c3p0.max_statements" value="15"/> 
      <property name="hibernate.c3p0.timeout" value="0"/> 
      <property name="hibernate.c3p0.unreturnedConnectionTimeout" value="30000"/> 
      <property name="hibernate.c3p0.dataSourceName" value="mypersistenceUnit JPA"/> 
      <property name="hibernate.jdbc.fetch_size" value="50"/> 
      <property name="hibernate.default_batch_fetch_size" value="10"/> 
     </properties> 
    </persistence-unit> 

答えて

1

おそらく、Oracleがあなたに与えている接続は最終的にタイムアウトまたは(あなたが設定したアイドル接続のテストにもかかわらず)に期限切れ:

以下は私のpersistence .xmlファイルです。いずれにしても、Connectionテストがより厳しくなる可能性があります。アイドルテストを5分おきに1回実行すると、クライアントに譲渡され、恐らく例外が発生します。

私は

<property name="hibernate.c3p0.testConnectionOnCheckout" value="true"/> 

を追加し、その問題が解決しない場合は参照してくださいね。 c3p0's docsも参照してください。

関連する問題