查看: 7022|回复: 5

[精华] 使用db2pd捕捉locktimeout信息

[复制链接]
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
跳转到指定楼层
1#
发表于 2006-6-23 04:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
db2pd有一个不大常用的选项-catch:
http://publib.boulder.ibm.com/in ... 3%61%74%63%68%22%20

通过使用-catch可以捕捉到一些不会被记录到db2diag.log里面的信息。
下面给大家一个通过这种方法捕捉到locktimeout的例子。

环境:
aix5.2 db2v8 fp11

首先初始化3个窗口a,b,c
a:
cd ~
cd sqllib
cd cfg
cp db2cos ..
db2start
db2 update db cfg for sample using locktimeout 5
db2pd -catch locktimeout count 1

b:
db2 connect to sample
db2 +c "insert into t1 values (1)"

c:
db2 connect to sample
db2 +c "delete from t1"
<---等待5秒返回lock timeout

这时在db2diag.log里有:
2006-06-22-16.25.49.854001-240 I4156A274          LEVEL: Event
PID     : 199164               TID  : 1           PROC : db2pd
INSTANCE: taoewang             NODE : 000
FUNCTION: DB2 UDB, RAS/PD component, pdErrorCatch, probe:30
START   : Error catch set for ZRC -2146435004

2006-06-22-16.26.00.544312-240 I4431A1200         LEVEL: Event
PID     : 163370               TID  : 1           PROC : db2agent (SAMPLE)
INSTANCE: taoewang             NODE : 000         DB   : SAMPLE
APPHDL  : 0-11                 APPID: *LOCAL.taoewang.060622200428
FUNCTION: DB2 UDB, lock manager, sqlplnfd, probe:999
DATA #1 : <preformatted>
Caught rc -2146435004.  Dumping stack trace.
CALLSTCK:
  [0] 0x090000003318F730 pdLogPrintf + 0xB8
  [1] 0x090000003324BE7C sqlpErrorCatchForPD__FP8SQLP_LRBT1Uii + 0xFFFFFFFFFFFFF
E9C
  [2] 0x0900000032DDA584 sqlplnfd__FP20sqle_agent_privatecbP14SQLP_LOCK_INFOP8SQ
LP_LCBP9SQLP_LHSHP8SQLP_LRBUiiN27P8SQLP_AWBT7 + 0x1EC
  [3] 0x0900000032C787FC sqlplrq__FP20sqle_agent_privatecbP14SQLP_LOCK_INFO + 0x
D8
  [4] 0x0900000032D0C648 sqldReadNorm__FP13SQLD_DFM_WORKl + 0x92C
  [5] 0x0900000032BCAC54 @20@sqldFetchNext__FP13SQLD_DFM_WORK + 0x28C
  [6] 0x0900000032BCA8CC sqldfrd__FP13SQLD_DFM_WORK + 0xD0
  [7] 0x0900000032BA37FC sqldRowFetch__FP20sqle_agent_privatecbP8SQLD_CCBUlT3PP1
0SQLD_VALUEPUiT3 + 0x38
  [8] 0x0900000032BA3AA8 sqlritaSimplePerm__FP8sqlrr_cb + 0xFFFFFFFFFFFFFF1C
  [9] 0x0900000032BA0A00 sqlriSectInvoke__FP8sqlrr_cbP12sqlri_opparm + 0x18

2006-06-22-16.26.00.545311-240 I5632A403          LEVEL: Event
PID     : 163370               TID  : 1           PROC : db2agent (SAMPLE)
INSTANCE: taoewang             NODE : 000         DB   : SAMPLE
APPHDL  : 0-11                 APPID: *LOCAL.taoewang.060622200428
FUNCTION: DB2 UDB, trace services, pdInvokeCalloutScript, probe:10
START   : Invoking sqllib/db2cos script from lock manager sqlplnfd

2006-06-22-16.26.02.807529-240 I6036A386          LEVEL: Event
PID     : 163370               TID  : 1           PROC : db2agent (SAMPLE)
INSTANCE: taoewang             NODE : 000         DB   : SAMPLE
APPHDL  : 0-11                 APPID: *LOCAL.taoewang.060622200428
FUNCTION: DB2 UDB, trace services, pdInvokeCalloutScript, probe:20
STOP    : Completed invoking sqllib/db2cos script

打开db2cos.rpt可以见到当时的lock信息
Lock Timeout Caught
Thu Jun 22 16:26:00 EDT 2006
Instance          taoewang
Datbase:          SAMPLE
Partition Number: 0
PID:              163370
TID:              1
Function:         sqlplnfd
Component:        lock manager
Probe:            999
Timestamp:        2006-06-22-16.26.00.545246
AppID:            *LOCAL.taoewang.060622200428
AppHdl:         

Instance taoewang uses 64 bits and DB2 code release SQL08024
with level identifier 03050106
Informational tokens are DB2 v8.1.1.104, s060120, U805924, FixPak 11.

Operating System Information:

OSName:   AIX        
NodeName: panipuri   
Version:  5                    
Release:  2         
Machine:  0009028F4C00

CPU Information:
TotalCPU    OnlineCPU   ConfigCPU   Speed(MHz)  HMTDegree   Cores/Socket
4           4           4           375         1           n/a         

Physical Memory and Swap (Megabytes):
TotalMem    FreeMem     AvailMem    TotalSwap   FreeSwap   
4096        47          n/a         28704       20837      

Virtual Memory (Megabytes):
Total       Reserved    Available   Free      
32800       n/a         n/a         20883      

Message Queue Information:
MsgSeg      MsgMax      MsgMap      MsgMni      MsgTql      MsgMnb      MsgSsz               
n/a         4194304     n/a         n/a         n/a         4194304     n/a         

Shared Memory Information:
ShmMax               ShmMin               ShmIds      ShmSeg      
68719476736          1                    131072      0           

Semaphore Information:
SemMap      SemMni      SemMns      SemMnu      SemMsl      SemOpm      SemUme      SemUsz      SemVmx      SemAem      
n/a         131072      n/a         n/a         65535       1024        n/a         n/a         32767       16384      

CPU Load Information:
Short     Medium    Long      
1.398895  1.659851  1.883804  

Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:21:52

Applications:[/COLOR]
Address            AppHandl [nod-index] NumAgents  CoorPid    Status                  C-AnchID C-StmtUID  L-AnchID L-StmtUID  Appid                           
0x078000000018D5E0 12       [000-00012] 1          504070     UOW-Waiting             0        0          122      1          *LOCAL.taoewang.060622201324   
0x078000000011FB40 11       [000-00011] 1          163370     UOW-Executing           114      1          114      1          *LOCAL.taoewang.060622200428   
0x078000000011DB80 10       [000-00010] 1          291350     UOW-Waiting             0        0          122      1          *LOCAL.taoewang.060622200409   

Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:21:52

Transactions:[/COLOR]
Address            AppHandl [nod-index] TranHdl    Locks      State   Tflag      Tflag2     Firstlsn       Lastlsn        LogSpace        SpaceReserved   TID            AxRegCnt   GXID     
0x0780000020251980 10       [000-00010] 2          3          WRITE   0x00000000 0x00000000 0x000000FBC103 0x000000FBC103 108             159             0x0000000004C7 1          0        
0x0780000020252600 11       [000-00011] 3          4          READ    0x00000000 0x00000000 0x000000000000 0x000000000000 0               0               0x0000000004CD 1          0        
0x0780000020253280 12       [000-00012] 4          6          WRITE   0x00000000 0x00000000 0x000000FBC136 0x00000107B0F7 192             345             0x0000000004CB 1          0        

Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:21:52

BufferPools:
First Active Pool ID      1
Max Bufferpool ID         1
Max Bufferpool ID on Disk 1
Num Bufferpools           5

Address            Id         Name               PageSz     PA-NumPgs  BA-NumPgs  BlkSize    ES NumTbsp              PgsLeft              CurrentSz            PostAlter            SuspndTSCt
0x07800000203703E0 1          IBMDEFAULTBP       4096       1000       0          0          N  5                    0                    1000                 1000                 0         
0x07800000203670C0 4096       IBMHIDDENBP4K      4096       16         0          0          N  0                    0                    16                   16                   0         
0x0780000020367460 4097       IBMHIDDENBP8K      8192       16         0          0          N  0                    0                    16                   16                   0         
0x0780000020367800 4098       IBMHIDDENBP16K     16384      16         0          0          N  0                    0                    16                   16                   0         
0x0780000020367BA0 4099       IBMHIDDENBP32K     32768      16         0          0          N  0                    0                    16                   16                   0         

Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:21:52

Logs:
Current Log Number            0         
Pages Written                 219      
Method 1 Archive Status       n/a
Method 1 Next Log to Archive  n/a
Method 1 First Failure        n/a
Method 2 Archive Status       n/a
Method 2 Next Log to Archive  n/a
Method 2 First Failure        n/a

Address            StartLSN       State      Size       Pages      Filename
0x0780000020008118 0x000000FA0000 0x00000000 1000       1000       S0000000.LOG
0x07800000200081B8 0x000001388000 0x00000000 1000       1000       S0000001.LOG
0x0780000020008258 0x000001770000 0x00000000 1000       1000       S0000002.LOG

Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:21:52

