解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。

解决Mysql连接池被关闭  ,hibernate尝试连接不能连接的问题。   

(默认MySQL连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。

所以系统发布第二天访问会失去链接,导致访问失败。因此稳定解决办法是把hibernate默认的连接池换成c3p0链接池。

Hibernate(spring管理)中的配置:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
   <property name="driverClass"><value>oracle.jdbc.driver.OracleDriver</value></property>
   <property name="jdbcUrl"><value>jdbc:oracle:thin:@localhost:1521:Test</value></property>
   <property name="user"><value>Kay</value></property>
   <property name="password"><value>root</value></property>
  <!--连接池中保留的最小连接数。-->            
    <property name="minPoolSize" value="10" />        
    <!--连接池中保留的最大连接数。Default: 15 -->         
    <property name="maxPoolSize" value="100" />        
    <!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->               
    <property name="maxIdleTime" value="1800" />        
    <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->               
    <property name="acquireIncrement" value="3" />         
    <property name="maxStatements" value="1000" />          
    <property name="initialPoolSize" value="10" />          
    <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->       
    <property name="idleConnectionTestPeriod" value="60" />          
    <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->       
    <property name="acquireRetryAttempts" value="30" />          
    <property name="breakAfterAcquireFailure" value="true" />              
    <property name="testConnectionOnCheckout" value="false" />
</bean>

相关参考文章:

1,http://blog.csdn.net/caodegao/article/details/8553496

2.http://blog.csdn.net/vebasan/article/details/5059000

3.http://blog.csdn.net/dracotianlong/article/details/7823622

4.http://blog.163.com/zsq303288862@126/blog/static/937459612011118115418199/

 
posted @ 2016-11-04 17:48  牵手的承诺1  阅读(515)  评论(0编辑  收藏  举报