您的位置:首页 > 博客中心 > 数据库 >

数据库死锁严重引发中间件连接池满故障诊断

时间:2022-03-14 03:48

1、故障现象

      前台系统应用无法登陆,weblogic服务器应用程序的运行状态显示为overload,线程连接池满。

2、故障原因分析

       根据上述故障现象,分析基础可以确定为是Weblogic有过多的连接连到数据库,因为会话一直保持未释放,将连接池占满后,导致新的连接无法请求到连接池。在此关键是分析为什么会有大量的会话占满连接池而不释放。

3、问题分析过程

3.1 session数超过1000

 

  

Wed Dec 10 09:55:05 2014

Global Enqueue Services Deadlock detected. More info in file

 /oracle/admin/XXTH/bdump/XXth1_lmd0_1541770.trc.

Wed Dec 10 09:55:36 2014

Thread 1 advanced to log sequence 493665 (LGWR switch)

 Current log# 16 seq# 493665 mem# 0: +REDOGROUP/XXth/onlinelog/group_16.263.837169415

Wed Dec 10 09:56:04 2014

Thread 1 advanced to log sequence 493666 (LGWR switch)

 Current log# 14 seq# 493666 mem# 0: +REDOGROUP/XXth/onlinelog/group_14.261.837169357

Wed Dec 10 09:56:05 2014

Global Enqueue Services Deadlock detected. More info in file

 /oracle/admin/XXTH/bdump/XXth1_lmd0_1541770.trc.

 

4、问题原因诊断总结

       语句DELETEFROM PUB_XXLINE WHERE USER_ID=:1每次操作的数据行有多行,多个会话同时执行该语句,在数据库内形成死锁,并且玥塞单次删除一行数据的语句DELETEFROM PUB_XXLINE WHERE SESSION_ID=:1从而使Weblogic(中间件)的连接池消耗殆尽。无法新增连接。

 

 

本文作者:黎俊杰(网名:踩点),从事”系统架构、操作系统、存储设备、数据库、中间件、应用程序“六个层面系统性的性能优化工作

欢迎加入 系统性能优化专业群,共同探讨性能优化技术。群号:258187244

热门排行

今日推荐

热门手游