初期障害データ・キャプチャー機能 (FFDC) のレコードの生成
FFDC レコードには、例外スタックと、予期しない例外がコードによってキャッチされる際に記録されるオプションの追加データが組み込まれます。これらのレコードは、com.ibm.ws.ffdc.FFDCFilter クラスのメソッドを使用して生成されます。さまざまなデータがキャプチャーされる原因となる可能性のあるメソッドは多数あります。
例
FFDCFilter クラスの典型的な使用例を、以下に示します。
try{
// … do something
} catch (Exception e) {
FFDCFilter.processException(e, getClass().getName(), unique-probe-id);
if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
Tr.debug(tc, "Exception when doing something; " + e);
}
return;
}
ここで、ソース ID (この例ではクラス名) と固有のプローブ ID (通常、ソース・コードの行番号) の組み合わせにより、結果のレコードを生成するソース・コード内の正確な場所が指定されます。デフォルトでは、レコードは、${server.output.dir}/logs/ffdc ディレクトリーに書き込まれます。
永続的に発生する例外のケースで FFDC レコードが使用するファイル・スペースは、重複レコードの自動フィルターによって制限されます。ソース ID、プローブ ID、および例外名が一致する場合、1 日あたり最大 10 個の例外が固有のメッセージとともに書き込まれます。
com.ibm.ws.ffdc.DiagnosticModule 実装を FFDC クラスに登録することで、フィーチャー・コードは FFDC レコードにデータを提供できます。また、com.ibm.wsspi.logging.IncidentForwarder 実装を FFDC クラスに登録することで、フィーチャー・コードは FFDC レコードをインターセプトすることもできます。