Java hibernate配置:应用程序端不活动后连接超时
我使用hibernate处理数据库事务。我们的应用程序在每次执行流时都会给出一个错误,我们每天都会得到低于错误的消息,并发布我们停止得到这些问题的消息 因此,我的第一个疑问仍然是,不知何故,我们正在使用一个已经超时的空闲连接。公平地说,我们总是可以使用hibernate.cfg.xml处理这一部分 因此,我偶然发现了各种方法,即通过在hibernate的配置中添加以下任何参数,我们应该能够解决相同的问题,但它们都不能解决我在这里避免空闲连接的目的,因为空闲连接在每天开始时都会导致“连接超时”故障:Java hibernate配置:应用程序端不活动后连接超时,java,hibernate,configuration,connection,Java,Hibernate,Configuration,Connection,我使用hibernate处理数据库事务。我们的应用程序在每次执行流时都会给出一个错误,我们每天都会得到低于错误的消息,并发布我们停止得到这些问题的消息 因此,我的第一个疑问仍然是,不知何故,我们正在使用一个已经超时的空闲连接。公平地说,我们总是可以使用hibernate.cfg.xml处理这一部分 因此,我偶然发现了各种方法,即通过在hibernate的配置中添加以下任何参数,我们应该能够解决相同的问题,但它们都不能解决我在这里避免空闲连接的目的,因为空闲连接在每天开始时都会导致“连接超时”故障
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">30</property>
我的hibernate.cfg.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property> -->
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.default_schema">ECMREPORT</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.timeout">600</property>
<property name="hibernate.c3p0.maxIdleTimeExcessConnections">20</property>
<property name="hibernate.c3p0.validate">false</property>
<property name="hibernate.c3p0.idle_test_period">30</property>
<property name="hibernate.c3p0.automaticTestTable">conTestTable</property>
<property name="show_sql">true</property>
<!-- <property name="hibernate.hbm2ddl.auto">update</property>-->
<mapping class="com.prod.ecmrs.dao.entity.AuditTrail"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.ECMConfigDetail"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.BSCSFUP"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.BSCSRoaming"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.BSCSRatePlan"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.BSCSService"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.OFSPlans"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.OFSPacks"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.CRMPlans"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.CRMPacks"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.ProjectPlan"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.ProductionDumpReport"></mapping>
<mapping class="com.prod.ecmrs.dao.entity.RAITReportDump"></mapping>
</session-factory>
</hibernate-configuration>
org.hibernate.dialen.oracle10galent
电子病历报告
符合事实的
600
20
错误的
30
可竞争的
符合事实的
是关于建立与数据库的连接。您是否尝试增加登录超时的持续时间
<property name="hibernate.c3p0.timeout">180</property>
180
是的,如果您看到我附加的hibernate配置,我将其增加到600file@Parul,您解决问题了吗?这是一个系统问题。由于我尝试了其他服务器上已有的hibernate配置文件,所以没有遇到任何其他问题。
<property name="hibernate.c3p0.timeout">180</property>