4.2.1 トレースファイル

トレースファイルは,DocumentBrokerサーバおよびクライアントのプログラムの処理内容の履歴(トレース)を記録したファイルです。EDMRptTraceコマンドは,トレースファイルに記録された内容を入力として,オプションで指定された処理を実行します。なお,トレース出力機能の詳細については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。

トレースファイルは,EDMRptTraceコマンドの引数で指定できます。指定を省略する場合は,EDMRptTraceコマンドのトレースファイル格納ディレクトリにあるファイルがコマンドの対象になります。

EDMRptTraceコマンドは,DocumentBrokerがトレースファイルを生成するディレクトリにあるファイルを対象にして実行できません。このため,EDMRptTraceコマンドを実行する前に,DocumentBrokerが生成したトレースファイルを,EDMRptTraceコマンドのトレースファイル格納ディレクトリにコピーして,コマンド引数でのトレースファイルの指定を省略することをお勧めします。

<この項の構成>
(1) ファイルのコピー
(2) 出力形式
(3) トレースファイルの出力例

(1) ファイルのコピー

トレースファイルのコピー手順は,ご使用のOSごとに異なります。

(a) UNIXの場合
サーバトレース
DocumentBrokerは「DocumentBroker実行環境ディレクトリ/spool/server」に「EDMRasTrace"PID"_"NO".log」という名称でサーバトレースを生成します。ファイル名の"PID"はプロセスID,"NO"は1~16の通し番号です。ただし,環境変数「_HIEDMS_TRACE_DIR」が設定されている場合は,「_HIEDMS_TRACE_DIR」に設定されたディレクトリに生成します。
このサーバトレースを,EDMRptTraceコマンドのサーバトレース格納ディレクトリ「DocumentBroker実行環境ディレクトリ/aru/input/spool/server」にコピーしてください。
cpコマンドを使用したコピー手順の例を次に示します。なお,$DOCBROKERDIRは,DocumentBroker実行環境ディレクトリです。

