Answers
连接池在初始化的时候建立
initCount
个连接放入池中,上层程序在获取数据库连接时,先从池中获取,如果池中有,则直接返回;如果没有则判断当前被使用的连接数有没有超过
maxCount
,如果没有则新建一个物理连接,否则需要等待池中有空闲连接或者被使用数小于
maxCount
时建立一个物理连接。
当连接使用完毕后,要放入到池中。系统要定时检测连接池中的连接的可用性,否则出现数据库服务器主动断开连接造成连接失效的问题,如果检测到连接失效,要将其移除池。
上面大体上讲了一下连接池的逻辑,实际在编码中不同库内部实现肯定跟上面讲的不一样,但是思路上大体就是包括,放入连接池,从连接池中获取,还有连接保活。
狩沢绘理华
answered 9 years, 10 months ago