Das Element <activationByGroupingKey> enthält Elemente, die die Ereignisse angeben, die eine Regelinstanz aktivieren und inaktivieren können, die durch das Element <groupingKey> definiert wird. Da das Element <groupingKey> für die Filter- und Zeitgeberregeln nicht gültig ist, wird das Element <activationByGroupingKey> für diese Regeln nicht angewendet.
Die Funktion des Elements <activationByGroupingKey> dient zur Verwendung in Regeln, bei denen ein Gruppierungsschlüssel definiert wird. Es ermöglicht Ihnen, die Aktivierung und Inaktivierung von Regelinstanzen auf der Basis des Gruppierungsschlüssels zu steuern. Wenn Sie das Element <activationByGroupingKey> codieren, kann jede Regelinstanz individuell auf der Basis der <activateOnEvent>- und <deactivateOnEvent>-Bedingungen innerhalb von <activationByGroupingKey> aktiviert und inaktiviert werden.
Das folgende Beispiel zeigt die Verwendung des Elements <activationByGroupingKey> innerhalb einer Berechnungsregel.
<computationRule name="StockReporter"> <variable dataType="java.lang.Integer" name="totalSharesTraded"> <varInitializer expressionLanguage="java"> return new Integer(0); </varInitializer> </variable> <activationInterval> <activationTime> <start> <inactiveWhenLoaded/> </start> </activationTime> <activationByGroupingKey> <activateOnEvent> <eventType type="StartReporting"/> </activateOnEvent> </activationByGroupingKey> </activationInterval> <eventSelector> <eventType type="StockSharesTraded"/> </eventSelector> <groupingKey> <attributeName>stockSymbol</attributeName> </groupingKey> <computeFunction assignTo="totalSharesTraded" expressionLanguage="java"> return new Integer(act_lib.getIntVariable("totalSharesTraded") + act_event.getIntAttribute("sharesTraded")); </computeFunction> <timeWindow> <timeInterval unit="ISO-8601" duration="PT10M"/> </timeWindow> <onTimeWindowComplete> <action expressionLanguage="java"> StockReport.createReport(act_eventList.get(0).getStringAttribute("stockSymbol"), act_lib.getIntVariable("totalSharesTraded")); </action> </onTimeWindowComplete> </computationRule>
<activationByGroupingKey> weist keine Attribute auf.
<activationByGroupingKey> enthält die folgenden Elemente.
Die Elemente müssen in der angezeigten Reihenfolge codiert werden. Wenn ein Element optional ist, muss es nicht codiert werden. Alle codierten Elemente müssen jedoch die richtige Reihenfolge aufweisen.
Element | Erforderlich oder optional? |
---|---|
<activateOnEvent> | Optional. 0 oder 1 Vorkommen ist zulässig. |
<deactivateOnEvent> | Optional. 0 oder 1 Vorkommen ist zulässig. |
Das Regelverhalten kann sich basierend auf der aktuellen Regelaktivität und auf den Interaktionen zwischen den Definitionen für <activateOnEvent> und <deactivateOnEvent> innerhalb der Elemente <activationInterval> und <activationByGroupingKey> unterscheiden. Das folgende Beispiel zeigt, wie diese Definitionen interagieren können.
In diesem Beispiel wird eine Duplikatregel definiert, um Ereignisse von Systemen zu unterdrücken, die sich im Wartungsmodus befinden, und um am Ende der Wartungsperiode einen Ergebnisbericht über die Anzahl der unterdrückten Ereignisse bereitzustellen.
Standardmäßig lässt eine Regel, in der ein Gruppierungsschlüssel definiert ist, zu, dass alle Gruppierungsschlüsselwerte verarbeitet werden. Wenn Ereignisse die Ereignisauswahlkriterien für die Regel erfüllen, sind daher alle Regelinstanzen aktiv und bereit, diese Ereignisse mit beliebigen Werten des Gruppierungsschlüssels zu akzeptieren. Das Aktivierungsintervall für die Regel ist mit dem Intervall identisch, das vorliegen würde, wenn die Regel keinen Gruppierungsschlüssel aufweisen würde, da im Prinzip alle Ereignisse verarbeitet werden, die die Ereignisauswahlkriterien für die Regel erfüllen.
<duplicateRule name="Maintenance_Supression"> <activationInterval> <activationTime> <start> <inactiveWhenLoaded/> </start> <stop> <after duration="PT2H" unit="ISO-8601"/> </stop> </activationTime> <activateOnEvent> <eventType type="StartMaintenanceModeAllHosts"/> </activateOnEvent> <deactivateOnEvent> <eventType type="StopMaintenanceModeAllHosts"/> </deactivateOnEvent> </activationInterval> <groupingKey missingAttributeHandling="ignoreEvent"> <attributeName>hostname</attributeName> </groupingKey> <timeWindow> <runUntilDeactivated/> </timeWindow> <onDetection> <action expressionLanguage="java" name="DropEvent"> <![CDATA[act_lib.exitRuleSet();]]> </action> </onDetection> <onTimeWindowComplete> <action expressionLanguage="java" name="CreateSummaryOfSupressedEvents"> <![CDATA[Helper.createSummaryEvent("MaintenanceSummary", act_eventList, act_lib);]]> </action> </onTimeWindowComplete> </duplicateRule>
In einigen Situationen möchten Sie möglicherweise steuern, welche Regelinstanzen aktiv werden und wann sie aktiv werden. Für diese Fälle sollten Sie das Element <activationByGroupingKey> codieren.
<activationByGroupingKey> <activateOnEvent> <eventType type="StartMaintenanceMode"/> <stopAfter duration="PT2H" unit="ISO-8601"/> </activateOnEvent> <deactivateOnEvent> <eventType type="StopMaintenanceMode"/> </deactivateOnEvent> </activationByGroupingKey>
Startstatus der Regel | Mögliche Auswirkung auf Regelstatus | Endstatus der Regel |
---|---|---|
Inaktiv | Definierte Zeit in <activationInterval> <activationTime> <start> |
|
Methode activate() | ||
Ereignis A (definiert in <activationInterval> <activateOnEvent>) | ||
Ereignis A[1] (definiert in <activationByGroupingKey> <activateOnEvent> ohne <stopAfter>) |
|
|
Ereignis A[2] (definiert in <activateOnEvent> mit <stopAfter>) |
|
|
|
Definierte Zeit in <activationInterval> <activationTime> <start> | Der Regelstatus wurde nicht geändert. Er ist mit dem Startstatus der Regel identisch. |
Methode activate() | ||
Ereignis A (definiert in <activationInterval> <activateOnEvent>) | ||
Ereignis A[1] (definiert in <activationByGroupingKey> <activateOnEvent> ohne <stopAfter>) | ||
Ereignis A[2] (definiert in <activateOnEvent> mit <stopAfter>) | ||
|
Definierte Zeit in <activationInterval> <activationTime> <start> | Der Regelstatus wurde nicht geändert. Er ist mit dem Startstatus der Regel identisch. |
Methode activate() | ||
Ereignis A (definiert in <activationInterval> <activateOnEvent>) | Alle Gruppierungsschlüsselwerte sind zulässig. | |
Ereignis A[1] (definiert in <activationByGroupingKey> <activateOnEvent> ohne <stopAfter>) |
|
|
Ereignis A[2] (definiert in <activateOnEvent> mit <stopAfter>) |
|
|
|
Definierte Zeit in <activationInterval> <activationTime> <start> | Der Regelstatus wurde nicht geändert. Er ist mit dem Startstatus der Regel identisch. |
Methode activate() | ||
Ereignis A (definiert in <activationInterval> <activateOnEvent>) | Alle Gruppierungsschlüsselwerte sind zulässig. | |
Ereignis A[1] (definiert in <activationByGroupingKey> <activateOnEvent> ohne <stopAfter>) | Der Gruppierungsschlüsselwert 1 ist jetzt zusätzlich zu den bereits gültigen Gruppierungsschlüsselwerten zulässig. | |
Ereignis A[2] (definiert in <activateOnEvent> mit <stopAfter>) | Der Gruppierungsschlüsselwert 2 ist jetzt zusätzlich zu den bereits gültigen Gruppierungsschlüsselwerten zulässig. |
Startstatus der Regel | Mögliche Auswirkung auf Regelstatus | Endstatus der Regel |
---|---|---|
Inaktiv | Definierte Zeit in <activationInterval> <activationTime> <stop> | Der Regelstatus wurde nicht geändert. Er ist mit dem Startstatus der Regel identisch. |
Methode deactivate() | ||
Ereignis D (definiert in <activationInterval> <deactivateOnEvent>) | ||
Ereignis D[1] (definiert in <activationByGroupingKey> <deactivateOnEvent>) | ||
Definierte Dauer in <activationByGroupingKey> <activateOnEvent> <stopAfter> endet für Ereignis A[2] | ||
|
Definierte Zeit in <activationInterval> <activationTime> <stop> |
|
Methode deactivate() | ||
Ereignis D (definiert in <activationInterval> <deactivateOnEvent>) | ||
Ereignis D[1] (definiert in <activationByGroupingKey> <deactivateOnEvent>) |
|
|
Definierte Dauer in <activationByGroupingKey> <activateOnEvent> <stopAfter> endet für Ereignis A[2] | Eine Regelinstanz mit dem Gruppierungsschlüsselwert 2 wird inaktiviert. | |
|
Definierte Zeit in <activationInterval> <activationTime> <stop> |
|
Methode deactivate() | ||
Ereignis D (definiert in <activationInterval> <deactivateOnEvent>) | ||
Ereignis D[1] (definiert in <activationByGroupingKey> <deactivateOnEvent>) |
|
|
Definierte Dauer in <activationByGroupingKey> <activateOnEvent> <stopAfter> endet für Ereignis A[2] |
|
|
|
Definierte Zeit in <activationInterval> <activationTime> <stop> |
|
Methode deactivate() | ||
Ereignis D (definiert in <activationInterval> <deactivateOnEvent>) | ||
Ereignis D[1] (definiert in <activationByGroupingKey> <deactivateOnEvent>) |
|
|
Definierte Dauer in <activationByGroupingKey> <activateOnEvent> <stopAfter> endet für Ereignis A[2] | Eine Regelinstanz mit dem Gruppierungsschlüsselwert 2 wird inaktiviert. |