记一次Weblogic连接池泄露的修复过程
问题描述
从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连接池泄露的修复过程相关推荐
- 一次 Druid 连接池泄露引发的血案!
最近某个应用程序老是卡,需要重启才能解决问题,导致被各种投诉,排查问题是 Druid 连接池泄露引发的血案.. 异常日志如下: ERROR - com.alibaba.druid.pool.GetCo ...
- java weblogic连接池,Weblogic JNDI 方式连接连接池 (工作中遇到的问题)
背景描述 工作中客户的代码中没有alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS',这个sql,可是agent每条请求平均抓了60次 ...
- Apache HttpClient连接池泄露问题排查
Apache HttpClient连接池泄露问题排查 问题背景 业务系统主要的业务是一个数据聚合管理平台,其中系统有一个功能是同步所有资源(简称 大同步) 业务同步数据请求数据工具是适配 Apache ...
- mysql连接池泄露_一次线上故障:数据库连接池泄露后的思考
作者:陈朗,普兰金融科技能效工程部开发工程师 一:初步排查 早上作为能效平台系统的使用高峰期,系统负载通常比其它时间段更大一些,某个时间段会有大量用户登录.当天系统开始有用户报障,发布系统线上无法构建 ...
- weblogic oracle连接池配置文件,weblogic连接池的配置
Weblogic中访问oracle数据库的连接池可以采用三种JDBC方式进行配置 一 在weblogic console中按如下配置 建立connection pool ,并修改startWeblog ...
- weblogic连接池不释放问题解决_数据库连接池引起的FullGC问题,看我如何一步步排查、分析、解决...
作者:sneak 链接https://juejin.im/post/5ef800636fb9a07e66233884 来源:掘金 问题现象 在某个工作日,突然收到线上的服务告警,有大量的请求延时产生, ...
- HttpClient连接池泄露
现象 内部提供了一个文件上传的SDK,通过Apache HttpClient访问公司内部的文件服务器进行文件上传,然后偶尔会有同事反馈文件没有上传成功,但是文件服务器这边查看log也并没有收到请求, ...
- 记一次 Redis 连接池泄漏问题排查
这一天风和日丽,我很荣幸的参加进入组织的活动,这个组织依然是一群闷骚的少年,热火朝天的甩着膀子,写着神圣的 Java 代码,偌大的办公室,只能听见噼里啪啦的敲击键盘声! 好骚气的组织!!! ----- ...
- java 连接池配置_java数据库连接池配置的几种方式
关于java数据库连接池配置的几种方式 今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下 ...
最新文章
- 无线鼠标计算机不识别,win7系统下USB无线鼠标电脑检测不到如何解决
- 设计模式-行为-Iterator(迭代器)模式
- Python进阶:对象复制与比较,分深浅,见真假
- 推荐系统炼丹笔记:多模态推荐之用户评论篇
- Google开发者模式调试css样式的方法
- PyTorch入门-词向量
- UI设计干货模板|输入框设计临摹素材
- android view设置按钮颜色_Android 酷炫自定义 View:高仿 QQ 窗帘菜单
- 一网打尽!每个程序猿都该了解的黑客技术大汇总
- magento添加面包屑
- Oracle exp/imp导入不同的表空间
- 联想g510拆键盘的简单方法_联想g510笔记本电脑键盘拆卸视频
- python seo 外链_用python实现超级外链发布系统
- SQL-剔除周六日,节假日,非工作时间
- Altium Designer基础知识
- linux中24点游戏下载,怀旧24点官网版-怀旧24点游戏下载v2.0.0-Linux公社
- android开发语言列表及对应简写
- 详细记录丨公众号如何通过迁移开通留言功能?
- IDEA如何删除项目-小白实操记录
- python 的1970年秒数和datetime互相转换
热门文章
- gcc a.c 究竟经历了什么
- 47. Leetcode 107 - 二叉树的层次遍历 ii (二叉树-二叉树遍历)
- Leetcode 120. 三角形最小路径和 (每日一题 20210927)
- Leetcode 100. 相同的树 (每日一题 20210811)
- 不包含本位置值的累乘数组
- 3-spark学习笔记-SparkAPI
- 344. Reverse String
- 文巾解题 184. 部门工资最高的员工
- 如何迅速成长成为一名数据分析师(都是干货)?
- linux下面子目录绑定域名的方法,.htaccess绑定子域名到子目录方法