首页 > 代码库 > 开发MongoDB连接一定要关闭连接,异常中也一定要关
开发MongoDB连接一定要关闭连接,异常中也一定要关
废不少工夫将数据存储,全部迁移至mongodb,未作大量改动则是主因。
但遇到奇怪的现象。
程序跑起不久后,mongodb即假死,另起客户端想登陆mongodb都不成。
要重启mongodb服务器才好转。
分析原因是mongodb的连接池满掉且不释放。
但从官网所了解的mongodb的连接是自行管理的,用完后自动释放,写几个demo测试,也完全符合这一点。
浪费了不少时间找这个问题的成因,并想办法作优化。
比如,设置windows的TCP连接数等等。
设置mongodb的连接数,等待时间等等。
但都没能解决问题
最后转念一想,mongodb的连接是自行管理的,有自已的连接池,但mongdb与我开发的程序之前,还有一个第三方,封装的MONGODB驱动。
想想驱动内部会不会作了什么事情,以致于连接被长久保持,不能归还?
抱着试一试的心态,重写了所有的项目代码,try{}catch{} 在catch中手动close释放连接。
结果问题不再出现。
原因很清楚了,就是因为异常。
mongodb的连接顺利的执行完任务,自动释放,但用该驱动,如果出异常的话,并不会主动关掉连接,以至程序运行一段时间后,连接池被透支。
开发MongoDB连接一定要关闭连接,异常中也一定要关
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。