代码之家  ›  专栏  ›  技术社区  ›  java123999

SQL关闭连接-需要增加超时吗?

  •  0
  • java123999  · 技术社区  · 8 年前

    我在我的 Java 连接到my时的应用程序 Oracle 数据库

    我是否需要增加超时或对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 回复  |  直到 8 年前
        1
  •  1
  •   Steve Waldman    8 年前

    也许Oracle提供给您的连接最终会超时或过期(尽管您已经配置了空闲连接测试)。在任何情况下,您的连接测试可能会更严格,每五分钟空闲测试之间中断一次的连接将被移交给中断的客户端,可能会引发您的异常。

    我要补充一点

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

    看看这是否不能解决问题。另见 c3p0's docs .