美文网首页
DB2会话之间锁问题排查

DB2会话之间锁问题排查

作者: XJ2017 | 来源:发表于2018-05-12 22:32 被阅读0次

现象

代码执行到update语句时卡住了,不再往下执行(没有任何日志的输出)

思路

  • 定位数据库指定表的锁信息
  • 定位锁等待的两个或多个会话
  • 定位不同会话执行的最后SQLID
  • 定位SQLID对应的具体SQL

实操

  1. 进入linux用户,并登陆db2

     db2 connect to 数据库名称 user 用户名 using 密码
     或 
     db2 connect to 数据库名称 user 用户名(enter后再输入密码)
    
image.png
  1. 定位数据库指定表的锁信息

     db2top -d 数据库名称
    
image.png

enter之后出现下图:


image.png

输入U,显示所有锁信息如下图:


image.png
  1. 定位锁等待的两个或多个会话

输入T,显示会话之间锁等待的关系如下图:


image.png
“ A -> B ” 表示B等待A会话释放资源
  1. 定位不同会话执行的最后SQLID

     db2pd -d 数据库名称 -applications |grep -i 会话标识
    
image.png image.png
  1. 定位SQLID对应的具体SQL

    db2pd -d 数据库名称 -dynamic |grep -i SQL标识

image.png image.png

结论:会话50401中最后执行的SQL(563)(update)在等会话50367提交事务

相关文章

  • DB2会话之间锁问题排查

    现象 代码执行到update语句时卡住了,不再往下执行(没有任何日志的输出) 思路 定位数据库指定表的锁信息 定位...

  • DB2隔离级别和锁相关

    DB2 中四种隔离级别的叫法 DB2默认的隔离级别是CS。 关于DB2中的锁, 参考 学习DB2中的锁---锁基础

  • Java读写锁注意

    今天排查问题,发现读锁和写锁都被阻塞,而阻塞线程只持有读锁! 写demo模拟后出现了相同的问题: 打断点后,进入r...

  • 解决数据库阻塞问题 Lock_TIMEOUT 选项 (1)设置会话等待锁释放的超时期限 (2)默认情况下会话不会设...

  • DB2中字符、数字和日期类型之间的转换

    DB2中字符、数字和日期类型之间的转换 标签(空格分隔): DB2 SQL 一般我们在使用DB2或Oracle的过...

  • db2锁表解决

    首先DB2锁表和解锁[https://blog.csdn.net/chuhe163/article/details...

  • db2 的锁

    锁,很好理解,每个人都在自己的房屋上安装有锁,你拥有了锁,房屋只有你能独占,别人不能访问。数据库中的锁也一样,只不...

  • java死锁排查

    多个线程在竞争锁的过程中彼此之间形成堵塞的现象 排查 jstack查看线程以及堆栈信息 jconsole可视化工具...

  • mysql表级锁

    InnoDB表锁 - 读锁(显示指定) 语句: 结论: 表级读锁/会话session读操作写操作当前session...

  • MySQL InnoDB 锁等待和锁等待超时的处理

    1. Innodb 引擎表行锁等待和等待超时发生的场景 当一个MySQL 连接会话等待另外一个会话持有的互斥行锁时...

网友评论

      本文标题:DB2会话之间锁问题排查

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