6.2.2 EDMRptAclogコマンドの機能の処理方式

EDMRptAclogコマンドの次に示す機能の処理方式について説明します。

<この項の構成>
(1) 集計機能の処理方式(EDMRptAclogコマンドの集計方法)
(2) OIID変換機能,操作対象識別子変換機能の処理方式
(3) エントリ抽出機能の処理方式

(1) 集計機能の処理方式EDMRptAclogコマンドの集計方法

EDMRptAclogコマンドの集計機能では,まず,アクセスログファイル中のアクセスログを解析して,アクセスログエントリごとにアクセスログ表を作成します。その上で,動作環境定義ファイルの内容や,コマンドに指定するオプションに従って,アクセス種別(アクセスログの集計項目)で分類・集計して,結果を標準出力(stdout)またはファイルに出力します。

(a) アクセスログ表作成時の処理方式

アクセスログ表には,動作環境定義ファイルに指定されているOIIDまたは操作対象識別子(OIID変換,操作対象識別子変換の変換対象)を含むアクセスログエントリだけでなく,アクセス種別で分類できるすべてのアクセスログエントリが出力されます。例えば,次のようなアクセスログエントリも出力されます。

これらのアクセスログエントリには,メソッド名の後ろに付加情報が付いている場合があります。アクセスログ表には,アクセスログエントリに含まれる付加情報の個数分の行が出力されます。OIIDおよび操作対象識別子は付加情報の一種であり,例えば,OIIDが2個含まれているアクセスログエントリに対して,アクセスログ表は2行出力されます。

アクセスログ表の項目を次の表に示します。

表6-3 アクセスログ表の項目

項目名説明
日付アクセスした日付(年/月/日)。
時刻アクセスした時刻(時:分:秒.ミリ秒)。
ユーザ名アクセスしたユーザのユーザ名。
アクセス種別connect,create,delete,error,refer,searchまたはupdateのどれか。アクセス種別については,「表4-1 集計機能で分類されるアクセスの内容と集計項目(アクセス種別)の関係」を参照してください。
OIIDの末尾16バイトアクセス対象オブジェクトを示す16進数の数値。アクセス対象オブジェクトが登録された時に,文書空間内で割り当てられたオブジェクト番号です。
OIIDに対応するプロパティアクセス対象オブジェクトのプロパティの値/クラス名。
ただし,プロパティ拡張情報ファイルに変換対象のプロパティのクラス識別子が指定されていない場合は,アクセス対象オブジェクトを示す16進数の数値が出力されます。

なお,動作環境定義ファイルに指定されているOIIDまたは操作対象識別子を含むアクセスログエントリのアクセスログ表を作成する場合,そのOIIDまたは操作対象識別子は,OIID変換機能,操作対象識別子変換機能によって対応するプロパティの値に置き換えられます。それ以外の場合,アクセスログ表のOIIDの末尾16バイトおよびOIIDに対応するプロパティの値は空白になります。アクセスログ表の例を次の表に示します。

表6-4 アクセスログ表の例

日付時刻ユーザ名アクセス種別OIIDの末尾16バイトOIIDに対応するプロパティ
2000/06/1902:18:19.388ACUser6connect0000000000001216​設計書/usrClass
2000/06/1902:18:52.261ACUser6create0000000000001216​設計書/usrClass
2000/06/1902:19:16.420ACUser6refer0000000000001216​設計書/usrClass
2000/06/1902:19:16.420ACUser6refer0000000000001221​企画書/usrClass

アクセスログ表は,EDMRptAclogコマンド実行時に-vtオプションを指定することによって出力できます。

(b) アクセスログエントリ集計時の処理方式

アクセスログエントリを集計するときの集計対象は次の二つです。

ただし,-kオプションに集計キー定義ファイルを指定したときの集計対象は,集計キー定義ファイルで指定された項目によって異なります。集計キー定義ファイルで指定された項目別の集計対象を次の表に示します。

表6-5 集計キー定義ファイルで指定された項目別の集計対象

集計キー定義ファイルで指定された項目集計対象
OIIDおよび操作対象識別子を含まないアクセスログエントリOIID変換または操作対象識別子変換の変換対象を含むアクセスログエントリ
ユーザ
オブジェクト×
ユーザおよびオブジェクト×
(凡例)
○:集計する。
×:集計しない。
 

なお,OIID変換,操作対象識別子変換の変換対象を含むアクセスログエントリで,一つのアクセスログエントリにOIIDまたは操作対象識別子が二つ出現したとき,それぞれのOIIDまたは操作対象識別子の変換後の値によって集計のしかたが異なります。

(2) OIID変換機能,操作対象識別子変換機能の処理方式

EDMRptAclogコマンドのOIID変換機能,操作対象識別子変換機能では,プロパティ拡張情報ファイルを参照し,アクセスログ中のOIIDおよび操作対象識別子に置き換えるプロパティの値をデータベースから取得して変換します。

(a) OIID変換機能の処理の流れ

OIID変換機能の処理の流れを次の図に示します。

図6-1 OIID変換機能の処理の流れ

[図データ]

 

