IBM Support

[Db2] ロック・イベント・モニターで取得した情報の見方 (デッドロック・イベント)

Question & Answer


Question

バージョン 9.7 以降のロック・イベント・モニターで取得した、デッドロック・イベント (DEADLOCK) の情報の見方について教えてください。

Answer

※ ロック・イベント・モニターの設定方法は [Db2] ロック・イベント・モニターの設定方法 を参照してください。
 
  1. 未フォーマット・イベント表の情報取得
    ロック・イベント・モニターで取得した情報のフォーマットの方法は [Db2] ロック・イベント・モニターで取得した情報のフォーマット方法 を参照してください。
    db2evmonfmt 使用してテキスト・レポートを出力します。
    実行例:
    指定したイベント ID 1 のフォーマット済みテキスト出力を、データベース SAMPLE にある未フォーマット・イベント表 lockevmon から取得する場合には、以下のコマンドを発行します。
    $ java db2evmonfmt -d sample -ue lockevmon -ftext -id 1
  2. 取得した情報の見方
    出力されたレポートから以下のことが分かります。

    2012-04-18-17.28.01.402057 にデッドロックが発生しています。
    -------------------------------------------------------
    Event ID               : 3
    Event Type             : [DEADLOCK]
    Event Timestamp        : [2012-04-18-17.28.01.402057]
    Partition of detection : 0
    -------------------------------------------------------

    デッドロックに関わったアプリケーションは 2 つで、Participant No 2 のアプリケーションがロールバックされています。
    Deadlock Graph
    --------------
    Total number of deadlock participants : [2]
    Participant that was rolled back      : [2]
    Type of deadlock                      : local
    
    Participant     Participant     Deadlock Member Application Handle
    Requesting Lock Holding Lock
    --------------- --------------- --------------- ------------------
    1               2               0               01606
    2               1               0               01605
    

    Participant No 1 のアプリケーションは、ORG 表内の行へ X ロックを保持し、EMPLOYEE 表 で U ロックを要求しています。一方で Participant No 2 のアプリケーションは、EMPLOYEE 表内の行へ X ロックを保持し、ORG 表で U ロックを要求しています。
    Participant No 2 requesting lock
    ----------------------------------
    Lock Name            : 0x0002000E000000000000000552
    Lock wait start time : 2012-04-18-17.27.44.338188
    Lock wait end time   : 2012-04-18-17.28.01.402057
    Lock Type            : [ROW]
    Lock Specifics       : ROWID=5,DATA_PARTITION_ID=0,PAGEID=0
    Lock Attributes      : 00000000
    Lock mode requested  : [Update]
    Lock mode held       : [Exclusive]
    Lock Count           : 1
    Lock Hold Count      : 0
    Lock rrIID           : 0
    Lock Status          : Waiting
    Lock release flags   : 40000000
    Tablespace TID       : 2
    Tablespace Name      : USERSPACE1
    Table FID            : 14
    Table Schema         : V97FP5
    Table Name           : [ORG]
    
    Participant No 1 requesting lock
    ----------------------------------
    Lock Name            : 0x00020006000000000000000452
    Lock wait start time : 2012-04-18-17.27.52.845894
    Lock wait end time   : 2012-04-18-17.28.01.402057
    Lock Type            : [ROW]
    Lock Specifics       : ROWID=4,DATA_PARTITION_ID=0,PAGEID=0
    Lock Attributes      : 00000000
    Lock mode requested  : [Update]
    Lock mode held       : [Exclusive]
    Lock Count           : 1
    Lock Hold Count      : 0
    Lock rrIID           : 0
    Lock Status          : Waiting
    Lock release flags   : 40000000
    Tablespace TID       : 2
    Tablespace Name      : USERSPACE1
    Table FID            : 6
    Table Schema         : V97FP5
    Table Name           : [EMPLOYEE]
    
    両者が互いにロックを保持したままロック待ちの状態になっているため、デッドロックが生じます。

    ロールバックされた Participant No 2 のアプリケーション名は db2jcc_application で、Java アプリケーションです。アプリケーション ID から接続元アプリケーションの IP アドレスが 192.168.11.3 であることを確認できます。
    他方のロールバックによりロックを獲得できた Participant No 1 のアプリケーション名は db2bp で、ローカル接続のアプリケーションです。db2bp は、コマンド行プロセッサー (CLP) におけるバックエンド・プロセスです。
    Attributes            [Requester]                    [Requester]
    --------------------- ------------------------------  ------------------------------
    Participant No        2                               1
    Application Handle    01606                           01605
    Application ID        192.168.11.3.55406.120418082655 *LOCAL.v97fp5.120418082556
    Application Name      [db2jcc_application]            [db2bp]
    Authentication ID     V97FP5                          V97FP5
    Requesting AgentID    26302                           25275
    Coordinating AgentID  26302                           25275
    Agent Status          UOW Executing                   UOW Executing
    Application Action    No action                       No action
    Lock timeout value    0                               0
    Lock wait value       10000                           10000
    Workload ID           1                               1
    Workload Name         SYSDEFAULTUSERWORKLOAD          SYSDEFAULTUSERWORKLOAD
    Service subclass ID   13                              13
    Service subclass      SYSDEFAULTSUBCLASS              SYSDEFAULTSUBCLASS
    Current Request       Execute Immediate               Execute Immediate
    TEntry state          2                               2
    TEntry flags1         00000000                        00000000
    TEntry flags2         00000200                        00000200
    Lock escalation       no                              no
    Client userid
    Client wrkstnname     lockevent.xxx.com
    Client applname
    Client acctng
    
    デッドロック発生時、Participant No 1 のアプリケーションでは ORG 表を UPDATE してから EMP 表を UPDATE していますが、Participant No 2 のアプリケーションでは EMP 表を UPDATE してから ORG 表の UPDATE を実行しています。
    Current Activities of Participant No 2
    ----------------------------------------
    Activity ID        : 2
    Uow ID             : 1
    Package Name       : SYSSH200
    Package Schema     : NULLID
    Package Version    :
    Package Token      : SYSLVL01
    Package Sectno     : 65
    Reopt value        : none
    Incremental Bind   : no
    Eff isolation      : CS
    Eff degree         : 0
    Eff locktimeout    : -1
    Stmt first use     : 2012-04-18-17.27.44.337846
    Stmt last use      : 2012-04-18-17.27.44.337846
    Stmt unicode       : no
    Stmt query ID      : 0
    Stmt nesting level : 0
    Stmt invocation ID : 0
    Stmt source ID     : 0
    Stmt pkgcache ID   : 4298506240
    Stmt type          : [Dynamic]
    Stmt operation     : [DML, Insert/Update/Delete]
    Stmt text          : [update ORG set MANAGER=20 where DEPTNUMB=15]
    
    
    Past Activities of Participant No 2
    -------------------------------------
    Past Activities wrapped: no
    
    Activity ID        : 1
    Uow ID             : 1
    Package Name       : SYSSH200
    Package Schema     : NULLID
    Package Version    :
    Package Token      : SYSLVL01
    Package Sectno     : 65
    Reopt value        : none
    Incremental Bind   : no
    Eff isolation      : CS
    Eff degree         : 0
    Eff locktimeout    : -1
    Stmt first use     : 2012-04-18-17.27.05.618665
    Stmt last use      : 2012-04-18-17.27.05.618665
    Stmt unicode       : no
    Stmt query ID      : 0
    Stmt nesting level : 0
    Stmt invocation ID : 0
    Stmt source ID     : 0
    Stmt pkgcache ID   : 8616804352
    Stmt type          : [Dynamic]
    Stmt operation     : [DML, Insert/Update/Delete]
    Stmt text          : [update EMP set BONUS=800 where EMPNO=000010]
    
    
    
     
    Current Activities of Participant No 1
    ----------------------------------------
    Activity ID        : 2
    Uow ID             : 1
    Package Name       : SQLC2H22
    Package Schema     : NULLID
    Package Version    :
    Package Token      : AAAAAFDb
    Package Sectno     : 203
    Reopt value        : none
    Incremental Bind   : no
    Eff isolation      : CS
    Eff degree         : 0
    Eff locktimeout    : -1
    Stmt first use     : 2012-04-18-17.27.52.845557
    Stmt last use      : 2012-04-18-17.27.52.845557
    Stmt unicode       : no
    Stmt query ID      : 0
    Stmt nesting level : 0
    Stmt invocation ID : 0
    Stmt source ID     : 0
    Stmt pkgcache ID   : 4321574912
    Stmt type          : [Dynamic]
    Stmt operation     : [DML, Insert/Update/Delete]
    Stmt text          : [update EMP set BONUS=700 where EMPNO=000010]
    
    Past Activities of Participant No 1
    -------------------------------------
    Past Activities wrapped: no
    
    Activity ID        : 1
    Uow ID             : 1
    Package Name       : SQLC2H22
    Package Schema     : NULLID
    Package Version    :
    Package Token      : AAAAAFDb
    Package Sectno     : 203
    Reopt value        : none
    Incremental Bind   : no
    Eff isolation      : CS
    Eff degree         : 0
    Eff locktimeout    : -1
    Stmt first use     : 2012-04-18-17.27.20.604868
    Stmt last use      : 2012-04-18-17.27.20.604868
    Stmt unicode       : no
    Stmt query ID      : 0
    Stmt nesting level : 0
    Stmt invocation ID : 0
    Stmt source ID     : 0
    Stmt pkgcache ID   : 4335140864
    Stmt type          : [Dynamic]
    Stmt operation     : [DML, Insert/Update/Delete]
    Stmt text          : [update ORG set MANAGER=10 where DEPTNUMB=15]

    以上のことから、互いのアプリケーションがそれぞれ異なる順番で 2 つの表に更新を行ったため、以下のようなデッドロックが発生していたことがわかります。
    表名
    Participant No 1
    Participant No 2
    ORG
    X Lock 取得
    U Lock 待ち
    EMPLOYEE
    U Lock 待ち
    X Lock 取得
関連情報
EVMON_FORMAT_UE_TO_XML 表関数 - 不定形式イベントを XML に変換する
イベント・モニター・データ読み取り用の db2evmonfmt ツール

[Db2] パスポート・アドバンテージによく寄せられる質問
[Db2] ロック・イベント・モニターの設定方法


お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmIAAU","label":"Monitors-\u003EEvent Monitor"},{"code":"a8m500000008PmMAAU","label":"Performance-\u003ELocks"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
02 November 2023

UID

swg21599269