Question & Answer
Question
バージョン 9.7 以降のロック・イベント・モニターで取得した、ロック待機イベント (LOCKWAIT) の情報の見方について教えてください。
Answer
※ ロック・イベント・モニターの設定方法は [Db2] ロック・イベント・モニターの設定方法 を参照してください。
関連情報
EVMON_FORMAT_UE_TO_XML 表関数 - 不定形式イベントを XML に変換する
イベント・モニター・データ読み取り用の db2evmonfmt ツール
[Db2] パスポート・アドバンテージによく寄せられる質問
[Db2] ロック・イベント・モニターの設定方法
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
- 未フォーマット・イベント表の情報取得
ロック・イベント・モニターで取得した情報のフォーマットの方法は [Db2] ロック・イベント・モニターで取得した情報のフォーマット方法 を参照してください。db2evmonfmt 使用してテキスト・レポートを出力します。実行例:
指定したイベント ID 1 のフォーマット済みテキスト出力を、データベース SAMPLE にある未フォーマット・イベント表 lockevmon から取得する場合には、以下のコマンドを発行します。$ java db2evmonfmt -d sample -ue lockevmon -ftext -id 1
- 取得した情報の見方
出力されたレポートから以下のことが分かります。
2012-05-28-17.09.46.368098 にロック待機が発生しています。------------------------------------------------------- Event ID : 1 Event Type : [LOCKWAIT] Event Timestamp : [2012-05-28-17.09.46.368098] Partition of detection : 0 -------------------------------------------------------
ロック待機は、V97FP5.ORG 表への行ロックの競合で発生しています。
行には既に X ロックが取得されていましたが、X ロックとは互換性のない NS ロックが要求されたため、ロックを要求したアプリケーションはロック待ちとなりました。Participant No 1 requesting lock ---------------------------------- Lock Name : 0x0002000E000000000000000452 Lock wait start time : 2012-05-28-17.09.36.334584 Lock wait end time : 2012-05-28-17.11.40.720501 Lock Type : [ROW] Lock Specifics : ROWID=4,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 0236 0221 Application ID [192.168.11.3.40741.1205280807] [*LOCAL.v97fp5.120528080638] Application Name [db2jcc_application] [db2bp] Authentication ID V97FP5 V97FP5 Requesting AgentID 10910 11651 Coordinating AgentID 10910 11651 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
ロックを要求していたアプリケーション (Participant No 1) では、"select * from ORG" のステートメントが実行されていました。
ロックを保持しているアプリケーション (Participant No 2) は SQL などを実行せず待機中ですが、トランザクションの中では "update ORG set MANAGER=21 where DEPTNUMB=10" がコミットされておらず、ORG 表の行に 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 : -1 Stmt first use : 2012-05-28-17.09.36.334502 Stmt last use : 2012-05-28-17.09.36.334502 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 : 5 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-05-28-17.09.14.010775 Stmt last use : 2012-05-28-17.09.14.010775 Stmt unicode : no Stmt query ID : 0 Stmt nesting level : 0 Stmt invocation ID : 0 Stmt source ID : 0 Stmt pkgcache ID : 4305584128 Stmt type : [Dynamic] Stmt operation : [DML, Insert/Update/Delete] Stmt text : [update ORG set MANAGER=21 where DEPTNUMB=10]
- 管理通知ログおよび db2diag.log
ロック・イベント通知メッセージ構成パラメーター (MON_LCK_MSG_LVL) の通知設定のレベル を変更することで、ロック・エスカレーション、デッドロック、およびロック・タイムアウトのイベントが発生した際、管理通知ログへのメッセージのロギングを制御できます。ロック待機イベントが発生した場合は記録されません。
運用上の考慮点
- 管理通知ログで"ロック待機"が"デッドロック"イベントとして記録されてしまう障害 (APAR IC81498) が報告されています。V9.7 FP6 で、ロック待機のイベントIDの情報は記録されないように修正されています。
IC81498: LOCKWAIT EVENT CAN INCORRECTLY GET RECORDED AS A DEADLOCK EVENT IN NOTIFY LOG.
関連情報
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"}]
Was this topic helpful?
Document Information
Modified date:
02 November 2023
UID
swg21599265