日期:2014-05-17  浏览次数:20756 次

讨论下数据库连接池c3p0
一般情况下是在服务起来以后连接池就存在了,但是当服务器刚启的时候web服务器与数据库服务网络中断或者数据库挂掉了,所以当服务器启好后数据库连接池是不存在的。

讨论:
当web服务器启好后没有获得连接池,但是web服务器启好以后数据库又恢复了,这个连接池会自动获得吗

------解决方案--------------------
没有研究过连接池,顶一下
------解决方案--------------------
如果连接池连自动重连的功能都没有的话,就不能称为连接池!

连接池的实现必须有 failover 机制,有心跳链路检查机制,等等!
------解决方案--------------------
如4楼所说:连接池必然具备自动重连功能。

但是,有些连接池对于连接测试并非必选项,那么如果是正常运行途中发生异常导致连接断开(小概率),那么后面获取连接池中保留连接时,会报错。

比如Weblogic的连接池,就需要自行勾选“测试保留连接”选项,避免上述情况。
------解决方案--------------------
c3p0数据库连接池支持重连哈,可以配置
idleConnectionTestPeriod参数
它指定在设置的周期检查连接池中得连接是否正常,如果不正常刷新连接池,重新连接

------解决方案--------------------
c3p0 也是一个比较成熟的连接池~ 可以推荐使用!
------解决方案--------------------
C3P0