一般情况下是在服务起来以后连接池就存在了,但是当服务器刚启的时候web服务器与数据库服务网络中断或者数据库挂掉了,所以当服务器启好后数据库连接池是不存在的。讨论:
当web服务器启好后没有获得连接池,但是web服务器启好以后数据库又恢复了,这个连接池会自动获得吗

解决方案 »

  1.   

    还有一种情况是
    web服务器启好以后连接池正常,但是中间有段时间数据库又挂掉了,这个连接处还存在吗
      

  2.   

    如果连接池连自动重连的功能都没有的话,就不能称为连接池!连接池的实现必须有 failover 机制,有心跳链路检查机制,等等!
      

  3.   

    如4楼所说:连接池必然具备自动重连功能。但是,有些连接池对于连接测试并非必选项,那么如果是正常运行途中发生异常导致连接断开(小概率),那么后面获取连接池中保留连接时,会报错。比如Weblogic的连接池,就需要自行勾选“测试保留连接”选项,避免上述情况。
      

  4.   

    c3p0数据库连接池支持重连哈,可以配置
    idleConnectionTestPeriod参数
    它指定在设置的周期检查连接池中得连接是否正常,如果不正常刷新连接池,重新连接
      

  5.   

    c3p0能不能得到当前连接数啊,找了一下,prooxl和dbcp都能得到当前连接数,C3P0应该也行吧,自己测试一下看看,测试好后,一起分享啊