请教达人一个问题,我们的项目中用的是SSH框架,数据库连接池用的是c3p0,项目一直用的DB2数据库,一直正常。
目前更换成了ORACLE 11g数据库,项目部署在TOMCAT后,开始一切正常,可是每过几个小时,就跟数据库交互不起来了,报的17008错误,Connection closed,必须重启服务器才能好。
项目中c3p0的配置如下:<property name="connection.provider_class">
    org.hibernate.connection.C3P0ConnectionProvider
</property>
<property name="c3p0.min_size">5</property>
<property name="c3p0.max_size">100</property>
<property name="c3p0.timeout">300</property>
<property name="c3p0.idle_test_period">3000</property>
<property name="c3p0.acquire_increment">30</property>
<property name="c3p0.max_statements">50</property>
本人在网上查到很多人有过这个问题,但是没有查到解决办法,所以来这里麻烦达人一下,希望能给些帮助,谢谢。

解决方案 »

  1.   

    项目用的是:<!--数据源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> 
    <property name="driverClass" value="${jdbc.driverClass}"></property>
    <property name="jdbcUrl" value="${jdbc.url}"></property>
    <property name="user" value="${jdbc.user}"></property>
    <property name="password" value="${jdbc.password}"></property>
     <property name="minPoolSize" value="2"/>
             <property name="maxPoolSize" value="20"/>
             <property name="maxIdleTime" value="1800"/>
             <property name="acquireIncrement" value="2"/>
             <property name="maxStatements" value="0"/>
             <property name="initialPoolSize" value="3"/>
             <property name="idleConnectionTestPeriod" value="1800"/>
             <property name="acquireRetryAttempts" value="30"/>
             <property name="breakAfterAcquireFailure" value="true"/>
             <property name="testConnectionOnCheckout" value="false"/>
    </bean>
    希望对你有用。