通常情况下,每个活动的规则都具有一个正在活动关联技术引擎中运行的规则 实例或副本。然而,同一规则有时为不同的事件组所需,而不同的事件组一般与不同的资源组相关联。组密钥是一个或多个事件属性,或者是事件属性的组成部分,可用于将选定的事件分到不同的组中,以便按组进行不同处理。<groupingKey> 元素定义规则的组密钥。<groupingKey> 元素的用途是指定规则针对共享公共特性(如构成组密钥的属性的值所定义)的每组事件 创建不同的规则实例(或其副本)。
以下两个场景将说明组密钥的重要性。
如果将该序列规则定义为不带有组密钥,且从计算机 A 接收到 DB2down 事件, 则来自上述任一计算机的 DB2up 事件都将完成该序列,但这将不会实现预期目标。然而, 如果已将组密钥定义为主机名属性,则将为选定事件中主机名属性的每个唯一的值创建规 则的唯一副本或实例。活动关联技术引擎将把每个事件发送至正确的规则实例(该事件的 主机名值的规则实例)。 因此,如果从计算机 A 接收到 DB2down 事件,则活动关联技术引擎将为计算机 A 创建 一个规则实例。如果从计算机 B 接收到 DB2down 事件,则活动关联技术引擎将为计算 机 B 创建第二个规则实例。当从计算机 B 接收到 DB2up 事件时,活动关联技术引擎将 在这第二个规则实例中处理该事件。由于来自计算机 B 的 DB2down 和 DB2up 事件已正确关联,因此该序列完成,并且操作员接收到提醒。
组密钥可定义为用户标识。然后,将为每个唯一的用户标识创建新的规则实例。 将通过唯一的阈值规则实例来跟踪每个用户的登录尝试,每个实例对于该用户的登录尝试次数都具有单独的计数。如果任何用户标识 5 分钟内不正确登录的次数大于 10,操作员将接收到警告。
如果为规则指定的所有事件类型中存在同一属性,则使用 <attributeName> 元素 来定义组密钥是最简单且最常见的方式。
<groupingKey> 具有以下属性:
名称 | 描述 | 数据类型 | 必需? |
---|---|---|---|
missingAttributeHandling | 定义规则在以下某个情况下必须执行的操作:
missingAttributeHandling 属性的有效值为:
|
xsd:string | 否 |
<groupingKey> 包含以下元素。
元素 | 必需或可选? |
---|---|
<attributeAlias> | 以下某个元素是必需的。编写以下元素中的多个元素是可选的。 允许所有这 3 个元素多次出现。可按任何顺序编写这些元素。 |
<attributeName> | |
<computedValue> |