トレース・ロギング
Content Engine のトレース・ロギングは、サーバー側およびクライアント側で Content Engine Java™ API に対してサポートされています。Content Engine .NET API は、クライアント側のトレース・ロギングをサポートしていません。Content Engine .NET API クライアントはサーバー側のトレース・ロギングを使用する必要があります。
Content Engine のトレース・ロギングは、Apache log4j パッケージにより実行されます。通常、トレース・ロギングは、テスト環境または実動環境でのアプリケーションの障害に関する情報を収集および記録するために実施されます。ロギングを有効にすると、FileNet® P8 ソフトウェアに挿入されたロギング・ステートメントによって、ロギング項目が出力場所に書き込まれます。アプリケーション (クライアント) がサーバーに要求すると、ロギング・メカニズムが要求に関する情報を収集し、それを何らかの出力メディア (ファイルやコンソール) に書き込みます。お客様サポートと開発担当者は、トレース・ロギングで提供される情報を使用して問題の診断および解決を行います。
問題を解決する上で必要に応じて、一般情報および各種レベルの詳細情報を収集するよう、ロギング環境を構成できます。ロギングは、メソッドの実行時間を計測するには適していません。ロギングの動作時間がシステム・パフォーマンスに負荷をかけ、測定を不正確にするためです。この種の測定を収集する必要がある場合は、より目的に合う他のプロファイル・ツールやパフォーマンス分析ツールを使用してください。
サーバー側のロギングとクライアント側のロギング
FileNet P8 ソフトウェアでは、サーバー・サイドのトレース・ロギングは TraceLoggingConfiguration オブジェクトと TraceFlag 定数クラスを使用して行われます。 各サブシステムは、TraceLoggingConfiguration クラスのプロパティーとして表されます。特定のサブシステムに対してトレース・ロギングを構成すると、トレース・ロギング構成はそのサブシステム内のすべてのクラスに適用されます。TraceFlag クラスには、収集するトレース・データの量とタイプを指定するために使用されるトレース・ログ設定が含まれます。これらの設定を OR で結合して、特定のサブシステムに複数の設定を適用することができます。アプリケーション内の TraceLoggingConfiguration オブジェクトを変更してもトレースは実装できますが、そうではなく Administration Console for Content Platform Engine を使用して設定を変更することを推奨します。これらの設定の詳細については、「トレース・ログの作成 (Creating a trace log)」を参照してください。
サーバー側のロギングとは異なり、Java クライアント側からのトレース・ロギングの構成には Apache log4j.properties構成ファイルを使用できます。このファイルを使用すると、アプリケーション・コードの変更や再コンパイルなしで、ロギング動作、優先度レベル、出力フォーマットを変更できます。ただし、サーバー上でのこのファイルの使用は、GCD をロードできないなど、特定のサーバー起動の問題のトラブルシューティング以外には推奨されません。 この構成ファイルの詳細については、『Apache log4j.properties 構成ファイルの操作』を参照してください。
サポートされる FileNet P8 サブシステム
トレース・ロギングは、論理サブシステムに編成された FileNet P8 の各種操作でサポートされています。例えば、Content Engine Java API、グローバル構成データベース、アプリケーション認証を使用する操作があります。 サポートされる各サブシステムは、TraceLoggingConfiguration オブジェクト上のプロパティー (APITraceFlags、GCDTraceFlags、SecurityTraceFlags など) によって表されます。TraceLoggingConfiguration インターフェース上で、関連付けられた get および set メソッドを使用して、各プロパティーの値を管理できます。例: get_GCDTraceFlags および set_GCDTraceFlags。
以下の表に、トレース・ロギングを有効にできる FileNet P8 サブシステムを示します。 また、出力トレース・ログ・ファイル内で特定のサブシステムを指定するために使用される省略語も示します。
プロパティー | 省略語 | 説明 |
---|---|---|
APITraceFlags | API | Content Engine Java API の操作に関連する情報をログに記録します。 注: ロギングは Content Engine Java API に対してのみサポートされており、Content Engine .NET API に対してはサポートされていません。
|
AsynchronousProcessingTraceFlags | ASYN | ドキュメント分類やセキュリティー伝達などの非同期イベントの処理部分に関連する情報をログに記録します。 |
AuditDispositionTraceFlags | AUDT | 監査廃棄に関連する情報をログに記録します。 |
CBRTraceFlags | CBR | 索引処理や検索などのコンテンツ・ベースの取得に関連する情報をログに記録します。 |
CFSDaemonTraceFlags | CFSD | Content Federation System ファイル・システム・デーモンに関連する情報をログに記録します。 |
CFSImportAgentTraceFlags | CFSI | CFS インポート・エージェント・サブシステムに関連する情報をログに記録します。 |
CodeModuleTraceFlags | Content Manager OnDemand | コード・モジュール機能に関連する情報をログに記録します。 |
ContentCacheTraceFlags | CCHE | ドキュメントの内容をローカル・サーバーのファイル・システム内のキャッシュに入れる、コンテンツ・キャッシュ操作に関連する情報をログに記録します。 |
ContentStorageTraceFlags | CSTG | コンテンツの保存に関連する情報をログに記録します。 |
DatabaseTraceFlags | DB | データベース操作に関連する情報をログに記録します。 |
EJBTraceFlags | EJB | Enterprise Java Beans (EJB) トランスポート層に関連する情報をログに記録します。EJB トランスポート層は、オブジェクト指向アプリケーション、分散アプリケーション、エンタープライズ・レベル・アプリケーションの開発およびデプロイのためのコンポーネント・アーキテクチャーです。 |
EngineTraceFlags | ENG | Content Engine サーバー・コアに関連する情報をログに記録します。 |
ErrorTraceFlags | ERR | エラー処理操作に関連する情報をログに記録します。 |
EventsTraceFlags | EVNT | 一般イベント処理に関連する情報をログに記録します。 |
FixedContentProviderTraceFlags | FCPV | 各種の固定コンテンツ・プロバイダーに関連する情報をログに記録します。 |
GCDTraceFlags | GCD | Global Configuration Database (GCD) およびその操作に関連する情報をログに記録します。 |
HandlerTraceFlags | HDLR | カスタム・サーバー・ハンドラー・コードに関連する情報をログに記録します。 |
MetadataTraceFlags | MCHE | メタデータ・キャッシュ操作に関連する情報をログに記録します。 |
PublishTraceFlags | PUBL | パブリッシュ操作に関連する情報をログに記録します。 |
ReplicationTraceFlags | REPL | 複製サブシステムに関連する情報をログに記録します。 |
SearchTraceFlags | SRCH | 検索および照会操作に関連する情報をログに記録します。 |
SecurityTraceFlags | SEC | Content Engine オブジェクトへのユーザー・アクセスの認証 (認証プロバイダーで階層化) および許可に使用される、クライアント・コンポーネントとサーバー・コンポーネントに関連する情報をログに記録します。 |
ServerCommunicationTraceFlags | COMM | サーバー通信サブシステムに関連する情報をログに記録します。 |
SSITraceFlags | SSI | Content Engine と FileNet Image Services との間のインターフェースである、Single-document Storage Interface (SSI) との統合に関連する情報をログに記録します。 |
SweepTraceFlags | SWP | スイープ・サブシステムに関連する情報をログに記録します。 |
ThumbnailGenerationTraceFlags | THMG | ThumbnailGeneration サブシステムに関連する情報をログに記録します。 |
WSITraceFlags | WSI | Content Engine に対する Web Services Interface トランスポート層に関連する情報をログに記録します。 |
トレース・ロギングの設定
サーバーは、特定のサブシステムに対応するトレース・ロギング構成プロパティーの値を設定することにより、そのサブシステムのトレース・ロギングを構成します。このプロパティーの値は、TraceFlag クラスに定義されたトレース・ロギング定数を使用して設定されます。これらの定数は、サブシステム用に収集するトレース・データの量およびタイプを指定するために使用されるトレース・ログ設定を表します。
提供される TraceFlag 定数は、以下のとおりです。
定数 | 値 | 説明 |
---|---|---|
SUMMARY | 2 | すべての操作についての要約情報を提供することにより、最小限の要約ロギングを有効にします。この設定がシステム・パフォーマンスに及ぼす影響は、それほど大きくありません。 |
MODERATE | 4 | すべての操作について、SUMMARY オプションよりも詳細な要約ロギングを有効にします (SUMMARY レベルのすべての情報も含まれます)。この設定は、システム・パフォーマンスにある程度の影響を及ぼします。 |
DETAIL | 8 | 主にデバッグのために使用される、すべての操作についての詳細情報を提供することによって、最も詳細なロギングを有効にします (SUMMARY レベルおよび MODERATE レベルのすべての情報も含まれます)。 この設定はシステム・パフォーマンスに多大な影響を及ぼし、場合によっては深刻な影響を及ぼすことがあります。 |
TIMER | 1 | Content Engine がファイルのアップロードなどの操作を完了するのにかかる時間の長さ情報 (ミリ秒単位) を提供します。この設定がシステム・パフォーマンスに及ぼす影響は、それほど大きくありません。 |
TraceFlag 定数を OR で結合して、特定のサブシステムに複数のトレース・ロギング設定を適用することができます。例えば、DETAIL レベルのロギングを有効にし、操作が完了するまでの経過時間を収集するには、TraceFlag 定数を次のように定義します。
// GCD サブシステムに対して、Timer と Detail トレースを有効化
Integer traceFlags = new Integer(TraceFlag.TIMER_AS_INT|TraceFlag.DETAIL_AS_INT);
TLC_object.set_GCDTraceFlags(traceFlags);
TraceFlag 定数の階層継承構造
TraceFlag 定数は、IBM® Administration Console for Content Platform Engine によって階層的な継承方法で強制されます。例えば、サブシステムに DETAIL レベルでロギングを記録するよう構成すると、自動的に MODERATE レベルおよび SUMMARY レベルも有効にされたと見なされます。
特定のサブシステムに対してトレース・ロギングを構成すると、その構成はそのサブシステムに含まれるすべてのクラスに適用されます。これにより、各サブシステムでトレース・ロギングが完全に構成される一方で、他のサブシステムからの独立性は保たれます。
トレース・ログのアペンダー名
サーバーは TraceLoggingConfiguration.AppenderNames プロパティーを使用して、トレース・ロギング・データの出力先を指定します。このプロパティーは、コンマで区切られた 1 つ以上の log4j クラス名で構成されます。単一のロガーに複数のアペンダーを指定することはできますが、ファイル・アペンダー・クラス名は 1 つしか指定できません。複数のアペンダーが指定される場合には、ファイル・アペンダーのほかにコンソール・アペンダーが指定されたはずです。
// ConsoleAppender と FileAppender を指定
TLC_object.set_AppenderNames("org.apache.log4j.ConsoleAppender, FileAppender");
パッケージ接頭部を使用してアペンダー名を指定する場合はクラス名が絶対的に解釈され、そうでない場合は、処理中にクラス名に接頭部「org.apache.log4j」が付けられます。アペンダー名が検証されるのは、それらが存続する場合であり、ロギングの構成時ではありません。
出力先としてサポートされるアペンダー名は、以下のとおりです。
アペンダー名 | 説明 |
---|---|
ConsoleAppender | ConsoleAppender は、デフォルト・コンソール (System.out など) にトレース・ロギング・データを送信します。 |
FileAppender | FileAppender は、TraceLoggingConfiguration.OutputLocation プロパティーで指定された場所にトレース・ロギング・データを送信します。詳細については、トレース・ログの出力場所を参照してください。 |
DailyRollingFileAppender | DailyRollingFileAppender は FileAppender のサブクラスであり、OutputLocation プロパティーによって参照されるディレクトリーにあるトレース・ログをスケジュールされた間隔でバックアップ (ロールオーバー) します。 DatePattern は yyyy-MM-dd であり、バックアップ操作を毎日深夜に開始します。 |
RollingFileAppender | RollingFileAppender は FileAppender のサブクラスであり、クラス名が直接指定されていない場合にデフォルトで使用されます。RollingFileAppender は、ファイルが最大サイズを超えた場合に、OutputLocation プロパティーによって参照されるディレクトリーにあるトレース・ログをバックアップします。
トレース・ログ・ファイルのデフォルトの最大サイズは 100 MB であり、バックアップ・ファイルのデフォルト数は 5 です。 これらのデフォルト値を上書きするには、Content Platform Engine JVM パラメーター MaxRollingFileSize および MaxRollingFileBackups を使用します。 例えば、ファイル・サイズを 200 MB に設定し、バックアップ・ファイルの数を 10 に設定するには、-DMaxRollingFileSize=200MB -DMaxRollingFileBackups=10 と指定します。 |
トレース・ログの出力場所
サーバーは、TraceLoggingConfiguration.set_OutputLocation メソッドを使用して、トレース・ログの出力場所として使用する完全修飾パスを指定します。このメソッドが使用されるのは、AppenderNames プロパティー値が FileAppender クラスまたはサブクラスである場合のみです。OutputLocation プロパティーが指定されていないか NULL である場合、値はデフォルトでアプリケーション・サーバー・インスタンスの作業ディレクトリー・パスに /FileNet が付加されたものになります。 トレース・ログのファイル名は、常に p8_server_trace.log になります。
// トレース・ログに対して出力場所を指定
TLC_object.set_OutputLocation("C:/temp/logs/trace/p8_server_trace.log");
すべてのサブシステムに対してトレース・ロギング機能を有効化
サーバーは、TraceLoggingConfiguration.set_TraceLoggingEnabled() メソッドを使用して、設定済みのすべてのサブシステムに対してロギング機能を有効または無効にします。プロパティーが true に構成された場合、各サブシステムに対して以前に定義した TraceFlag 値に応じて、構成済みのすべてのサブシステムのトレース・ロギング機能が有効になります。
// 現在、トレース・ロギング機能が有効かどうかを調査
if ( TLC_object.TraceLoggingEnabled == Boolean.FALSE )
// トレース・ロギング機能を有効化
TLC_object.set_TraceLoggingEnabled(Boolean.TRUE); }
デフォルトのエラー・ロギング
Content Engine の起動時にシステムに対してエラー・ロガーが構成されていない (すなわち log4j 構成がない) 場合、デフォルトのエラー・ロガーである「filenet_error」が構成され、INFO レベルでロギングを収集するようになります。 デフォルトのエラー・ロガーは、アプリケーション・サーバー・インスタンスの作業ディレクトリー・パスに /FileNet が付加されたディレクトリーにある p8_server_error.log ファイルに項目を書き込みます。 このディレクトリーは、TraceLoggingConfiguration.OutputLocation プロパティーが設定されていない場合にトレース・ログが書き込まれるディレクトリーと同じです。 (デフォルトでは、Oracle WebLogic アプリケーション・サーバーのエラー・ログ・ファイルは、<domain directory>/FileNet/<app server name>/p8_server_error.log です。)