美文网首页
记一次数据池连接不释放的问题

记一次数据池连接不释放的问题

作者: 赖小赖gogogo | 来源:发表于2019-03-04 22:02 被阅读0次

项目背景:elastic job(底层是quartz)
由于esjob中是通过新建线程来执行任务的,所以不能加载为spring bean,因此任务内部通过实现ApplicationContextAware的方式来获取spring bean,问题就出现在这里了


1.png

这个任务每分钟跑一次,然后发现数据库连接池中的逻辑开启越来越多,逻辑关闭远小于逻辑开启,一段时间后就无连接可用了,很明显该现象是因为连接没有关闭,连接没有关闭是因为事务没有提交,但一直以来都是这样使用的,不需要手动提交,为什么这里会出问题呢?怀疑是数据库问题(虽然可能性不大),查看后mysql是自动提交的,然后又看了下druid连接池,也是自动提交的,那为什么这里的事务不提交呢 - -
看了半天后才发现,tmd我没有用到事务啊,之前的方法都是@Transactional管理的,方法开始前会开启事务,结束后会commit或rollback,连接关闭,所以赶紧地把任务抽取成独立方法,加上注解,问题解决

相关文章

  • 记一次数据池连接不释放的问题

    项目背景:elastic job(底层是quartz)由于esjob中是通过新建线程来执行任务的,所以不能加载为s...

  • springboot采坑

    问题1: 整合mybatis和数据库连接池时,数据库连接池的配置不生效 解决方式一: 需要使用如下方式显示声明一次...

  • 数据库技术五:数据库连接池,Commons DbUtils,批处

    数据库连接池 连接池介绍 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,...

  • Spring Boot——整合Druid数据库连接池

    使用数据库连接池的意义: 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,...

  • 连接池

    1.连接池负责分配、管理、释放数据库连接。用来解决 创建数据库连接需要耗费资源和时间问题。允许应用程序重复使用现有...

  • java基础-day36-数据库连接池和HTML

    数据库连接池和HTML 1. 数据库连接池 1.1 为什么要使用数据库连接池 1.2 数据库连接池考虑的问题 1....

  • 连接池---自定义链接

    一 连接池概念数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新...

  • free()后内存不释放问题 - 内存缓冲池技术

    free()后内存不释放问题 - 内存缓冲池技术 free()后内存不释放问题 - 内存缓冲池技术

  • 数据库连接池

    数据库连接池 数据库连接池负责分配,管理,释放数据库连接,它允许应用程序重复使用一个连接而不是重新建立一个;它会自...

  • 数据库连接池

    数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放...

网友评论

      本文标题:记一次数据池连接不释放的问题

      本文链接:https://www.haomeiwen.com/subject/zcywuqtx.html