RSiAddSetHot或RSiAddSetHotx子程序
用途
将一组同级统计信息添加到已定义的 SpmiHotSet。
库
RSI 库 (libSpmi.a)
语法
#include sys/Rsi.h struct SpmiHotVals *RSiAddSetHot(rhandle, HotSet, StatName,
GrandParent,
maxresp, threshold, frequency, feed_type,
except_type, severity, trap_no)
RSiHandle rhandle;
struct SpmiHotSet *HotSet;
char *StatName;
cx_handle GrandParent;
int maxresp;
int threshold;
int frequency;
int feed_type;
int excp_type;
int severity;
int trap_no;struct SpmiHotVals *RSiAddSetHotx(rhandlex, HotSet, StatName,
GrandParent,
maxresp, threshold, frequency, feed_type,
except_type, severity, trap_no)
RSiHandlex rhandlex;
struct SpmiHotSet *HotSet;
char *StatName;
cx_handle GrandParent;
int maxresp;
int threshold;
int frequency;
int feed_type;
int excp_type;
int severity;
int trap_no;参数
- 处理
- 必须指向先前由 RSiOpen 子例程初始化的有效 RSiHandle 句柄。
- 汉德莱克斯
- 必须是先前由 RSiOpenx 子例程初始化的 RSiHandlex 句柄。
- HotSet
- 指定指向由RSiCreateHotSet或RSiCreateHotSet子程序调用创建的SpmiHotSetstruct 类型有效结构的指针。
- StatName
- 指定由 GrandParent 参数标识的上下文的子上下文 (对等上下文) 中的统计信息名称。
- GrandParent
- 指定由另一个子例程调用获取的有效 cx_handle 句柄。 句柄必须标识具有至少一个子上下文的上下文,该子上下文包含由 StatName 参数标识的统计信息。 如果指定的上下文是 "RTime上下文之一,则在发出 "SpmiAddSetHot子程序调用时无需创建子上下文;"StatName参数所标识的度量指标是否存在将根据上下文类别说明进行检查。
如果指定的上下文在其下具有多个级别的可实例化上下文 (例如, 外勤人员 和 RTime/ARM 上下文) ,那么仅搜索最低上下文级别的度量值。 创建的 "SpmiHotSet是一个伪 hotvals 结构,用于连接同级的 "SpmiHotVals GrandParent结构组。 对于 RTime/ARM,如果稍后在 GrandParent 上下文下添加其他上下文,那么会将其他热点集添加到对等组。 除了RSiGetHotItem, RSiGetHotItemx子程序调用返回的是对等组SpmiHotVals指针而不是伪结构指针外,它对应用程序是透明的。
请注意,指定特定卷组上下文(如FS/rootvg)或特定应用程序上下文(如RTime/ARN/armpeek)仍然有效,并且不会创建伪SpmiHotVals结构。
- 马克斯雷斯普
- 如果 excp_type 指定必须生成异常或 SNMP 陷阱,那么必须为非零值。 如果指定为 0,则表示必须返回符合阈值指定条件的所有SpmiHotItems,最多不超过maxresp项目。 如果同时请求了异常/陷阱和订阅源,那么会使用 马克斯雷斯普 值来限制异常/警报的数量以及返回的项数。 如果将 "feed_type指定为 "SiHotAlways,"最大响应参数仍将用于最多返回 "最大响应项。
其中 GrandParent 参数指定在其下面具有多个可实例化上下文级别的上下文, maxresp 一次应用于实际对等上下文之上的每个最低级别上下文。 例如,如果 GrandParent 上下文是 FS (文件系统) ,并且系统具有三个卷组,那么 maxresp 值 2 可能导致最多生成 2 x 3 = 6 个响应。
- 阈值 (threshold)
- 如果 excp_type 指定必须生成异常或 SNMP 陷阱,那么必须为非零值。 如果指定为零,那么表示读取的所有值都有资格在订阅源中返回。 将指定的值与为每个对等统计信息读取的数据值进行比较。 如果数据值超过 "门槛,则有资格作为 "SpmiHotVals结构中的 "SpmiHotItems元素返回。 如果将 阈值 指定为负值,那么该值将在小于 阈值的数字值时限定。 如果将 "feed_type指定为 "SiHotAlways,则忽略馈送的阈值。 对于SiCounter 类型的对等统计量,阈值必须指定为每秒速率;对于SiQuantity统计量,阈值指定为级别。
- 频率
- 如果 excp_type 指定必须生成异常或 SNMP 陷阱,那么必须为非零值。 已忽略订阅源。 指定在此 SpmiHotVals 结构中生成的任何两个异常/陷阱之间必须到期的最小分钟数。 必须将此值指定为不小于 5 分钟。
- 数据加载类型
- 指定是否应返回 SpmiHotItems 的 SpmiHotVals 结构。 以下值是有效的:
- excp_type
- 控制异常数据包的生成和/或 SNMP 陷阱的生成 (从 Xmservd)。 请注意,仅当 Xmservd 正在运行时,才能实际发送这些类型的包和陷阱。 因此,仅当 Xmservd 处于活动状态时,才会生成异常包和 SNMP 陷阱。 陷阱只能在AIX 上生成。 产生异常和陷阱的条件由阈值和频率参数控制。 以下值对于 excp_type是有效的:
- 严重性
- 如果生成异常,那么必须为正数且大于零,否则指定为零。 用于将严重性代码分配给异常以便由 埃克斯蒙显示。
- 特拉普诺
- 如果生成 SNMP 陷阱,那么必须为正数且大于零,否则指定为零。 用于在生成的 SNMP 陷阱中分配陷阱号。
返回值
如果成功,子程序将返回一个指向 "结构 "SpmiHotVals结构的指针。 如果发生错误,那么将返回 NULL ,并且可能会在外部字符数组 RSiEMsg中放置错误文本。 如果尝试添加到统计集的值超过了当前本地缓冲区允许的大小,RSiErrno将被设置为RSiTooMany。 如果尝试添加的值超过了远程主机xmservd守护进程允许的缓冲区大小,RSiErrno将被设置为RSiBadStat,返回数据包中的状态字段将被设置为too_many_values。
外部整数RSiMaxValues保存了数据消费者缓冲区大小可接受的最大值数量。
错误代码
所有远程统计信息接口 (RSI) 子例程都使用外部变量来提供错误信息。 为了访问这些变量,应用程序必须定义下列外部变量:
- extern charRSiEMsg[];
- extern intRSiErrno;
如果子例程未返回错误,那么 RSiErrno 变量将设置为 RSiOkay ,并且 RSiEMsg 字符数组为空。 如果检测到错误,RSiErrno变量将根据枚举RSiErrorType定义返回一个错误代码。
文件
| 项 | 描述 |
|---|---|
| /usr/include/sys/Rsi.h | 声明应用程序可以用来访问 RSI 的子例程,数据结构,句柄以及宏。 |