建数据库的时候使用 db2set DB2_CAPTURE_LOCKTIMEOUT=ON启用锁超时捕获的功能可以捕获锁超时的详细信息,而且不用启用任何的event monitor非常方便
举例来说
Session 1
$ db2 "create table t1(f1 varchar(10),f2 varchar(10))"
DB20000I The SQL command completed successfully.
$ db2 +c "insert into t1 values('dddd','dddd')"
DB20000I The SQL command completed successfully.
$
Session 2
$ db2 "select * from t1 with rr"
SQL0911N The current transaction has been rolled back because of a deadlock
or timeout. Reason code "68". SQLSTATE=40001
$
就会在DIAGPATH里面产生一个locktimeout文件,如db2locktimeout.0.13525.2017-02-15-13-40-22
$ cat db2locktimeout.0.13525.2017-02-15-13-40-22
LOCK TIMEOUT REPORT
Date: 15/02/2017
Time: 13:40:22
Instance: db2inst1
Database: SAMPLE
Member ID: 0
Lock Information:
Lock Name: 00040119000000000000000054
Lock Type: Basic TABLE lock
Lock Specifics: (obj={4;281})
Lock Requestor:
System Auth ID: DB2INST1
Application Handle: [0-53183]
Application ID: *LOCAL.db2inst1.170215080430
Application Name: db2bp
Requesting Agent ID: 13525
Coordinator Agent ID: 13525
Coordinator Partition: 0
Lock timeout Value: 30000 milliseconds
Lock mode requested: ..S
Application Status: (SQLM_LOCKWAIT)
Current Operation: (SQLM_FETCH)
Lock Escalation: No
Context of Lock Request:
Identification: UOW ID (8); Activity ID (1)
Activity Information:
Package Schema: (NULLID )
Package Name: (SQLC2K26NULLID )
Package Version: ()
Section Entry Number: 201
SQL Type: Dynamic
Statement Type: DML, Select (blockable)
Effective Isolation: Repeatable Read
Statement Unicode Flag: No
Statement: select * from t1 with rr
Lock Owner (Representative):
System Auth ID: DB2INST1
Application Handle: [0-53167]
Application ID: *LOCAL.db2inst1.170215080304
Application Name: db2bp
Requesting Agent ID: 17748
Coordinator Agent ID: 17748
Coordinator Partition: 0
Lock mode held: .IX
List of Active SQL Statements: Not available
List of Inactive SQL Statements from current UOW:
Entry: #1
Identification: UOW ID (3); Activity ID (1)
Package Schema: (NULLID )
Package Name: (SQLC2K26)
Package Version: ()
Section Entry Number: 203
SQL Type: Dynamic
Statement Type: DML, Insert/Update/Delete
Effective Isolation: Cursor Stability
Statement Unicode Flag: No
Statement: insert into t1 values('dddd','dddd')