IBM Support

[Db2] ロック・イベント・モニターで取得した情報のフォーマット方法

Question & Answer


Question

バージョン 9.7 以降のロック・イベント・モニターで取得した情報のフォーマットの方法について教えてください。

Answer

※ ロック・イベント・モニターの設定方法は [Db2] ロック・イベント・モニターの設定方法を参照してください。

ロック・イベント・モニターで取得したデータは、バイナリー形式で "未フォーマット・イベント表" に格納されるため、以下のいずれかの方法でフォーマットする必要があります。
  • EVMON_FORMAT_UE_TO_XML プロシージャーを使用する
    未フォーマット・イベント表から XML 文書にデータを抽出します。

    注意:
    部分的な 表(不完全な) イベントが未フォーマット(UE) に存在する場合、EVMON_FORMAT_UE_TO_XML を実行すると、メッセージ (SQL443N) が戻されます。不完全なイベントは、イベント・レコード全体を UE 表に挿入できるようになる前にエージェントが処理を完了すると、発生することがあります。
    特にパーティション・データベース環境でロック・イベントが発生した場合に、この状況が発生する可能性があります。例えば、LOCKWAIT しきい値を超えたとき、ロックの保有者に関する詳細が UE 表に書き込まれます。しかし、同じオブジェクトに対するロックを待機しているエージェントに関する詳細は、ロックがタイムアウトになるか、またはウェイターがロックを獲得するまで取り込まれません。ロックを待機しているエージェントがその情報を書き込む前に EVMON_FORMAT_UE_TO_XML が実行された場合、ロックに関する情報の一部しか UE 表に存在しない可能性があります。
    LOG_PARTIAL_EVENTS オプションを指定すると、UE 表の中の不完全なイベントは別個の XML 文書に書き込まれます。また、不完全なイベントが発生したことを示すメッセージが db2diag.log に書き込まれます。メッセージには、不完全なイベントの詳細を含む XML 文書のファイル名が明記されます。生成される XML 文書は、db2evmonfmt ツールを使用してフォーマットできます。
  • db2evmonfmt を使用する
    db2evmonfmt で、テキスト・レポートまたはフォーマット済み XML 文書のどちらの形式で出力するかを指定してフォーマットします。なお、db2evmonfmt は内部的に EVMON_FORMAT_UE_TO_XML を呼び出しています。

    注意:
    db2evmonfmt ツールは、Java ソース・コードとして提供されます。使用する前に <install_path>/samples/java/jdbc/db2evmonfmt.java に記述されている手順に従って、事前にツールをセットアップおよびコンパイルする必要があります。なお samples はアプリケーション開発ツールの一部です。
    [Db2] アプリケーション開発ツールのインストール方法

    実行例:
    実行ユーザーはインスタンス・オーナーで実行してください。Windows 環境では「DB2 コマンド・ウィンドウ - 管理者」から実行してください。手順 1 から 4 は db2evmonfmt をコンパイルするため一度だけ実施します。
    1. ソース・ファイルを作業ディレクトリーにコピーします。
      $ mkdir $HOME/work
      $ cp $HOME/sqllib/samples/java/jdbc/db2evmonfmt.java $HOME/work
      $ cp $HOME/sqllib/samples/java/jdbc/*.xsl $HOME/work
    2. PATH 環境変数を変更します。永続化が必要な場合は .profile などに設定します。
      • Linux/UNIX 環境
        $ export PATH=$HOME/sqllib/java/jdk64/bin:$HOME/sqllib/lib:$PATH
      • Windows 環境
        C:\>set PATH=%db2path%\java\jdk\bin;%path%
    3. LD_LIBRARY_PATH を変更します。永続化が必要な場合は .profile などに設定します。
      (Windows 版では設定は不要です。)
      $ export LD_LIBRARY_PATH=$HOME/sqllib/lib:$LD_LIBRARY_PATH
    4. db2evmonfmt.java をコンパイルします。
      $ cd $HOME/work
      $ javac db2evmonfmt.java
    5. db2evmonfmt を実行します。 例: SAMPLE データベースの LOCK 表から、直近 24 時間以内に発生したロック・タイムアウトのデータをフォーマットします。
      $ java db2evmonfmt -d sample -ue LOCK -ftext -hours 24 -type locktimeout
    ※ CLP (コマンド行プロセッサー) を起動した場合、どのプラットフォームでも classpath は設定されているため、classpath に対する追加の設定は不要です。
運用上の考慮点
db2evmonfmt を実行しただけでは、不完全なイベントはフォーマットされません。
未フォーマット表に不完全なイベントが存在する場合、以下の手順で不完全なイベントを個別にフォーマットできます。
  1. 1. 未フォーマット表 (LOCK) から不完全なイベントを XML ファイルに出力します。
    $ db2 "SELECT * FROM TABLE (EVMON_FORMAT_UE_TO_XML('LOG_PARTIAL_EVENTS',FOR EACH ROW OF ( SELECT * FROM LOCK ORDER BY EVENT_ID, EVENT_TIMESTAMP, EVENT_TYPE, MEMBER ))) AS evmon"
    注:不完全なイベントが存在すると、この SQL は SQL0443N を返します。
  2. db2diag.log から出力された XML ファイルの場所を確認します。
    $ db2diag -g funcname:=LogPartialEvents
    
    2017-08-23-14.14.23.458973+540 E9879A668          LEVEL: Warning
    PID     : 76979808             TID : 8972         PROC : db2sysc
    INSTANCE: db2inst1             NODE : 000         DB   : SAMPLE
    EDUID   : 8972                 EDUNAME: db2agent (SAMPLE)
    FUNCTION: DB2 UDB, database application extension for system monitor,
    monLockEventFormatter::LogPartialEvents, probe:768
    MESSAGE : Partial (incomplete) event with XMLID
              'db2LockEvent_1_LOCKTIMEOUT_2017-08-22-15.50.49.220847' has been
              written to file.
    DATA #1 : String, 95 bytes
    /home/db2inst1/sqllib/db2dump/evmon/db2LockEvent_1_LOCKTIMEOUT_2017-08-22-15.50.49.220847.xml
  3. DATA #1 に記載されたファイルを、db2evmonfmt でフォーマットします。
    $ java db2evmonfmt -f /home/db2inst1/sqllib/db2dump/evmon/db2LockEvent_1_LOCKTIMEOUT_2017-08-22-15.50.49.220847.xml -ftext

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

EVMON_FORMAT_UE_TO_XML 表関数 - 不定形式イベントを XML に変換する
イベント・モニター・データ読み取り用の db2evmonfmt ツール
 
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと 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:
25 August 2023

UID

swg21592437