解决com.mysql.jdbc.NonRegisteringDriver内存泄漏问题

news2024/11/25 14:46:11

1. 问题背景

线上出现内存报警,通过dump文件,MAT分析,发现mysql-connector-java 有内存泄漏问题

2.问题分析

在这里插入图片描述
然后看大对象列表,NonRegisteringDriver 对象确实占内存比较多,里面村的数据库连接的虚引用占比较多

3.解决方案

升级mysql-connector-java版本至8.0.31以及以上的版本,在java启动命令添加命令行,

-Dcom.mysql.cj.disableAbandonedConnectionCleanup=true

如下图:

java   -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true -jar app.jar 

这样,生成数据库连接时就不会产生虚引用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2234282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何优雅处理异常?处理异常的原则

前言 在我们日常工作中,经常会遇到一些异常,比如:NullPointerException、NumberFormatException、ClassCastException等等。 那么问题来了,我们该如何处理异常,让代码变得更优雅呢? 1 不要忽略异常 不知…

华为2288HV2服务器安装BCLinux8U6无法显示完整安装界面的问题处理

本文记录了华为2288HV2服务器安装BCLinux8U6无法显示完整安装界面,在安装过程中配置选择时,右侧安装按钮不可见,导致安装无法继续的问题处理过程。 一、问题现象 华为2288HV2服务器安装BCLinux8U6时无法显示完整的安装界面,问题…

Qt多边形填充/不填充绘制

1 填充多边形绘制形式 void GraphicsPolygonItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {Q_UNUSED(option);Q_UNUSED(widget);//painter->setPen(pen()); // 设置默认画笔//painter->setBrush(brush()); // 设置默…

Python设计模式探究:单例模式实现及应用解析

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

Linux权限解析:用户、组和权限的协同

​​​​​​​在Linux系统中,权限决定了谁能做什么。本文将指导你如何掌握这些权限,以确保你的系统既安全又高效! 目录 1.shell命令及其运行原理 2.Linu权限的概念 (1) 用户 (2) 切换用户命令su (3) 指令提权命令sudo (4) 什么是权限…

java、excel表格合并、指定单元格查找、合并文件夹

#创作灵感# 公司需求 记录工作内容 后端:JAVA、Solon、easyExcel、FastJson2 前端:vue2.js、js、HTML 模式1:合并文件夹 * 现有很多文件夹 想合并全部全部的文件夹的文件到一个文件夹内 * 每个部门发布的表格 合并全部的表格为方便操作 模…

koa项目实战 == 实现注册登录鉴权

一. 项目的初始化 1 npm 初始化 npm init -y生成package.json文件: 记录项目的依赖 2 git 初始化 git init生成’.git’隐藏文件夹, git 的本地仓库 3 创建 ReadMe 文件 二. 搭建项目 1 安装 Koa 框架 npm install koa2 编写最基本的 app 创建src/main.js const Koa…

JAVA基础:单元测试;注解;枚举;网络编程 (学习笔记)

单元测试 操作步骤: a.导包import org.junit; b.三个注解 Test Before After c.点击Test 运行就可以了 用在不需要控制台输入的情境下:javaweb,框架项目,微服务项目 供开发人员自己做测试。 package com.page…

四个TikTok万能爆单选品法,第1个超过75%卖家会用!

做TK想爆单至关键的一步就是选品!7分靠选品、3分靠运营,一开始你要把品选错了,再怎么运营都是在浪费时间。接下来分享一些万能选品思路,不管做什么类目的商家都可以参考! 一、热卖品榜单选品 这是一种很常见&#xf…

Linux开发工具——make/Makefile

目录 一、什么是makefile? 二、为什么要有makefile? 三、makefile的使用 1.依赖关系与依赖方法 2.伪目标 3.定义变量 4.特殊符号 四、makefile的执行逻辑 一、什么是makefile? Makefile是一种自动化构建工具,make是一条指…

开发中使用UML的流程_01概述

目录 CIM-1:定义业务流程 CIM-2:分析业务流程 ​CIM-3:定义系统范围 ​PIM-1:分析系统流程 PIM-2:分析业务规则 PIM-3:定义静态结构 PIM-4:定义操作和方法 开发中使用UML的流程,主要分为7部分,具体如下: CIM-1:定义业务流程 定义及分析业务流程是为了尽快理…

前端开发模板Pear Admin Layui

目录 基本资料学习笔记04-Pear-Admin-Layui模板运行05-Pear-Admin-Layui-GIT方式代...06-Pear-Admin与Vue对比 & 07-Pear-Admin与Vue对比补充09-Pear-Admin-CRUD练习-数据库表创建12-Pear-Admin-CRUD练习-引入其它依赖 & 13-Pear-Admin-CRUD练习-三层架构以及常见配置 …

[MySQL#10] 索引底层(1) | Page | 页目录

目录 1. 初识索引 2. 认识磁盘 3. MySQL与磁盘交互基本单位 4. 索引的理解 1. 重谈Page 2. 为什么IO交互要用Page 3. 有主键的表插入数据时的排序 4. 单个Page与多个Page 4.1 单个Page 4.2 多个Page 目录 单Page目录 多Page目录 在看本文之前,可以回顾…

.net c# 使用 MailKit库接收139邮箱邮件

开发工具 vs2022,新建-控制台应用。项目完整代码下载: 要安装MailKit库 using MailKit; using MailKit.Net.Imap; using MimeKit; using System.Text; namespace MailKit_mail {internal class Program{static void Main(string[] args){//需要使用 Ma…

Centos开机自启动脚本示例

本文建议创建一个sh文件管理自启动的各项内容,再将sh文件设置开机启动 在/root/autoshell下创建一个autostart.sh,内容如下 #!/bin/bash # description:开机自启脚本# 启动mongodb sh /root/software/mongodb-linux-x86_64-rhel70-4.0.6/bin/mongod --c…

虚拟现实和增强现实技术,如何打造沉浸式体验?

内容概要 在这个科技飞速发展的时代,虚拟现实(VR)与增强现实(AR)技术的结合就像调皮的小精灵,一下子把我们的生活变得神奇又有趣。想象一下,你正在游戏中与精灵搏斗,突然间身边的客…

计算机网络 TCP/IP体系 数据链路层

一. 数据链路层的基本概念 数据链路层主要负责节点之间的通信,确保从物理层接收到的数据能够准确无误地传输到网络层。 数据链路层使用的信道主要有以下两种类型: 点对点信道: 这种信道使用一对一的点对点通信方式。广播信道: 这种信道使用一对多的广播通信方式,…

数据结构————链表

一、引言 1. 中间/头部的插入删除,时间复杂度为O(N) 2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。 3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200&#x…

【网络原理】深入理解关于HTTP协议和报文的格式以及重要的属性

前言 🌟🌟本期讲解关于HTTP协议的重要的机制~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…

【MyBatis源码】CacheKey缓存键的原理分析

文章目录 Mybatis缓存设计缓存KEY的设计CacheKey类主体CacheKey组成CacheKey如何保证缓存key的唯一性 Mybatis缓存设计 MyBatis 每秒过滤众多数据库查询操作,这对 MyBatis 缓存键的设计提出了很高的要求。MyBatis缓存键要满足以下几点。 无碰撞:必须保证…