IBM Support

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

Question & Answer


Question

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

Answer

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

    2012-06-06-23.07.08.993785 にロック・タイムアウトが発生しています。
    -------------------------------------------------------
    Event ID               : 1
    Event Type             : [LOCKTIMEOUT]
    Event Timestamp        : [2012-06-06-23.07.08.993785]
    Partition of detection : 0
    -------------------------------------------------------

    ロック・タイムアウトは、V97FP5.ORG 表への行ロックの競合で発生しています。
    X ロックが取得されていましたが、X ロックとは互換性のない NS ロックが要求されたため、要求したアプリケーションはロック待ちとなり、最終的にタイムアウトとなりました。
    Participant No 1 requesting lock
    ----------------------------------
    Lock Name            : 0x0002000E000000000000000A52
    Lock wait start time : 2012-06-06-23.07.08.993767
    Lock wait end time   : 2012-06-06-23.07.08.993785
    Lock Type            : [ROW]
    Lock Specifics       : ROWID=10,DATA_PARTITION_ID=0,PAGEID=0
    Lock Attributes      : 00000000
    Lock mode requested  : [Share (CS/RS)]
    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 2 のアプリケーション名は db2bp で、ローカル接続のアプリケーションです。db2bp は、コマンド行プロセッサー(CLP) におけるバックエンド・プロセスです。アプリケーションの状態は UOW Waiting のため、ロックを保持したままコミットが発行されず、待機している状況です。

    ロックを要求していた Participant No 1 のアプリケーション名は db2jcc_application で、Java アプリケーションです。アプリケーション ID から接続元アプリケーションの IP アドレスが 192.168.11.3 であることを確認できます。ロック・イベント・モニターの出力では、ロックの要求側はロック待ちになる前のアプリケーション・ステータスが報告されるため、 Participant No 1 のアプリケーションの状態は、UOW Executing として報告されます。
    Attributes            [Requester]                     [Owner]
    --------------------- ------------------------------  ------------------------------
    Participant No        1                               2                         
    Application Handle    0115                            093                      
    Application ID        [192.168.11.3.40239.1206061407] [*LOCAL.v97fp5.120606140356]
    Application Name      [db2jcc_application]            [db2bp]
    Authentication ID     V97FP5                          V97FP5                    
    Requesting AgentID    10939                           11394                    
    Coordinating AgentID  10939                           11394                    
    Agent Status          UOW Executing                   UOW Waiting               
    Application Action    No action                       No action                
    Lock timeout value    0                               0                        
    Lock wait value       10000                           0                        
    Workload ID           1                               1                        
    Workload Name         SYSDEFAULTUSERWORKLOAD          SYSDEFAULTUSERWORKLOAD    
    Service subclass ID   13                              13                        
    Service subclass      SYSDEFAULTSUBCLASS              SYSDEFAULTSUBCLASS        
    Current Request       Open Cursor                     Execute Immediate        
    TEntry state          1                               2                        
    TEntry flags1         00000000                        00000000                  
    TEntry flags2         00000200                        00000200                  
    Lock escalation       no                              no                        
    Client userid                                                                  
    Client wrkstnname     lockevent.xxx.com                          
    Client applname                                                                
    Client acctng                                                                   
    

    ロックを要求しているアプリケーションでは、"select * from ORG" のステートメントが実行されていました。
    ロックを保持しているアプリケーションは SQL などを実行せず待機中ですが、トランザクションの中では "update ORG set MANAGER=80 where DEPTNUMB=66" がコミットされておらず、行に X ロックが取得されています。
    Current Activities of Participant No 1
    ----------------------------------------
    Activity ID        : 1
    Uow ID             : 1
    Package Name       : SYSSH200
    Package Schema     : NULLID
    Package Version    :
    Package Token      : SYSLVL01
    Package Sectno     : 1
    Reopt value        : none
    Incremental Bind   : no
    Eff isolation      : CS
    Eff degree         : 0
    Eff locktimeout    : 0
    Stmt first use     : 2012-06-06-23.07.08.993661
    Stmt last use      : 2012-06-06-23.07.08.993661
    Stmt unicode       : no
    Stmt query ID      : 0
    Stmt nesting level : 0
    Stmt invocation ID : 0
    Stmt source ID     : 0
    Stmt pkgcache ID   : 4322951168
    Stmt type          : [Dynamic]
    Stmt operation     : [DML, Select (blockable)]
    Stmt text          : [select * from ORG]
    
    Past Activities of Participant No 1
    -------------------------------------
    Activities not available
    Current Activities of Participant No 2
    ----------------------------------------
    Activities not available
    
    Past Activities of Participant No 2
    -------------------------------------
    Past Activities wrapped: no
    
    Activity ID        : 1
    Uow ID             : 3
    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    : 0
    Stmt first use     : 2012-06-06-23.07.07.685762
    Stmt last use      : 2012-06-06-23.07.07.685762
    Stmt unicode       : no
    Stmt query ID      : 0
    Stmt nesting level : 0
    Stmt invocation ID : 0
    Stmt source ID     : 0
    Stmt pkgcache ID   : 4328259584
    Stmt type          : [Dynamic]
    Stmt operation     : [DML, Insert/Update/Delete]
    Stmt text          : [update ORG set MANAGER=80 where DEPTNUMB=66]
    以上のことから、ローカル接続のアプリケーションが、"update ORG set MANAGER=80 where DEPTNUMB=66" ステートメントでロックを取得した後にコミットをせずに待機しているため、Java アプリケーションがロック・タイムアウトで失敗していることがわかります。
関連情報
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

swg21599266