Locks:
Address            TranHdl Lockname                   Type       Mode Sts Owner      Dur HldCnt Att    ReleaseFlg
0x07800000202D9180 4       0003000C000000070000000052 Row        ..X  G   4          1   0      0x0008 0x40000000
0x07800000202D95C0 2       53514C4332453037DF495EFE41 Internal P ..S  G   2          1   0      0x0000 0x40000000
0x07800000202D8E40 4       53514C4332453037DF495EFE41 Internal P ..S  G   4          1   0      0x0000 0x40000000
0x07800000202D96C0 3       53514C4332453037DF495EFE41 Internal P ..S  G   3          1   0      0x0000 0x40000000
0x07800000202D99C0 4       53514C4445464C540763DD2841 Internal P ..S  G   4          1   0      0x0000 0x40000000
0x07800000202D9000 4       0003000C000000060000000052 Row        ..X  G   4          1   0      0x0008 0x40000000
0x07800000202D8CC0 3       00000001000000010001720056 Internal V ..S  G   3          1   0      0x0000 0x40000000
0x07800000202D9680 4       0003000C000000050000000052 Row        ..X  G   4          1   0      0x0008 0x40000000
0x07800000202D9240 2       0003000C000000040000000052 Row        ..X  G   2          1   0      0x0008 0x40000000
0x07800000202D8740 3       0003000C000000040000000052 Row        ..X  W*  3          1   0      0x0000 0x40000000 [/COLOR]
0x07800000202D8BC0 2       0003000C000000000000000054 Table      .IX  G   2          1   0      0x0000 0x40000000
0x07800000202D8B40 4       0003000C000000000000000054 Table      .IX  G   4          1   0      0x0000 0x40000000
0x07800000202D8C40 3       0003000C000000000000000054 Table      .IX  G   3          1   0      0x0000 0x40000000

首先我们看到有3个application,3个transaction,然后直接跳到locklist那里找到W*,这个就是被locktimeout的。
看到他的lockname=0003000C000000040000000052,然后还有一个lock有同样的名字:
0x07800000202D9240 2       0003000C000000040000000052 Row        ..X  G   2          1   0      0x0008 0x40000000
看到transaction id=2
0x0780000020251980 10       [000-00010] 2          3          WRITE   0x00000000 0x00000000 0x000000FBC103 0x000000FBC103 108
application id=10:
0x078000000011DB80 10       [000-00010] 1          291350     UOW-Waiting             0        0          122      1          *LOCAL.taoewang.060622200409   

对应的L-AnchID=122 L-StmtUID=1
就可以找到相应的dynamic statement:
0x07800000209EE5C0 122    1          1          1          4          4          insert into t1 values (1)
这个就是lock的holder

同理
0x078000000011FB40 11       [000-00011] 1          163370     UOW-Executing           114      1          114      1          *LOCAL.taoewang.060622200428   
所定应的114-1就是
0x07800000209EF440 114    1          1          1          4          4          delete from t1
这个就是被locktimeout的东西。

hope it helps
论坛徽章:
71
马上加薪
日期:2014-02-19 11:55:14ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412010广州亚运会纪念徽章:橄榄球
日期:2011-05-22 10:54:33管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:012010年世界杯参赛球队:丹麦
日期:2010-04-06 10:23:36
2#
发表于 2006-6-23 09:12 | 只看该作者
8。2才有这个功能吧

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2006-02-05 11:03:26数据库板块每日发贴之星
日期:2006-02-10 01:02:41IBM软件技术精英协会成员
日期:2006-12-21 15:37:12
3#
发表于 2007-6-8 14:57 | 只看该作者
在db2v9中,执行:
C:\>db2pd -catch deadlock
Invalid command line option -catch

在db2 v9 执行db2pd -h显示,确实不存在-catch.

v9难道不支持了。

使用道具 举报

回复
论坛徽章:
233
天枰座
日期:2016-02-02 09:36:332012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41灰彻蛋
日期:2011-06-22 19:28:30现任管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-04-08 16:56:552011新春纪念徽章
日期:2011-02-18 11:43:332011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:15
4#
发表于 2007-6-8 15:31 | 只看该作者
db2pdcfg -catch locktimeout count=1

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2006-02-05 11:03:26数据库板块每日发贴之星
日期:2006-02-10 01:02:41IBM软件技术精英协会成员
日期:2006-12-21 15:37:12
5#
发表于 2007-6-8 15:44 | 只看该作者
最初由 diablo2 发布
[B]db2pdcfg -catch locktimeout count=1 [/B]


thanks!

使用道具 举报

回复
论坛徽章:
0
6#
发表于 2007-6-11 23:26 | 只看该作者

好贴!早看到就好了

1、我是db2pd 快照监控去获取锁等待超时信息的,找到“W"标志的锁很费工夫,还要时机掌握的好,db2cos这种方法类似事件监控,自动捕获记录。
2、v9 原来是db2pdcfg

顺便问一下,前面文章中讲到得到对应的L-AnchID=122 L-StmtUID=1
后如何找到相应的dynamic statement没讲清楚,如果db2cos没有捕获记录下来,则需要通过动态sql语句快照监控或db2pd  -dynamic
获取的只是当前内存中的sql。正式生产环境不同于测试环境,这个时候很可能已经找不到L-AnchID=122 对应sql了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表