问题描述

从weblogic控制台上,可以看到连接泄露已经达到了6K+,应用已经变得非常不稳定。

根据以往的经验,连接池出现泄漏情况一般为代码申请了一个数据库连接,使用后未正常关闭,导致连接一致被占用,应用运行长时间后,累积的泄漏连接越来越多,导致应用在申请数据库连接时出现无可用连接的情况,从而出现应用报异常的情况。

排查过程

从PLSQL中 工具 -会话

可以看到 存在的sql,然后对应到了具体的代码中,发现问题。

出现这种情况后,我们可以从数据库查询一下当前sessions和processes配置情况,都在1600以上;

select count (*) from v$session;

select count(*) from v$process;

查询当前占用数据库连接较多的主机和登录用户名
select count(*),SCHEMANAME,machine from v$session group by SCHEMANAME,machine;(注:截图中的数据不是出现问题时的情况反映)

如果某一主机占用连接数很大,明显不正常,进一步,检查造成这种情况的sql:

select count(*),v.PREV_SQL_ADDR,v.PREV_HASH_VALUE from v$session v group by v.PREV_SQL_ADDR,v.PREV_HASH_VALUE order by count(*) desc ;

查询相关的SQL内容:

select * from v$sql s where s.ADDRESS='C0000013B573D278' and s.HASH_VALUE='32127143';

查询得到语句:

insert into onu_oper_record ( id,order_id , wo_id,oper_type,accnbr,create_time,staff_id,staff_name,area_id,org_id,bccode,crm_ret_code,crm_ret_msg,crm_bcd_code)  values ( onu_oper_record_seq.nextval ,:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)

检查发现 java 类中存在两次获得连接未正常关闭的情况

思考

之前排查代码的时候,仅仅考虑了看是否有未关闭的连接,却没有注意到 获取的时候 并没有将获取的连接 赋值给 connecition,导致虽然最后关闭了连接,其实传入的是null。

记一次Weblogic连接池泄露的修复过程相关推荐

  1. 一次 Druid 连接池泄露引发的血案!

    最近某个应用程序老是卡,需要重启才能解决问题,导致被各种投诉,排查问题是 Druid 连接池泄露引发的血案.. 异常日志如下: ERROR - com.alibaba.druid.pool.GetCo ...

  2. java weblogic连接池,Weblogic JNDI 方式连接连接池 (工作中遇到的问题)

    背景描述 工作中客户的代码中没有alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS',这个sql,可是agent每条请求平均抓了60次 ...

  3. Apache HttpClient连接池泄露问题排查

    Apache HttpClient连接池泄露问题排查 问题背景 业务系统主要的业务是一个数据聚合管理平台,其中系统有一个功能是同步所有资源(简称 大同步) 业务同步数据请求数据工具是适配 Apache ...

  4. mysql连接池泄露_一次线上故障:数据库连接池泄露后的思考

    作者:陈朗,普兰金融科技能效工程部开发工程师 一:初步排查 早上作为能效平台系统的使用高峰期,系统负载通常比其它时间段更大一些,某个时间段会有大量用户登录.当天系统开始有用户报障,发布系统线上无法构建 ...

  5. weblogic oracle连接池配置文件,weblogic连接池的配置

    Weblogic中访问oracle数据库的连接池可以采用三种JDBC方式进行配置 一 在weblogic console中按如下配置 建立connection pool ,并修改startWeblog ...

  6. weblogic连接池不释放问题解决_数据库连接池引起的FullGC问题,看我如何一步步排查、分析、解决...

    作者:sneak 链接https://juejin.im/post/5ef800636fb9a07e66233884 来源:掘金 问题现象 在某个工作日,突然收到线上的服务告警,有大量的请求延时产生, ...

  7. HttpClient连接池泄露

    现象 内部提供了一个文件上传的SDK,通过Apache HttpClient访问公司内部的文件服务器进行文件上传,然后偶尔会有同事反馈文件没有上传成功,但是文件服务器这边查看log也并没有收到请求, ...

  8. 记一次 Redis 连接池泄漏问题排查

    这一天风和日丽,我很荣幸的参加进入组织的活动,这个组织依然是一群闷骚的少年,热火朝天的甩着膀子,写着神圣的 Java 代码,偌大的办公室,只能听见噼里啪啦的敲击键盘声! 好骚气的组织!!! ----- ...

  9. java 连接池配置_java数据库连接池配置的几种方式

    关于java数据库连接池配置的几种方式 今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下 ...

最新文章

  1. 无线鼠标计算机不识别,win7系统下USB无线鼠标电脑检测不到如何解决
  2. 设计模式-行为-Iterator(迭代器)模式
  3. Python进阶:对象复制与比较,分深浅,见真假
  4. 推荐系统炼丹笔记:多模态推荐之用户评论篇
  5. Google开发者模式调试css样式的方法
  6. PyTorch入门-词向量
  7. UI设计干货模板|输入框设计临摹素材
  8. android view设置按钮颜色_Android 酷炫自定义 View:高仿 QQ 窗帘菜单
  9. 一网打尽!每个程序猿都该了解的黑客技术大汇总
  10. magento添加面包屑
  11. Oracle exp/imp导入不同的表空间
  12. 联想g510拆键盘的简单方法_联想g510笔记本电脑键盘拆卸视频
  13. python seo 外链_用python实现超级外链发布系统
  14. SQL-剔除周六日,节假日,非工作时间
  15. Altium Designer基础知识
  16. linux中24点游戏下载,怀旧24点官网版-怀旧24点游戏下载v2.0.0-Linux公社
  17. android开发语言列表及对应简写
  18. 详细记录丨公众号如何通过迁移开通留言功能?
  19. IDEA如何删除项目-小白实操记录
  20. python 的1970年秒数和datetime互相转换

热门文章

  1. gcc a.c 究竟经历了什么
  2. 47. Leetcode 107 - 二叉树的层次遍历 ii (二叉树-二叉树遍历)
  3. Leetcode 120. 三角形最小路径和 (每日一题 20210927)
  4. Leetcode 100. 相同的树 (每日一题 20210811)
  5. 不包含本位置值的累乘数组
  6. 3-spark学习笔记-SparkAPI
  7. 344. Reverse String
  8. 文巾解题 184. 部门工资最高的员工
  9. 如何迅速成长成为一名数据分析师(都是干货)?
  10. linux下面子目录绑定域名的方法,.htaccess绑定子域名到子目录方法