2017-01-10 57 views
0

當連接到我的Oracle數據庫時,我在我的Java應用程序中收到'SQL Closed connection'。SQL關閉連接 - 需要增加超時?

我是否需要增加超時時間或對XML配置進行其他更改?

下面是我的persistence .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

也許甲骨文是給你的連接最終超時或到期(儘管你已經配置了空閒連接測試)。無論如何,你的連接測試可能會更加緊密,每五分鐘一次的閒置測試之間的連接就會被中斷,可能會引發你的異常。

我想補充

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

,看看是否能不能解決問題。另見c3p0's docs