ページの先頭行へ戻る
Interstage Business Application Server 運用ガイド(高信頼性ログ編)
FUJITSU Software

6.3.8 取得したログデータの解析方法

ここでは、取得したログデータの解析方法について説明します。

6.3.8.1 基本的な分析

エクスポートした出力ファイルは、外部ツールなどを利用してソートすることで、ユーザログを時系列に分析することができます。また、複数の出力ファイルをマージして分析することで、複数のユーザログを統合的に分析することができます。

詳細は、“6.3.3 エクスポートしたユーザログの参照・加工”、“6.3.5 エクスポートしたユーザログの形式と運用方法”、および“6.3.7 順番性の保証”を参照してください。

6.3.8.2 業務処理単位の分析(CONTEXT_ID)

ユーザログを、CONTEXT_IDの値によって絞り込むことで、特定の業務処理に関する分析を行うことができます。
以下に、分析テーブル(SI.分析表)で実施する例を示します。

CONTEXT_IDの値を基に該当するトランザクションを調べ、同じCONTEXT_IDを持つトランザクション結果をすべて出力する場合

SELECT TRANSACTION_ID,LOG_TYPE FROM S1.分析表 WHERE CONTEXT_ID = ‘JOB-2004-12-25-0001’ AND LOG_TYPE IN (‘C’,’A’)

6.3.8.3 トランザクション単位での分析(TRANSACTION_ID)

ユーザログを、TRANSACTION_IDの値によって絞り込むことで、特定のトランザクションに関して分析を行うことができます。

注意

分析を行う前に、必要に応じて出力ファイルをソートまたはマージしてください。

以下に、分析テーブル(SI.分析表)で実施する例を示します。

TRANSACTION_IDの値を基に該当するトランザクションの結果を取り出し、正常・異常処理ごとにユーザログを管理する場合

  1. TRANSACTION_IDの値を基に、トランザクションの結果を出力します。

    SELECT TRANSACTION_ID,LOG_TYPE FROM S1.分析表 WHERE  TRANSACTION_ID = '11120057200000000564' AND LOG_TYPE NOT IN('U')

    補足:TRANSACTION_IDの値は、“6.3.8.2 業務処理単位の分析(CONTEXT_ID)”の方法などで、事前に確認していることを前提としています。

  2. LOG_TYPEの値を基に、トランザクションの結果を判断します。

    LOG_TYPE=Cの場合

    COMMITしたトランザクションを示しており、同じTRANSACTION_IDのユーザログレコードを成功したトランザクションと判断します。

    LOG_TYPE=Aの場合

    ROLLBACKしたトランザクションを示しており、同じTRANSACTION_IDのユーザログレコードを失敗したトランザクションと判断します。

    LOG_TYPE=Pの場合

    プリペア状態のトランザクションを示しており、トランザクションの結果を取得するためには、以降のユーザログ(次の出力ファイル)を分析する必要があります。なお、以降のユーザログで、LOG_TYPE=CまたはAを見つけた場合には、CまたはAの場合の処理を実施します。

    LOG_TYPE=Gの場合

    Symfoware/RDBが再起動したことを示しています。このLOG_TYPEを見つけた場合の詳細は、“6.3.8.4 分析時の注意事項”を参照してください。


  3. 2.で判断した結果に応じて、該当トランザクションに関するユーザログ本文をまとめて管理します。

    たとえば、2.で“成功したトランザクション”と判断した場合は、下記の処理結果を「正常処理結果.txt」などのファイルで管理します。

    SELECT LOG_BODY FROM S1.分析表 WHERE TRANSACTION_ID = ‘11120057200000000564’ AND LOG_TYPE = ‘U’

    補足:ユーザログ本文の列名はLOG_BODYと表記しています。

    • この例は、SQL文をrdbexecsqlコマンド(Symfoware Serverの場合)で実行するときのイメージを表しています。

    • エクスポートした出力ファイルを直接分析する場合は、以下の方法を使用してください。


      • awkなどのコマンドを利用するか、分析用のプログラムを作成して分析してください。


      • 外部ツールを利用するか、分析用のプログラムを作成して分析してください。

    • この分析を行う前に、必要に応じて出力ファイルをソートまたはマージしてください。

6.3.8.4 分析時の注意事項

6.3.8.3 トランザクション単位での分析(TRANSACTION_ID)”で説明したように、トランザクションの結果を分析する場合には、後続のユーザログを分析する必要がある場合があります。この場合は、LOG_TYPE=Gのログが出力されるまでを上限として、業務的な処理時間などを目安に必要な範囲まで分析してください。

なお、LOG_TYPE=Pの場合は、Symfoware/RDBの起動・停止を跨いでトランザクションが解決する場合があるため、LOG_TYPE=Gを超えて分析する必要があります。

トランザクションの結果を後続のユーザログを含めて分析する場合

LOG_TYPE=Gが出力されても、該当トランザクションの結果がわからない場合、そのトランザクションはROLLBACKされたものとして扱ってください。