2009年2月16日星期一

MySQL 8 小时掉线问题


最近利用空闲时间写了个小站,虽然简单,却也碰到了不少的问题。网站从需求、设计、实现、布局,修修补补,总算是挂上去了。可以访问www.belitastone.com.



其中MySQL 8 小时掉线问题困扰了我几天,原理就不说了,网上有详细介绍,网上搜索资料后,大概有几种解决办法:


(1)修改My SQL服务器配置,my.ini文件,可惜我是挂在万网的虚拟主机,没办法,改不了。

(2)使用数据库URL连接串的autoReconnect=true参数来自动重新连接,这对版本Mysql 4.x有效,虽然我用的版本也是4.X,但却没有生效。据说Mysql官方还不赞成这种方式,Mysql5.x就不支持了。

(3)使用CP30数据库连接池,折腾两次,最后查了下C3P0的文档才成功。现在将方法3的配置记录下来,以备参考。



首先,需要引用c3p0包,其次,在Hibernate的hibernate.cfg.xml中做如下配置:
<property name="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">30</property>
<property name="hibernate.c3p0.time_out">1800</property>
<property name="hibernate.c3p0.max_statement">50</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">120</property>
<property name="hibernate.c3p0.validate">true</property>

没有评论: