DB2解决死锁

摘要:
方法1:查看db2diag日志文件找到DeadLockorLocktimeout,并搜索死锁或锁定超时信息db2forceapplication(句柄ID)以直接结束进程。方法2:DB2快照信息1.查看DB2快照信息db2getsnapshotforlockonsample以获得类似信息:数据库锁快照数据库名称=SAMPLE数据库路径=D:IBMDB2NODE000SQL0000
方法一、查看db2diag.log文件 找到DeadLock or Lock timeout搜索 死锁或锁超时信息db2 force application(句柄ID)直接结束进程即可。
方法二、DB2快照信息1、看一下DB2快照信息db2 get snapshot for locks on sample  
可以得到类似信息: 数据库锁定快照 数据库名称 = SAMPLE 数据库路径= D:\IBM\DB2\NODE0000\SQL00001\ 输入数据库别名 = SAMPLE 挂起的锁定 = 8
当前已连接的应用程序 = 2 当前正等待锁定的代理程序数 = 1 应用程序句柄 = 54 应用程序标识 = *LOCAL.DB2.140304192925序号 = 00001应用程序名 = db2bp.exe CONNECT 授权标识 = DB2ADMIN 应用程序状态 = 锁定等待 应用程序代码页 = 1208挂起的锁定 = 4 总计等待时间(毫秒) = 247867 锁定列表 锁定名称 = 0x5359534C564C3031DDECEF2841锁定属性 = 0x00000000发行版标志 = 0x40000000锁定计数 = 1挂起计数 = 0 锁定对象名 = 2312对象类型 = 行 表空间名 = IBMDB2SAMPLEREL 表模式 = DB2ADMIN 表名 = TEST方式 = IX
查看锁定的详细信息:db2 get snapshot for locks for application agentid 1728----(1728是句柄ID)
3、观察命令db2 list applications的输出 查看应用程序的状态是否有锁定等待(Lock-wait)状态出现。 执行命令 list applications for db sample show detail;4、db2 force application(句柄ID)直接结束进程即可。

免责声明:文章转载自《DB2解决死锁》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python制作爬虫爬取京东商品评论教程vue后台管理系统项目下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DB2 日期时间函数

db2日期时间函数 (DATE(TRIM(CHAR(DT#11Y))||'-'||TRIM(CHAR(DT#11M))||'-'||TRIM(CHAR(DT#11D))) BETWEEN DATE('" & strDate1 & "') AND DATE('" & strDate2 & "')) (Y > y) OR...

SQL Server2000中死锁经验总结 <转>

虽然不能完全避免死锁,但可以使死锁的数量减至最少。将死锁减至最少可以增加事务的吞吐量并减少系统开销,因为只有很少的事务: 回滚,而回滚会取消事务执行的所有工作。 由于死锁时回滚而由应用程序重新提交。 下列方法有助于最大限度地降低死锁: 按同一顺序访问对象。 避免事务中的用户交互。 保持事务简短并在一个批处理中。 使用低隔离级别...

c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)

1.首先定义数据库操作的标准接口IDBAccess,定义接口的基本功能; 2.通过枚举型参数,动态创建接口的实例(工厂模式) 3.基类实现接口,派生类完成具体功能 4.具体请参见代码; using System;using System.Data;using System.Data.Common;using System.Data.OleDb;u...

DB2查询前100到后200之间的数据

select T.sicCd form Table T where T.sicCd not in ( select sicCd form Table fetch first 100 rows only ) fetch first 100 rows only...

使用golang理解mysql的两阶段提交

使用golang理解mysql的两阶段提交 文章源于一个问题:如果我们现在有两个mysql实例,在我们要尽量简单地完成分布式事务,怎么处理? 场景重现 比如我们现在有两个数据库,mysql3306和mysql3307。这里我们使用docker来创建这两个实例: # mysql3306创建命令 docker run -d -p 3306:3306 -v /U...

DB2命令——客户端命令连接服务器

在DB2中从客户端访问服务器端的数据库时,不能直接用connect命令,而必须先建立通信node,再在node的基础上建立数据库连接。在命令行的具体操作如下: ->db2 catalog tcpip node ABC remote serverName server 50000 ->db2 catalog db databaseName at...