ここでは、取得したログデータの解析方法について説明します。
エクスポートした出力ファイルは、外部ツールなどを利用してソートすることで、ユーザログを時系列に分析することができます。また、複数の出力ファイルをマージして分析することで、複数のユーザログを統合的に分析することができます。
詳細は、“6.3.3 エクスポートしたユーザログの参照・加工”、“6.3.5 エクスポートしたユーザログの形式と運用方法”、および“6.3.7 順番性の保証”を参照してください。
ユーザログを、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’) |
CONTEXT_IDの値は、事前に確認していることを前提としています。
この例は、SQL文をrdbexecsqlコマンド(Symfoware Serverの場合)で実行するときのイメージを表しています。
エクスポートした出力ファイルを直接分析する場合は、以下の方法を使用してください。
awkなどのコマンドを利用するか、分析用のプログラムを作成して分析してください。
外部ツールを利用するか、分析用のプログラムを作成して分析してください。
エクスポートした出力ファイルを直接分析する場合は、awkなどのコマンドを利用するか、分析用のプログラムを作成して分析してください。
トランザクション単位の詳細な分析例は、“6.3.8.3 トランザクション単位での分析(TRANSACTION_ID)”を参照してください。
この分析を行う前に、必要に応じて出力ファイルのソートまたはマージを実施してください。詳細は“6.3.3 エクスポートしたユーザログの参照・加工”、“6.3.5 エクスポートしたユーザログの形式と運用方法”、および“6.3.7 順番性の保証”を参照してください。
ユーザログを、TRANSACTION_IDの値によって絞り込むことで、特定のトランザクションに関して分析を行うことができます。
注意
分析を行う前に、必要に応じて出力ファイルをソートまたはマージしてください。
以下に、分析テーブル(SI.分析表)で実施する例を示します。
例
TRANSACTION_IDの値を基に該当するトランザクションの結果を取り出し、正常・異常処理ごとにユーザログを管理する場合
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)”の方法などで、事前に確認していることを前提としています。
LOG_TYPEの値を基に、トランザクションの結果を判断します。
COMMITしたトランザクションを示しており、同じTRANSACTION_IDのユーザログレコードを成功したトランザクションと判断します。
ROLLBACKしたトランザクションを示しており、同じTRANSACTION_IDのユーザログレコードを失敗したトランザクションと判断します。
プリペア状態のトランザクションを示しており、トランザクションの結果を取得するためには、以降のユーザログ(次の出力ファイル)を分析する必要があります。なお、以降のユーザログで、LOG_TYPE=CまたはAを見つけた場合には、CまたはAの場合の処理を実施します。
Symfoware/RDBが再起動したことを示しています。このLOG_TYPEを見つけた場合の詳細は、“6.3.8.4 分析時の注意事項”を参照してください。
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.3 トランザクション単位での分析(TRANSACTION_ID)”で説明したように、トランザクションの結果を分析する場合には、後続のユーザログを分析する必要がある場合があります。この場合は、LOG_TYPE=Gのログが出力されるまでを上限として、業務的な処理時間などを目安に必要な範囲まで分析してください。
なお、LOG_TYPE=Pの場合は、Symfoware/RDBの起動・停止を跨いでトランザクションが解決する場合があるため、LOG_TYPE=Gを超えて分析する必要があります。
例
トランザクションの結果を後続のユーザログを含めて分析する場合
LOG_TYPE=Gが出力されても、該当トランザクションの結果がわからない場合、そのトランザクションはROLLBACKされたものとして扱ってください。