First failure data capture (FFDC)

The FFDC feature instantly collects information about events and conditions that might lead up to a failure. The captured data in these files can be used to analyze a problem. FFDC is intended primarily for use by IBM Service. The presence of an FFDC message does not always mean there is a problem. In cases where normal recovery occurs, no further action is needed. After a maximum number of days, these files are automatically deleted from your system.

[AIX Solaris HP-UX Linux Windows][IBM i]After the information is collected, and saved in a log file, FFDC returns control to the affected engines.

[z/OS]After the information, which is uniquely identified for the servant region that produced the exception, is collected, and saved in a log file, FFDC returns control to the affected engines.

By default, a FFDC log file is automatically purged seven days it is created. You can configure the amount of days between purges if you are concerned about the amount of space that the FFDC log files are using.

Two FFDC implementations are provided in the product:
  • The WebSphere FFDC, which is the legacy FFDC implementation. This FFDC can only be used in WebSphere products.
  • The IBM FFDC, which is a more componentized, and more generic implementation that depends solely on the JDK. This FFDC can be used in client processes and by non-WebSphere products, because it is pluggable with non-WebSphere data collectors, formatters, providers, and listeners.
Both of these FFDC implementations support the OnDirProvider type functionality that is configurable using the com.ibm.ffdc.log Java virtual machine (JVM)environment variable. The OnDirProvider functionality includes a built-in provider that stores incidents as separate files in a directory, along with a separate summary file. The com.ibm.ffdc.log JVM environment variable can be set to the following values:
  • <file_name>, where file_name is either be the name of a single file or a directory path.
    • If file_name exists and is the name of a single file, all of the incident and summary reporting information that FFDC collects is appended into that file.
    • If file_name exists and is a directory path, whenever an incident occurs, a new file is created in that directory and all of the incident and summary reporting information for that incident is written into this newly created file. The incident is also added to the summary report in this directory.
    • If file_name ends in a file separator (\ or /). but a file with the specified name does not exist, a directory called file_name is created. Then, whenever an incident occurs, a new file is created in that directory and all of the incident and summary reporting information for that incident is written into this newly created file. The incident is also added to the summary report in this directory.
      Example of use:
      Name: com.ibm.ffdc.log
      Value: C:\my_FFDC_CP\
    • If file_name does not end in a file separator (\ or /). and a file with the specified name does not exist, a single file is created and given the specified name. All of the incident and summary reporting information that FFDC collects is then appended into that file.
      Example of use:
      Name: com.ibm.ffdc.log
      Value: C:\my_FFDC_CP_log
  • System.out, which appends the incidents and summary report information to the stdout output stream.
  • System.err, which append the incidents and summary report information to the stderr output stream. System.err is the default value for the com.ibm.ffdc.log Java environment variable.
  • Suppress, which causes all FFDC collected information to be discarded.
For additional information about specifying the com.ibm.ffdc.log JVM environment variable in the administrative console, see topic, Java virtual machine custom properties.

Specifying a value for the com.ibm.ffdc.log JVM environment variable is the only configuration change that you need to make to exploit the OnDirProvider functionality. The new FFDC also provides mechanisms to overly choose this provider or to use your own WebSphere provider.

The com.ibm.ffdc.log variable can also be used to redirect the FFDC incidents and summary created in the product. If you want to use the com.ibm.ffdc.log variable for this purpose, you must specify a directory as the variable value. Therefore, it is recommended that, if this variable is used in a WebSphere Application Server environment, the specification of this variable end in a file separator (/ or \\) to avoid conflicts.

Avoid trouble: If the default setting for automatic purging of FFDC information is too long for your environment, see the topic Configuring first failure data capture log file purges for a description of how you can modify the length of time that the FFDC information is retained on your system.