図6-1の1~4について説明します。

  1. アクセスログのOIIDから,クラス識別子およびOIID末尾16バイトを抽出する。
    アクセスログのOIIDから,クラス識別子(例:f5d8ae3a1-284c-11d2-9177-0000e210367)およびOIID末尾16バイト(例:0000000000001216)を抽出します。
  2. プロパティ拡張情報ファイルを検索して,手順1で抽出したクラス識別子が示すクラス名,およびOIID変換後の値となるプロパティのプロパティ名を取得する。
    プロパティ拡張情報ファイル(propex.ini)で,手順1で抽出したクラス識別子と一致するClassIDエントリを検索して,そのクラス識別子が示すクラス名(例:usrClass_Document),およびOIID変換後の値となるプロパティのプロパティ名(例:usrProp_Title,usrProp_Author)を取得します。
  3. データベースを検索して,OIID変換後の値となるプロパティの値を取得する。
    手順2で取得したクラス名のテーブルで,手順1で抽出したOIID末尾16バイトとdmaProp_OIIDカラムの値が一致するレコードを検索して,OIID変換後の値となるプロパティのプロパティ名のカラム(例:usrProp_Title,usrProp_Author)に格納されている値(例:機能仕様書.藤井/usrClass_Document)を取得します。
  4. アクセスログのOIIDを,プロパティの値に置き換える。
    アクセスログのOIIDを,手順3で取得したプロパティの値(例:機能仕様書.藤井/usrClass_Document)に置き換えます。
(b) 操作対象識別子変換機能の処理の流れ

操作対象識別子変換機能の処理の流れを次の図に示します。なお,次の図では,バージョン識別子に対して操作対象識別子変換を実行する場合の処理の流れを示しています。

図6-2 操作対象識別子変換機能の処理の流れ(バージョン識別子の場合)

[図データ]

 

図6-2の1~6について説明します。

  1. アクセスログから操作対象識別子の一部を抽出する。
    アクセスログから操作対象識別子の一部(例:000000000000080F)を抽出します。
  2. データベースを検索して,操作対象識別子の値をプロパティとして持つオブジェクトのOIIDを取得する。
    dmaClass_VerDescriptionテーブルで,手順1で抽出した操作対象識別子の一部とdmaProp_OIIDカラムの値が一致するレコードを検索して,操作対象識別子の値をプロパティとして持つオブジェクトのOIID(dmaProp_Versionカラムの値)を取得します。
  3. 手順2で取得したOIIDから,クラス識別子およびOIID末尾16バイトを抽出する。
    手順2で取得したOIIDから,クラス識別子(例:f5d8ae3a1-284c-11d2-9177-0000e210367)およびOIID末尾16バイト(例:0000000000000851)を抽出します。
  4. プロパティ拡張情報ファイルを検索して,手順3で抽出したクラス識別子が示すクラス名,および操作対象識別子変換後の値となるプロパティのプロパティ名を取得する。
    プロパティ拡張情報ファイル(propex.ini)で,手順3で抽出したクラス識別子と一致するClassIDエントリの値を検索して,そのクラス識別子が示すクラス名(例:usrClass_Document),および操作対象識別子変換後の値となるプロパティのプロパティ名(例:usrProp_Title,usrProp_Author)を取得します。
  5. データベースを検索して,操作対象識別子変換後の値となるプロパティの値を取得する。
    手順4で取得したクラス名のテーブルで,手順3で抽出したOIID末尾16バイトとdmaProp_OIIDカラムの値が一致するレコードを検索して,操作対象識別子変換後の値となるプロパティのプロパティ名のカラム(例:usrProp_Title,usrProp_Author)に格納されている値(例:設計仕様書.藤井/usrClass_Document)を取得します。
  6. アクセスログの操作対象識別子を,プロパティの値に置き換える。
    アクセスログの操作対象識別子を,手順5で取得したプロパティの値(例:設計仕様書.藤井/usrClass_Document)に置き換えます。
注※
データベースで検索するテーブル,および操作対象識別子の値をプロパティとして持つオブジェクトのOIIDが格納されているカラムは,操作対象識別子の種類によって異なります。操作対象識別子別のデータベースで検索するテーブル名およびカラム名を次の表に示します。

表6-6 操作対象識別子別のデータベースで検索するテーブル名およびカラム名

操作対象識別子名
(オブジェクト変換モード)
テーブル名カラム名
バージョン識別子(VD)dmaClass_VerDescriptiondmaProp_Version
リレーション識別子(RL)edmClass_RelationshipdmaProp_Head
リンク識別子(LD)dmaClass_DCRelationshipdmaProp_Head
リンク識別子(LR)dmaClass_RCRelationshipdmaProp_Head
リンク識別子(LV)edmClass_VTCRelationshipdmaProp_Head

OIID変換,操作対象識別子変換でエラーが発生した場合に考えられるエラーの要因については,「5.1.2 OIID変換,操作対象識別子変換時のエラー処理」を参照してください。

(3) エントリ抽出機能の処理方式

アクセスログエントリには,アクセスの内容を表すメソッド名と引数が含まれています。EDMRptAclogコマンドのエントリ抽出機能では,抽出エントリ定義ファイルに指定されたメソッド名と引数によって,アクセスログエントリを抽出して,結果を標準出力(stdout)またはファイルに出力します。