关闭

c3p0连接池,当数据源不可用时 自动跳过

标签: c3p0
705人阅读 评论(0) 收藏 举报
分类:

最近在一个项目中出现一个问题:

系统使用spring+c3p0管理数据库的连接池,项目中一共用到了4个数据源。在启动项目时,如果其中有某一个或几个数据源连不上时,后台就会无限次尝试连接,导致整项目无法启动。


而实际上,我们想要的结果是,如果某个数据源无法连接使用时,跳过该数据源的连接,继续加载下面的项目。于是查了一下c3p0连接池配置,发现经过如下配置后即可达到理想的效果。

在数据源配置时,加上如下三项内容:

<property name="breakAfterAcquireFailure" value="true" />
<property name="checkoutTimeout" value="100"/>
<property name="acquireRetryAttempts" value="0"/>

其中:

  • checkoutTimeout:当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出 SQLException,如设为0则无限期等待。单位毫秒。Default: 0 
  • breakAfterAcquireFailure :true表示pool向数据库请求连接失败后标记整个pool为block并close,就算后端数据库恢复正常也不进行重连,客户端对pool的请求都拒绝掉。false表示不会标记 pool为block,新的请求都会尝试去数据库请求connection。默认为false。因此,如果想让数据库和网络故障恢复之后,pool能继续请求正常资源必须把此项配置设为false
  • acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试的次数。Default: 30

最后,一个完整的数据源配置如下:

<bean id="iamsDB" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="${iamsDB.driverClass}" />
        <property name="jdbcUrl" value="${iamsDB.url}" />
        <property name="user" value="${iamsDB.user}" />
        <property name="password" value="${iamsDB.password}" />
        <property name="maxPoolSize" value="${iamsDB.maxPoolSize}" />
        <property name="minPoolSize" value="${iamsDB.minPoolSize}" />
        <property name="maxIdleTime" value="${iamsDB.maxIdleTime}" />
        <property name="initialPoolSize" value="${iamsDB.initialPoolSize}" />
        <property name="acquireIncrement" value="${iamsDB.acquireIncrement}" />
        <property name="maxStatements" value="${iamsDB.maxStatements}" />
        <property name="idleConnectionTestPeriod" value="${iamsDB.idleConnectionTestPeriod}" />
        <property name="acquireRetryAttempts" value="${iamsDB.acquireRetryAttempts}" />
        <property name="breakAfterAcquireFailure" value="true" />
        <property name="checkoutTimeout" value="100"/>
        <property name="acquireRetryAttempts" value="0"/>
    </bean>


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

[已解决]c3p0连接池超时自动断开mysql

今天遇到个问题,c3p0连接池,连接mysql 过了不到1分钟,居然报了错误
  • adyuebanwan
  • adyuebanwan
  • 2014-04-04 17:57
  • 4621

tomcat配置c3p0数据库连接池遇到问题与解决

这短时间在做一个Android项目,由于牵扯到数据库,也就有服务器。app预期是想做大,所以一方面考虑到性能相关 因此就想把tomcat和比较知名的c3p0结合起来,从这一方面来提高性能。 首先第...
  • anLA_
  • anLA_
  • 2016-04-29 18:04
  • 3463

解决spring+c3p0数据库连接一直增加的问题

解决spring+c3p0数据库连接一直增加的问题 问题描述 spring+c3p0的配置 针对不同情况的解决方案 问题描述:SSH框架,hibernate的配置由spring接管,数据源的配置放在s...
  • smile326
  • smile326
  • 2015-06-29 16:30
  • 3150

在ssh项目中的applicationContext.xml中配置数据源(c3p0)(连接池)

部分代码来自网上,黄绿色的字体就是c3p0 sqlserver2000连接池的设置,其中特别注意的是''driverClass' , 'jdbcUrl', 'user' , 'password'区分...
  • qingchenyuji
  • qingchenyuji
  • 2012-05-19 12:37
  • 3761

连接池与数据源:DBCP以及C3P0的使用

一、连接池的概念和使用  在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存...
  • JAVA528416037
  • JAVA528416037
  • 2015-06-29 13:28
  • 2380

JAVA 入门学习之路-数据源/连接池-DBCP和C3P0。

一、DBCP:先将需要用到的jar包放到自己项目lib目录,如果没有,请先下载DBCP需要的jar包。commons-dbcp.jarcommons-pool.jarsrc目录下创建 dbcpconf...
  • c__chao
  • c__chao
  • 2016-12-12 18:05
  • 8607

连接池与数据源:DBCP以及C3P0的使用

连接池与数据源:DBCP以及C3P0的使用一、连接池的概念和使用在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必...
  • YYYQYYY
  • YYYQYYY
  • 2017-08-02 11:25
  • 196

Tomcat7.0.73全局JNDI数据源(C3P0连接池)

配置全局的JNDI数据库资源管理c3p连接池本文两部分介绍,第一部分介绍具体配置方法,同时给出作者项目中的配置demo;第二部分给出c3p0中的其它属性(来自官网配置文档),可根据项目具体需要添加不同...
  • QianZhaoVic
  • QianZhaoVic
  • 2017-05-23 08:40
  • 165

在ssh项目中的applicationContext.xml中配置数据源(c3p0)(连接池)

部分代码来自网上,黄绿色的字体就是c3p0 sqlserver2000连接池的设置,其中特别注意的是''driverClass', 'jdbcUrl', 'user' , 'password'区分大小...
  • adayan_2015
  • adayan_2015
  • 2015-09-24 15:30
  • 259

事务、连接池、开源数据源(DBCP、C3P0)

事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功。 例如:A——B转帐,对应于如下两条sql语句   update account set money=mone...
  • tangliuqing
  • tangliuqing
  • 2014-03-13 23:19
  • 1145
    个人资料
    • 访问:1809713次
    • 积分:20719
    • 等级:
    • 排名:第452名
    • 原创:610篇
    • 转载:788篇
    • 译文:4篇
    • 评论:73条
    技术交流
    域名出售
    www.importnew.cn
    www.jinrimiantiao.com
    文章分类
    最新评论