DB2的lock timeout分析

建数据库的时候使用 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')

请使用浏览器的分享功能分享到微信等