java mongodb 关闭连接_未释放资源的教训,开发MongoDB连接一定要关闭连接

2023-11-02

废不少工夫将数据存储,全部迁移至mongodb,未作大量改动则是主因。

但遇到奇怪的现象。

程序跑起不久后,mongodb即假死,另起客户端想登陆mongodb都不成。

要重启mongodb服务器才好转。

分析原因是mongodb的连接池满掉且不释放。

但从官网所了解的mongodb的连接是自行管理的,用完后自动释放,写几个demo测试,也完全符合这一点。

浪费了不少时间找这个问题的成因,并想办法作优化。

比如,设置windows的TCP连接数等等。

设置mongodb的连接数,等待时间等等。

但都没能解决问题

最后转念一想,mongodb的连接是自行管理的,有自已的连接池,但mongdb与我开发的程序之前,还有一个第三方,封装的MONGODB驱动。

想想驱动内部会不会作了什么事情,以致于连接被长久保持,不能归还?

资源型引用都要在finally中释放,因为考虑到重用,所以并未在finally中释放资源

抱着试一试的心态,重写了所有的项目代码,try{}catch{} 在catch中手动close释放连接。

结果问题不再出现。

原因很清楚了,就是因为异常。

mongodb的连接顺利的执行完任务,自动释放,但用该驱动,如果出异常的话,并不会主动关掉连接,以至程序运行一段时间后,连接池被透支。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java mongodb 关闭连接_未释放资源的教训,开发MongoDB连接一定要关闭连接 的相关文章

  • nvm-windows下载管理node版本工具

    1 下载地址 https github com coreybutler nvm windows releases 2 nvm常用指令 配置nvm的镜像服务器 nvm node mirror https npmmirror com mirro
  • 二叉搜索树的最近公共祖先

    题目描述 给定一棵二叉搜索树的先序遍历序列 要求你找出任意两结点的最近公共祖先结点 简称 LCA 输入 输入的第一行给出两个正整数 待查询的结点对数 M 1 000 和二叉搜索树中结点个数 N 10 000 随后一行给出 N 个不同的整数
  • CentOS 7 安装Libevent

    CentOS 7 安装Libevent 1 下载安装包 新版本是libevent 2 1 12 stable tar gz 如果你的系统已经安装了libevent 可以不用安装 官网 http www monkey org provos l
  • Java学习:打印金字塔和九九乘法表

    在打印金字塔之前 练习打印如图图形 采用双重循环 分别控制行数和每行打印星星的个数 java代码 package com lissdy public class tuxing1 public static void main String
  • 关于threeJS加载模型的坑(obj+mtl)

    threeJs加载模型时 有些材质是透明的 如果忘记设置就会出现几何片的样子 如图 模型加载之后添加模型的材质透明度 object traverse function child if child instanceof THREE Mesh
  • PMSM FOC位置环S曲线控制算法(恒定急动度)

    文章目录 一 原理 二 代码 之前做FOC位置环控制的时候 简单地加了一个S曲线控制 参考链接如下 FOC 单电阻采样 位置环控制伺服电机 这里面代码实现其实就是在每step个ADC中断中 根据函数 f x
  • 对一个文件夹下的图片进行批量缩放(resize)处理

    文章目录 问题背景 环境配置 完整代码 代码解释 另一种更简单的写法 问题背景 使用GPU训练时 有时出现了图片太大 导致处理起来速度慢或内存不够崩掉的情况 因此需要对原图片进行缩放 本文介绍了批量处理的方法 成功将一个文件下的所有图片 较
  • this.$router.go(0)的作用

    this router go val gt 在history记录中前进或者后退val步 当val为0时刷新当前页面
  • 使用mathjax解析公式

    mathjax解析公式 uniapp使用mathjax 在app vue里面动态引入mathjax const script document createElement script MathJax地址 config参数不可忽略 scri
  • Raft 一致性算法论文译文

    本篇博客为著名的 RAFT 一致性算法论文的中文翻译 论文名为 In search of an Understandable Consensus Algorithm Extended Version 寻找一种易于理解的一致性算法 Raft
  • 《Windows核心编程》---堆管理函数

    Windows的 堆 分为默认堆和私有堆两种 默认堆是在程序初始化时由操作系统自动创建的 所有标准内存管理函数都是在默认堆中申请内存的 而私有堆相当于在默认堆中保留了一大块内存 用堆管理函数可以在这个保留的内存区域中分配内存 一个进程的默认
  • LabVIEW 可配置正交频分复用软件定义无线电收发器

    OFDM 正交频分复用 是使用大量具有谐波频率间隔的调制载波并行传输数据的技术 从而使载波彼此正交 正交性允许以后可以分离的通道的频谱重叠 很像正交调制 SDR 软件定义无线电 是指一种无线电通信系统 可以配置为通过可编程硬件平台在大频谱范
  • 最新ChatGPT GPT-4 自然语言理解NLU与句词分类技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(四)

    目录 前言 最新ChatGPT GPT 4 自然语言理解NLU与句词分类技术详解 1 NLU基础 1 1 句子级别的分类 1 2 Token级别的分类 2 相关API 2 1 LMAS GPT API 2 2 ChatGPT Style 相
  • Linux中的计时函数

    2023年7月22日 周六上午 目录 预备知识 Linux系统函数sysconf 函数原型 参数介绍 使用方法 数据类型clock t times 函数原型 tms结构体 使用方法 clock 函数原型 使用方法 预备知识 Linux系统函
  • CRM之B/S和C/S架构的区别(下)

    B S 模式的缺点 1 响应速度不及C S 随着AJAX技术的发展 相比传统B S结构软件提升一倍速度 2 用户体验效果不是很理想 B S需要单独界面设计 厂商之间的界面也是千差万别 由于浏览器刷新机制 使用时有刷屏现象 好在AJAX技术解
  • 第二章:预备知识整理——2.2数据预处理

    数据预处理的课后习题为 2 2 5 练习 创建包含更多行和列的原始数据集 删除缺失值最多的列 将预处理后的数据集转换为张量格式 1 该问题的解决 感谢https blog csdn net qq 42363032 article detai
  • RabbitMQ 高级特性

    RabbitMQ 高级特性 生产者确认 confirm return confirm确认模式 return 退回模式 消费者确认 ACK 消费端限流 TTL过期时间 死信队列 延迟队列 保证幂等性 生产者代码实现 消费者代码实现 在使用 R
  • ANDROID项目重构之路:架构篇

    原创文章 转载请注明 转载自Keegan小钢 写于2015 06 05 去年10月底换到了新公司 做移动研发组的负责人 刚开始接手android项目时 发现该项目真的是一团糟 首先是其架构 是按功能模块进行划分的 本来按模块划分也挺好的 可
  • <cwchar> (wchar.h)

    英文原文地址 https cplusplus com reference cwchar 我会持续更新 我的翻译如下

