イベント・モニター自己記述型データ・ストリーム

パイプまたはファイルに書き込むイベント・モニターは、論理データ・グループのバイナリー・ストリームを生成します。 その論理データ・グループは、パイプ・イベント・モニターでもファイル・イベント・モニターでも同じです。 データ・ストリームのフォーマットは、db2evmon コマンドを使用するか、 またはクライアント・アプリケーションを開発することによって行えます。 このデータ・ストリームは、自己記述型フォーマットで表示されます。
図 1 では、データ・ストリームの構造を示し、 表 1 では、 戻される論理データ・グループおよびモニター・エレメントのいくつかの例を示します。
注: これらの例や表では、ID として記述名を使用しています。 これらの名前は、 実際のデータ・ストリームでは SQLM_ELM_ という接頭部が付きます。 例えば db_event は、イベント・モニター出力では SQLM_ELM_DB_EVENT と表示されます。 タイプは、実際のデータ・ストリームでは SQLM_TYPE_ という接頭部が付きます。 例えば、ヘッダーはデータ・ストリームで SQLM_TYPE_HEADER と表示されます。
図 1. パイプ・イベント・モニターまたはファイル・イベント・モニターのデータ・ストリーム
イベント・モニター自己記述型データ・ストリーム
  1. sqlm_event_log_data_stream_header の構造は、 データ・ストリーム内のほかのヘッダーとは異なります。 バージョン・フィールドにより、出力を自己記述型データ・ストリームとして処理できるかどうかが決まります。
    このヘッダーのサイズとタイプは、 バージョン 6 以前のイベント・モニター・ストリームと同じです。 これにより、アプリケーションは、 イベント・モニター出力が自己記述型か、バージョン 6 より前の静的形式かを判別できます。
    注: このモニター・エレメントは、データ・ストリームから sizeof(sqlm_event_log_data_stream) のバイトを読み取ることにより抽出されます。
  2. 各論理データ・グループは、サイズとエレメント名を示すヘッダーで始まります。 これは、 event_log_stream_header にはあてはまりません。 そのサイズ・エレメントには、逆方向互換性を保持するためのダミー値が含まれるからです。
  3. ヘッダーのサイズ・エレメントは、 論理データ・グループのデータ全体のサイズを示します。
  4. モニター・エレメント情報が、論理データ・グループ・ヘッダーに続きます。 これも自己記述型です。

表 1. イベント・データ・ストリームの例
論理データ・グループ データ・ストリーム 説明
event_log_stream_header ┬►sqlm_little_endian 使用されない (以前のリリースとの互換性のため)。
├►200 使用されない (以前のリリースとの互換性のため)。
└►sqlm_dbmon_version9 データを戻したデータベース・マネージャーのバージョン。イベント・モニターは自己記述型フォーマットでデータを書き込む。
log_header_event ┬►100 論理データ・グループのサイズ。
├►header 論理データ・グループが始まることを示す。
├►log_header 論理データ・グループの名前。
─►4 このモニター・エレメントに保管されるデータのサイズ
├►u32bit モニター・エレメント・タイプ - 32 ビット数値。
├►byte_order 収集されたモニター・エレメントの名前。
└►little_endian このエレメントに対して収集された値。
┬►2 このモニター・エレメントに保管されるデータのサイズ
  ├►u16bit モニター・エレメント・タイプ - 符号なし 16 ビット数値。
  ├►codepage_id 収集されたモニター・エレメントの名前。
  └►850 このエレメントに対して収集された値。
db_event ┬►100 論理データ・グループのサイズ。
├►header 論理データ・グループが始まることを示す。
├►db_event 論理データ・グループの名前。
─►4 このモニター・エレメントに保管されるデータのサイズ
  ├►u32bit モニター・エレメント・タイプ - 符号なし 32 ビット数値。
  ├►lock_waits 収集されたモニター・エレメントの名前。
  └►2 このエレメントに対して収集された値。

event_log_stream_header は、 データを戻したデータベース・マネージャーのバージョンを示します。 イベント・モニターは自己記述型フォーマットでデータを書き込みます。スナップショット・モニターと違って、 イベント・モニターにはトレースの合計サイズを戻す size エレメントがありません。 event_log_stream_header に示された数値は、 逆方向互換性のために示されたダミー値です。 イベント・トレースの合計サイズは、 event_log_stream_header が書き込まれるときには不明です。 通常は、ファイルまたはパイプの終わりに達するまで、 イベント・モニター・トレースを読み取ることになります。

ログ・ヘッダーではトレースの特性を記述します。 これには、トレースが収集されたサーバーのメモリー・モデル (例えばリトル・エンディアン)、 およびデータベースのコード・ページなどの情報が含まれています。 トレースを読み取るシステムのメモリー・モデルがサーバーとは異なる場合 (例えば、Windows 2000 システム上の UNIX サーバーからトレースを読み取る場合)、数値に関してバイトのスワッピングを行う必要があります。 データベースが、トレースを読み取るマシンとは異なる言語で構成されている場合、 コード・ページ変換を行う必要が生じることもあります。 トレースを読み取っているとき、 size エレメントを使用して、 トレース内の論理データ・グループを読み飛ばせます。