cp $DOCBROKERDIR/spool/server/* /$DOCBROKERDIR/aru/input/spool/server

クライアントトレース
DocumentBrokerは「DocumentBroker実行環境ディレクトリ/spool/client」に「EDMRasTraceCL"PID"_"NO".log」という名称でクライアントトレースを生成します。ファイル名の"PID"はプロセスID,"NO"は1~16の通し番号です。ただし,環境変数「_HIEDMS_TRACE_DIR」が設定されている場合は,「_HIEDMS_TRACE_DIR」に設定されたディレクトリに生成します。
このクライアントトレースを,EDMRptTraceコマンドのクライアントトレース格納ディレクトリ「DocumentBroker実行環境ディレクトリ/aru/input/spool/client」にコピーしてください。
cpコマンドを使用したコピー手順の例を次に示します。なお,$DOCBROKERDIRは,DocumentBroker実行環境ディレクトリです。

cp $DOCBROKERDIR/spool/client/* /$DOCBROKERDIR/aru/input/spool/client

(b) Windowsの場合
サーバトレース
DocumentBrokerは「DocumentBrokerインストールディレクトリ¥Server¥spool¥server」に「EDMRasTrace"PID"_"NO".log」という名称でサーバトレースを生成します。ファイル名の"PID"はプロセスID,"NO"は1~16の通し番号です。ただし,環境変数「_HIEDMS_TRACE_DIR」が設定されている場合は,「_HIEDMS_TRACE_DIR」に設定されたディレクトリに生成します。
このサーバトレースを,EDMRptTraceコマンドのサーバトレース格納ディレクトリ「DocumentBrokerインストールディレクトリ¥Server¥aru¥input¥spool¥server」にコピーしてください。
クライアントトレース
DocumentBrokerは「DocumentBrokerインストールディレクトリ¥Server¥spool¥client」に「EDMRasTraceCL"PID"_"NO".log」という名称でクライアントトレースを生成します。ファイル名の"PID"はプロセスID,"NO"は1~16の通し番号です。ただし,環境変数「_HIEDMS_TRACE_DIR」が設定されている場合は,「_HIEDMS_TRACE_DIR」に設定されたディレクトリに生成します。
このクライアントトレースを,EDMRptTraceコマンドのクライアントトレース格納ディレクトリ「DocumentBrokerインストールディレクトリ¥Server¥aru¥input¥spool¥client」にコピーしてください。

(2) 出力形式

トレースログの出力形式およびトレースログの項目について説明します。

(a) トレースログの出力形式

トレースログの出力形式について説明します。

トレースファイル中のトレースログは,サーバまたはクライアントのプログラムの処理内容を示す複数の項目で構成されます。トレースログの出力形式を次に示します。

nnnn yyyy/mm/dd hh:mm:ss.sss system_name pid tid message-id message

なお,EDMRptTraceコマンドは,nnnn yyyy/mm/dd hh:mm:ss.sssで始まらないエントリを無視します。

(b) トレースログの項目

トレースログの各項目について説明します。

nnnn
行番号が出力されます。
yyyy/mm/dd
サーバまたはクライアントのプログラムが処理を実行した日付(年/月/日)が出力されます。
hh:mm:ss.sss
サーバまたはクライアントのプログラムが処理を実行した時刻(時:分:秒.ミリ秒)が出力されます。
system_name
システム名が出力されます。システム名は「DocumentBroker」固定です。
pid
プロセスIDが出力されます。なお,サーバトレースかクライアントトレースかによって,次に示す違いがあります。
サーバトレースの場合
サーバプロセスのプロセスID
クライアントトレースの場合
ユーザプログラムのプロセスID
tid
スレッドIDが出力されます。なお,サーバトレースかクライアントトレースかによって,次に示す違いがあります。
サーバトレースの場合
サーバプロセスのスレッドID
クライアントトレースの場合
ユーザプログラムのスレッドID
message-id
メッセージIDが出力されます。ほとんどの場合,11個の半角空白が出力されます。
message
サーバまたはクライアントのプログラムの処理内容として,実行された処理の種別と処理の内容が出力されます。処理の種別と処理の内容の間は半角空白で区切られます。EDMRptTraceコマンドは,処理の種別を基にトレースログを分類して集計します。
messageに出力される処理の種別と処理の内容を次の表に示します。

表4-4 messageに出力される処理の種別と処理の内容

処理の種別処理の内容
enter実行された処理の内容が次に示す形式で出力されます。

"クラス名::メソッド名(または関数名)"  "ユーザプログラム情報"

ユーザプログラム情報は,次に示す形式でサーバトレースだけに出力される情報です。

"ユーザプログラムのホスト名"  "ユーザプログラムのプログラム名"  "ユーザプログラムのプロセスID"  "ユーザプログラムのセッションID"  "プログラム識別子"

msgメッセージ(SQL文などの保守情報)が出力されます。
注※
処理の種別には,exitやargなど,表4-4で説明していない種別もありますが,EDMRptTraceコマンドの集計対象ではないので説明を省略しています。なお,個々のトレースログを区別する場合,処理の種別を使用して「enterエントリ」,「msgエントリ」と表記することがあります。
注意事項
  • プログラム識別子がないenterエントリもあります。
  • サーバトレースのenterエントリのうち,ユーザプログラム情報が出力されないenterエントリは,その前に同じスレッドIDのenterエントリがあるかないかによって,次に示すように処理されます。
同じスレッドIDのenterエントリが前にある場合
前にある同じスレッドIDのenterエントリのユーザプログラム情報(ユーザプログラムのプログラム名,ユーザプログラムのプロセスID)を持つものとして処理されます。
同じスレッドIDのenterエントリが前にない場合
集計されません。
なお,ユーザプログラム情報がないenterエントリもトレース表には出力されます。トレース表については,「6.3.2(1) 集計機能の処理方式(EDMRptTraceコマンドの集計方法)」を参照してください。

(3) トレースファイルの出力例

トレースファイルの出力例を次に示します。

サーバトレースの出力例

**** Microsoft WindowsNT5.2(Build:3790) Service Pack 2            TEST-SERV        TZ=(local)-9:00                  2009/02/08 13:43:42.562
    yyyy/mm/dd hh:mm:ss.sss                      pid      tid      message-id            message(LANG=0x0411)
2063 2009/02/08 13:43:42.562     DocumentBroker   00005282​ 0000179​B                       enter CdbrDMA::GetPropertyValuesAndLock()  sis01  WETG2J0  12491  000052823906310000040​a0d(userdoc)  EDMS000021122​  ()
2064 2009/02/08 13:43:42.562     DocumentBroker   00005282​ 0000179​B                       msg SELECT P9FFOR71O0OFC9972P521A2HD56,P9FFOR71O00GC99727V7140CF56,P9FFOR71O0OFC9972VM01ESQF56,P9FFOR71O00GC9972E061CD0LM5 FROM T9FFOR71O0OFC9972O521IUPU96 WHERE PI29HEI0K08PBO872DLUUMRGB4='00000000​ABC42239'
2065 2009/02/08 13:43:42.562     DocumentBroker   00005282​ 0000179​B                       exit CdbrDMA::GetPropertyValuesAndLock()  sis01  WETG2J0  12491  000052823906310000040​a0d(userdoc)  EDMS000021122​  ()

下線で示したトレースログでは,ユーザプログラム情報は次のようになります。
  • ユーザプログラムのホスト名:sis01
  • ユーザプログラムのプログラム名:WETG2J0
  • ユーザプログラムのプロセスID:12491
  • ユーザプログラムのセッションID:000052823906310000040a0d(userdoc)
  • プログラム識別子:EDMS000021122
クライアントトレースの出力例

**** Microsoft WindowsNT5.2(Build:3790) Service Pack 2            TEST-CL          TZ=(local)-9:00                  2009/02/08 13:43:42.562
    yyyy/mm/dd hh:mm:ss.sss                      pid      tid      message-id            message(LANG=0x0411)
0000 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       enter CedmRasMsg::cs_setMsgFormatter()
0001 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       exit CedmRasMsg::cs_setMsgFormatter()
0002 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       enter CedmCmdClassDescriptionForMulti::Initialize()
0003 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       arg EDMCLASSDEFPATH "NULL"
0004 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       exit CedmCmdClassDescriptionForMulti::Initialize()
0005 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       enter dbrgetprop::main()
0006 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       arg argv[ 0 ] "dbrgetprop"
0007 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       arg argv[ 1 ] "D:¥test¥objtool¥file¥tmp¥ipoiid"
0008 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       arg argv[ 2 ] "D:¥test¥objtool¥file¥ipgetprop"
0009 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       enter CedmOotTools::initialize()
0010 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       arg DBRTOOLSDIR "D:¥test¥objtool"
0011 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       enter CedmCmdClassDescription::InitializeForCache()
0012 2009/02/08 13:43:42.562     DocumentBroker   00006AF8 00000001​                       arg pClassDescriptionPath "D:¥test¥objtool¥etc¥673d2be0-d1fd-11d0-ab59-08002be29e1d.