911错不一定是死锁,怎么区分死锁和超时
来源:互联网 发布:python 大写 编辑:程序博客网 时间:2024/05/02 04:23
大家在开发、测试过程中,常见到程序报911这样的错,查看一下帮助:
很明显是两种原因可能造成这样的错误。
1、死锁
2、锁等待超时
怎么区分呢?
思路:
根据原因码,如果是2就是死锁引起的;如果是68就是超时引起的。
如果没有获得原因码,那么从系统自带的死锁监视器里确认是否发生过死锁,如果没有发生,则就是超时引起的。
超时解决办法:
1、优化相关sql
2、延长超时设置
死锁分析方法:
用实例用户连接到db2实例,切换到死锁监视器路径下,运行db2evmon -path xxx >lock_rpt.txt来生成报告。
-- The End --
d:/>db2 ? sql0911n
SQL0911N因为死锁或超时,所以当前事务已回滚。原因码为
"<原因码>"。
解释:
当前工作单元涉及到未解决的对使用对象的争用,因此不得不回滚。
原因码如下:
2 由于死锁而导致事务已回滚。
68 由于锁定超时而导致事务已回滚。
72 因为存在与事务中所涉及的 DB2 Data Links Manager
有关的错误,所以事务已回滚。
注释: 必须再次输入与工作单元相关的更改。
应用程序已回滚至上一次 COMMIT。
用户响应:
为了帮助避免死锁或锁定超时,对长时间运行的应用程序或有可能遇到死锁
的应用程序频繁发出 COMMIT 操作(如果有可能的话)。
联合系统用户:死锁可能发生在联合服务器或数据源上。没有检测跨越数据
源并潜在地跨越联合系统的死锁的机制。有可能标识使请求失败的数据源(
参阅 Problem Determination Guide 以确定哪一个数据源使 SQL
语句的处理失败)。
当处理 SQL 语句的某些组合时,通常会发生死锁或者预期会发生死锁。建议
您设计应用程序来尽可能避免死锁。
sqlcode : -911
sqlstate : 40001
d:/>
很明显是两种原因可能造成这样的错误。
1、死锁
2、锁等待超时
怎么区分呢?
思路:
根据原因码,如果是2就是死锁引起的;如果是68就是超时引起的。
如果没有获得原因码,那么从系统自带的死锁监视器里确认是否发生过死锁,如果没有发生,则就是超时引起的。
超时解决办法:
1、优化相关sql
2、延长超时设置
死锁分析方法:
用实例用户连接到db2实例,切换到死锁监视器路径下,运行db2evmon -path xxx >lock_rpt.txt来生成报告。
-- The End --
- 911错不一定是死锁,怎么区分死锁和超时
- SQLServer 索引引起大量超时和死锁!
- 线程死锁,使用Future捕获死锁超时
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- 死锁
- #pragma once与 #ifndef的区别
- SSL+IIS设置概要
- c#生成PDF文件源码
- sql调优3:调整db2的优化器级别
- 用GetLocalTime()获取当前时间
- 911错不一定是死锁,怎么区分死锁和超时
- 使用 Ildasm, ILasm, Peverify 来 Crack 别人写的应用程序
- 水晶报表打印
- 喋喋不休会将你丈夫推出婚姻的围城
- sql调优4:修改sql,去视图
- 人的潜能和机会总是无限的
- Direct3D学习笔记(二)——顶点坐标变换
- 家庭理财能够为婚姻护航
- 度量直接影响到了人与人之间的关系是否能协调发展