| 
 | 
 
| 
 
 用JSP开发的网站,一般超过一天不访问的话,数据库连接就会断开。从网上查找的解决办法如下:  
如果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat. 
    不用hibernate 的话, connection url加参数: autoReconnect=true  
    用hibernate的话, 加如下属性:  
        <property name="connection.autoReconnect">true</property> > 
        <property name="connection.autoReconnectForPools">true</property>  
        <property name="connection.is-connection-validation-required">true</property>  
    要是还用c3p0连接池:  
        <property name="hibernate.c3p0.acquire_increment">1</property>  
        <property name="hibernate.c3p0.idle_test_period">0</property>    
        <property name="hibernate.c3p0.timeout">0</property>    
        <property name="hibernate.c3p0.validate">true</property> 
 
不过,经过测试,没有效果。正在努力思考中... 
经过测试,增加 autoReconnect不管用,url中不认识该关键字。有网上评论说对mySQL5.0以上该参数不灵。 
第二种:Hibernate的配置也不好用。 
经测试,第三种方式是可行的。不过,参数配置不同。具体配置如下: 
    <property name="hibernate.c3p0.max_size">10</property> 
    <property name="hibernate.c3p0.min_size">5</property> 
    <property name="hibernate.c3p0.timeout">5</property> 
    <property name="hibernate.c3p0.idle_test_period">5</property> 
    <property name="hibernate.c3p0.max_statements">100</property> 
    <property name="hibernate.c3p0.acquire_increment">1</property> 
 
为了具体测试出效果,我将mySQL数据库的wait-timeout设置为10.也就是说,只要10秒钟不操作,数据连接就自动断开。 
测试结果,网页在等待若干分钟后,也能正常操作。 |   
 
 
 
 |