随机推荐

  • 1. 开源协议

    开源 Open Source 一词 最早由Christine Peterson女士在1998年提出 它消除了人们对自由软件 Free Software 的理解歧义 软件的分类 商业软件 收费 元代码不公开 共享软件 免费使用 源代码不公开
  • 第三章 系统分析

    第三章 系统分析 本章将对微信小程序及签到应用市场进行需求分析 首先对系统进行功能需求分析 分析确定受众群 分析系统所要实现的功能 然后对系统进行数据需求分析 为了更好地完成系统项目 为项目的进一步开发工作做准备 了解具体数据 有利于软件的
  • Git 开发分支代码上线流程

    开发分支代码上线流程 开发分支 1 切换到master上 pull最新代码 git checkout mater git pull 2 打开发分支 git branch feature 自己taped的任务号 例如 git branch f
  • Linux中 的 " "(双引号) ' ' (单引号) ` `(反引号)

    1 基础篇 单引号 所见即所得 回将里面的内容原封不动的展示出来 双引号 和单引号类似 但里面的特殊符号会被解析 比如 反引号 都是特殊符号 反引号 反引号内的内容将优先执行 优先执行里面的命令 并将结果保留下来 无引号 和双引号类似 但此
  • sql server 查询某个字段是否有值 返回bool类型

    sql server 查询某个字段是否有值 返回bool类型 true 或 false SELECT ColumnCode CONVERT BIT CASE WHEN LEN ColumnCode gt 0 THEN 1 ELSE 0 EN
  • aop默认代理方式是什么

    jdk代理 可以通过proxy target class修改 proxy target class属性值决定是基于接口的还是基于类的代理被创建 如果proxy target class 属性值被设置为true 那么基于类的代理将起作用 这时
  • windTerm—Xshell、SercureCRT等替代品

    最常用的ssh工具 莫过于SercureCRT Xshell 但是这两个都收费 某些场景下不好使用 免费的有putty 但是这个太简陋了 用起来不舒服 finalShell eclecterm tabby 这三个很炫酷 但安装包和占用内存都
  • knn算法,利用numpy简单实现

    首先明确概念 回归 预测体重 预测房价 预测损失 结果是不容易确定的 分类 预测男女 预测是否能通过考试 结果是容易确定的 我的理解 回归针对连续的数据 分类针对离散的数据 回归连续 分类离散 classfication和regressio
  • 在vscode上快速打开php文件(小白手把手教小白,超级详细)

    第一次写博客 如有不足 欢迎指正 在vscode中打开php文件如下 准备工作 先下载小皮面板 记住下载路径 在其中打开Apache和MySQL 然后我们步入正题 1 首先打开vscode 在其中打开小皮面板所在文件夹 在WWW文件里随便建
  • STM32系列 (一)开发环境的搭建

    STM32简介 STM32是意法半导体 ST 推出一款32位的单片机 STM32具有超低的价格 超多的外设 丰富的型号 优异的实时性 极低的开发成本等优势 STM32凭借其产品线的多样化 极高的性价比 简单易用的库开发方式 迅速在众多32位
  • 一、SQL Server列名显示无效却可以运行问题解决?

    一 SQL Server列名显示无效却可以运行问题解决 在SQLServer中 当设计 修改 表结构之后 再用SQL语句时 会出现列名无效 然后却可以运行 如下图 出现这种情况的原因是SQL Server的intellisense 智能感知
  • C语言volatile关键字的作用

    volatile是易变的 不稳定的意思 volatile关键字和const一样是一种类型修饰符 用它修饰的变量表示可以被某些编译器未知的因素改变 比如操作系统 硬件或者其它线程等 遇到这个关键字声明的变量 编译器对访问该变量的代码就不再进行
  • TypeError: Cannot read properties of undefined (reading ‘licenseNum‘) at Proxy

    这是因为在定义的时候 我们只定义了一层的结构 比如 info 其实后端返回的是 info goods goodsName cheng 此时调用goodsName info goods goodsName 就会报错info goods und
  • 2021-12-24 vue项目兼容IE

    Vue 不支持 IE8 及以下版本 因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性 但对于 IE9 Vue 底层是支持 vue cli4脚手架搭建的前端项目 vue版本2 6 12 browserslist配置 指
  • System.Single

    浮点 类型 别名 float System Single double System Double decimal System Decimal 字符 类型 别名 允许的值 bool System Boolean true flase ch
  • 跟阿铭学Linux第六章答案,Linux磁盘管理

    hda一般是指IDE接口的硬盘 hda指第一块硬盘 hdb指第二块硬盘 等等 sda一般是指SATA接口的硬盘 sda指第一块硬盘 sdb指第二块硬盘 等等 du b显示的是文件的实际大小 du k显示的是文件占用的磁盘块的大小 所以磁盘块
  • 性能测试压力测试

    性能测试指标 并发用户数 TPS Transaction Per Second 每秒事务数 系统的性能由TPS决定 mysql 记一次接口压力测试与性能调优 Apache JMeter是Apache组织开发的基于Java的压力测试工具 用于
  • 最长公共子序列 蓝桥杯 1189

    题目描述 给定一个长度为n数组A和一个长度为m数组B 请你求出它们的最长公共子序列长度为多少 输入描述 输入第一行包含两个整数n m 第二行包含n个整数ai 第三行包含m个整数bi 1 lt n m lt 10 3 1 lt ai bi l
  • BearPi-HM Nano HarmonyOS 环境搭建

    BearPi HM Nano HarmonyOS 环境搭建 BearPi HM Nano 介绍 BearPi HM Nano开发板是一块专门为鸿蒙OS设计的鸿蒙OS开发板 板载高度集成的2 4GHz WLAN SoC芯片Hi3861 并板载
  • java mongodb 关闭连接_未释放资源的教训,开发MongoDB连接一定要关闭连接

    废不少工夫将数据存储 全部迁移至mongodb 未作大量改动则是主因 但遇到奇怪的现象 程序跑起不久后 mongodb即假死 另起客户端想登陆mongodb都不成 要重启mongodb服务器才好转 分析原因是mongodb的连接池满掉且不释