ct_ffdc.h 文件
用途
提供 "首次故障数据捕获" (FFDC) C 语言库接口的数据类型,定义和接口原型。
描述
此头文件必须由使用 "首次故障数据捕获" C 语言接口的任何 C 和 C++ 语言源代码文件包含。 此文件包含 "首次故障数据捕获" 接口的 C 语言原型,用作这些接口的返回码的符号常量,以及 "首次故障数据捕获" C 和 C++ 语言客户机所需的数据类型定义。
C 语言接口选择控制
此文件提供编译器定义 FC_VERSION。 此定义控制在编译源代码期间应该使用哪个版本的 "首次故障数据捕获" 接口。 目前,只有一个版本的 "首次故障数据捕获" 界面可用,并且 FC_VERSION 的值设置为 1 值 1。 通过在编译命令行上设置 FC_VERSION 的值,可以在编译期间使用将来版本的 "首次故障数据捕获" 接口 (当这些接口可用时)。 如果在编译期间未设置此变量,那么 FC_VERSION 的值将还原为缺省值 1 ,并且会使用 FFDC 接口的初始版本。
数据类型
此模块定义的 fc_eid_t 数据类型用于存储 "首次故障数据捕获故障标识"。 每当这些接口成功记录故障信息时, fc_push_stack 和 fc_log_error 接口就会创建此标识。 此标识包含编码格式的信息,以指示进行记录的系统,进行记录的时间以及记录的位置。 以后可以使用 弗克雷波特 和 Fcstkrpt 之类的 "首次故障数据捕获" 命令来获取确切的故障报告以进行问题确定工作。
FFDC 环境建立代码
"首次故障数据捕获" 客户机应用程序使用 fc_init 接口来指定应该如何建立 FFDC 环境。 以下选择受支持:
- FC_LOG
建立基本的 FFDC 环境,允许应用程序向AIX错误日志和 BSD 系统日志记录故障信息。 除非此值与下面描述的 FC_STACK_CREAT 或 FC_STACK_INHERIT 选项组合在一起,否则不会建立 FFDC 错误堆栈以供应用程序在此情况下使用。 此选择将仅由使用 fc_log_error 接口的应用程序使用。
- FC_STACK_CREAT
创建 FFDC 错误堆栈环境 (如果先前不是由该进程的祖代创建的) ,或者继承 FFDC 错误堆栈环境 (如果先前建立了一个祖代)。 FFDC 错误堆栈环境允许该应用程序将信息记录到 AIX 错误日志, BSD 系统日志和 FFDC 错误堆栈中。 此选项由希望使用 fc_push_stack 接口和 fc_log_error 接口的应用程序使用。 此选择将不与接下来描述的 FC_STACK_INHERIT 选项组合使用。
- fc_stack_inherit
仅当祖代进程先前建立了 FFDC 错误堆栈环境时,才继承 FFDC 错误堆栈环境。 如果祖代没有建立这样的环境,那么应用程序不会使用 FFDC 错误堆栈,但仍然可能使用 AIX 错误日志和 BSD 系统日志。 请勿将此选择与先前指定的 FC_STACK_CREAT 选项组合使用。
记录类型定义
在此文件中指定了七个 FFDC 事件类型。 这些事件类型用于指示 fc_log_error 接口所记录的条件的严重性:
- FFDC_EMERG
已发生严重故障,系统有脱机的危险。 此信息是系统管理员使系统恢复联机所必需的。 AIX 错误日志类型等效项为 PEND。 BSD 系统日志优先级等效值为 LOG_EMERG。
- FFDC_ERROR
已发生永久性故障,并且该情况将持续到修复为止。 该系统不存在脱机的危险。 等效的 AIX 错误日志类型为 PERM。 BSD 系统日志优先级等效值为 LOG_ERR。
- FFDC_STATE
发生了具有一定意义的事件,但该事件不构成故障条件。 等效的 AIX 错误日志类型为 INFO。 BSD 系统日志优先级等效值为 LOG_NOTICE。
- FFDC_PERF
已注意到可能会或将会降低系统性能低于可接受的级别的情况。 系统不存在脱机的危险,但性能可能以不可接受的速度缓慢,这可能导致系统应用程序中的随机故障,例如超时条件。 等效的 AIX 错误日志类型为 PERF。 BSD 系统日志优先级等效值为 LOG_WARNING。
- FFDC_TRACE
此条目标识应用程序或系统组件所生成的跟踪文件的名称和位置。 如果在应用程序或组件中启用了跟踪,那么将生成这样的条目以指示跟踪文件所在的位置。 等效的 AIX 错误日志类型为 UNKN。 BSD 系统日志优先级等效值为 LOG_INFO。
- FFDC_RECOV
系统已成功完成恢复操作以响应 FFDC_EMERG, FFDC_ERROR或 FFDC_PERF 条件。 只有在检测到 FFDC_EMERG, FFDC_ERROR或 FFDC_PERF 条件并成功完成响应该条件而启动的恢复操作之后,才会创建此类条目。 AIX 错误日志类型等效为 TEMP。 BSD 系统日志优先级等效值为 LOG_DEBUG。
- FFDC_DEBUG
检测到故障情况。 与 FFDC_ERROR 情况不同,故障不是永久条件,或者系统可以在存在该条件的情况下成功继续。 等效的 AIX 错误日志类型为 UNKN。 BSD 系统日志优先级等效值为 LOG_DEBUG。
示例
#include <rsct/ct_ffcd.h>位置
/opt/rsct/include/ct_ffdc.h
/usr/include/rsct/ct_ffdc.h