IBM Support

[Db2] db2pd -wlocks を使ったロック待機の特定方法

Question & Answer


Question

ロック待機が発生しているとき、ロックを保持しているアプリケーションを特定する方法を教えてください。

Answer

db2pd コマンドを -wlocks オプション指定で実行してください。待機しているロック要求と、待機の原因となっているロックが出力されます。

使用方法:
db2pd -db <データベース名> -wlocks
注:
  • 管理者権限のあるユーザーで実行してください。
  • -wlocks オプションは、-wlock, -wloc, -wlo と省略できます。
出力例:
$ db2pd -db sample -wlocks

Database Member 0 -- Database SAMPLE -- Active -- Up 16 days 18:15:44 -- Date 2019-03-09-11.23.47.014000

Locks being waited on :
AppHandl [nod-index] TranHdl Lockname                   Type     Mode Conv Sts CoorEDU  AppName  AuthID   AppID
6398     [000-06398] 13      03001D00060000000000000052 RowLock  ..X       G   3540     db2bp.ex AA218255 *LOCAL.DB2.190309021838
6391     [000-06391] 14      03001D00060000000000000052 RowLock  .NS       W   7064     db2bp.ex AA218255 *LOCAL.DB2.190309021648
Sts 列の値が "W" は待機中を、"G" はロック確保中を表します。
この例の場合、アプリケーション・ハンドル 6398 / トランザクション・ハンドル 13 のトランザクションが保持しているロックのために、アプリケーション・ハンドル 6391 / トランザクション・ハンドル 14 のトランザクションがロック待機となっていることがわかります。


ロックを保持しているトランザクションをコミットまたはロールバックしてロックを解放するか、あるいは強制終了してください。
強制終了する場合は、アプリケーション・ハンドルを指定して FORCE APPLICATION コマンドを実行します。

使用方法:
db2 "FORCE APPLICATION ( <アプリケーション・ハンドル ID> )"
実行例:
$ db2 "FORCE APPLICATION (6398)"
強制終了されたトランザクションによって更新されていた内容はロールバックされます。


関連情報
db2pd - DB2 データベースのモニターおよびトラブルシューティング・コマンド
db2pd コマンドを使用したモニターおよびトラブルシューティング
FORCE APPLICATION コマンド

パスポート・アドバンテージによく寄せられる質問

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと 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":"a8m500000008PmMAAU","label":"Performance-\u003ELocks"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
14 August 2023

UID

swg21698873