开发者社区> 问答> 正文

有关C3P0在高并发时的问题

C3P0的配置如下: initialPoolSize=10 minPoolSize=10 maxPoolSize=4000 maxStatements=100 maxIdleTime=30 checkoutTimeout=10000 acquireRetryAttempts=10 idleConnectionTestPeriod=60 unreturnedConnectionTimeout=30 acquireIncrement=5

在高并发的时候,经常会出现An attempt by a client to checkout a Connection has timed out.

请问该如何调整C3P0的配置?

展开
收起
游客n625cqu2dlvm2 2019-10-22 21:12:28 862 0
1 条回答
写回答
取消 提交回答
  • maxPoolSize=4000这个参数设置的很有问题,应用最大连接数不会设置成这么大的,最大连接数都会和业务的TPS去估算的

    !-- c3p0连接池配置 -- !--连接池中保留的最大连接数。 -- property name="maxPoolSize" value="4"

    !-- 连接池中保留的最小连接数-- property name="minPoolSize" value="1"

    !-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间 property name="initialPoolSize" value="1"

    !--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 property name="maxIdleTime"60/property

    !-- 当连接池连接耗尽时,客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒。默认: 0 property name="checkoutTimeout" value="10000"

    !--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。 -- property name="acquireIncrement" value="1"

    !--关闭连接时,是否提交未提交的事务,默认为false,即关闭连接,回滚未提交的事务 --

    !--每60秒检查所有连接池中的空闲连接。默认值: 0,不检查 -- property name="idleConnectionTestPeriod" 60

    2019-11-04 22:19:01
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
分布式高并发缓存6.0 立即下载
高并发分布式缓存Redis6.0 立即下载
Redis 的高并发实战:抢购系统 立即下载