c3p0搞的连接池怎么老是死掉啊

 我来答
先生掌握拳1159
2013-08-24 · TA获得超过311个赞
知道答主
回答量:144
采纳率:50%
帮助的人:64.5万
展开全部
哈哈!这个问题在我们公司也发生过。经过几天研究终于搞定。 c3p0的connection实现类和我们想象中有出入,最大的出入就是c3p0的connection实现类的close方法不是真的将该链接释放掉,而是将这个链接回收到可用连接池中。于是问题就来了。 c3p0的有一个maxConnection的参数,即最多链接数。还有一个genratNum,即当链接不够用的时候自动每次生成链接的个数。假如将最大连接数设定为50,每次增长数设定为10,初始值为10。假如当前总共产生的链接数已经有49个,但是这49个链接不是可用连接数,那么c3p0就会增长10个。这样一共就产生了59个。 假如你设定最大空闲时间又过长,如一个月,那么就是被close的链接,也不会被释放掉,一直保留链接池中。 所以很快c3p0就将数据库的链接用完。 解决办法是: 1. 在代码中当创建了一个connection(或者从池中取),必须在要在合适的时机将该链接close掉。 2. 合理配置最大连接数,最大空闲时间,每次增长数 3. 可以通过实行ConnectionCustomer接口,来显式的对链接进行关闭,释放资源的操作。 4. 第一点是最重要的,后两点是辅助的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式