c3p0

PooledDataSource(ComboPooledDataSource,PoolBackedDataSource) 用户使用的DataSource
C3P0PooledConnectionPoolManager(简称PoolManager)含多个auth(username+password)对应的Pool,基本上用的都是默认auth
C3P0PooledConnectionPool(简称Pool)
ResourcePool(BasicResourcePool,ResourcePoolFactory): 核心接口,所有对其内部状态的访问都需要加锁(其本身),比如用户线程的获取归还,异步线程池的创建移除连接,Timer线程定时的过期检查和空闲检查
Manager(PooledConnectionResourcePoolManager): acquire/destroy, checkin和checkout的处理
ConnectionPoolDataSource(WrapperConnectionPoolDataSource): 获取PooledConnection(对底层连接封装,NewPooledConnection,早期版本存在C3P0PooledConnection通过动态代理实现)
DataSource(DriverManagerDataSource):Driver获取连接

BasicResourcePool:
min max start inc(acquireIncrement,一次获取的增量) unused(池内的) managed(池内+借出的)
过期检查:CullTask定期检查或者checkout了一个资源再检查,根据如下属性
max_resource_age
max_idle_time
excess_max_idle_time(需要考虑min)
destroy_unreturned_resc_time
空闲检查:CheckIdleResourcesTask 定时(check_idle_resources_delay)对所有空闲(unused)资源检查可用性,检查时放入idleCheckResources,检查完后再移除
池大小调整(多处发生): 将池大小(managed)调整到target_pool_size,异步提交多个AcquireTask/RemoveTask

Connection(底层连接)NewPooledConnection(连接池内部使用) NewProxyConnection(用户使用)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值