El elemento <activationByGroupingKey> contiene elementos que especifican los sucesos que pueden activar y desactivar una instancia de regla definida por el elemento <groupingKey>.Como el elemento <groupingKey> no es válido para las reglas de filtro y de temporizador, el elemento <activationByGroupingKey> no se aplica a estas reglas.
La función que proporciona el elemento <activationByGroupingKey> se utiliza en reglas donde se define una clave de agrupación. Le permite controlar la activación y desactivación de las instancias de reglas basándose en la clave de agrupación. Cuando codifica un elemento <activationByGroupingKey>, cada instancia de regla puede ser activada o desactivada individualmente según las condiciones <activateOnEvent> y <deactivateOnEvent> dentro de <activationByGroupingKey>.
El siguiente ejemplo ilustra el uso del elemento <activationByGroupingKey> dentro de una regla de cálculo.
<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> no tiene atributos.
<activationByGroupingKey> contiene los siguientes elementos.
Los elementos deben ser codificados en el orden que se muestra. Si un elemento es opcional, no es necesario que se codifique, pero todos los elementos que se codifiquen deben seguir el orden correcto.
Elemento | ¿Obligatorio u opcional? |
---|---|
<activateOnEvent> | Opcional. Se permiten 0 o 1 ocurrencias. |
<deactivateOnEvent> | Opcional. Se permiten 0 o 1 ocurrencias. |
El comportamiento de una regla puede variar según la actividad de la regla y las interacciones entre las definiciones de <activateOnEvent> y <deactivateOnEvent> dentro de los elementos <activationInterval> y <activationByGroupingKey>. El siguiente ejemplo ilustra cómo pueden interactuar estas definiciones.
En este ejemplo, se ha definido una regla de duplicación para suprimir sucesos procedentes de sistemas que están en modo de mantenimiento y proporcionar, al final del periodo de mantenimiento, un informe de resumen del número de sucesos que se han suprimido.
Por defecto, una regla en la que se define una clave de agrupación permite procesar todos los valores de la clave de agrupación. Por lo tanto, cuando los sucesos cumplen los criterios de selección para la regla, todas las instancias de regla están activas y preparadas para aceptar estos sucesos según algún valor de la clave de agrupación. El intervalo de activación para la regla es el mismo que sería si la regla no tuviera una clave de agrupación porque, esencialmente, todos los sucesos que cumplen los criterios de selección para la regla se procesan.
<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>
En ciertas situaciones, puede desear controlar qué instancias de regla se activan y cuándo. Para estas situaciones, debe codificar el elemento <activationByGroupingKey>.
<activationByGroupingKey> <activateOnEvent> <eventType type="StartMaintenanceMode"/> <stopAfter duration="PT2H" unit="ISO-8601"/> </activateOnEvent> <deactivateOnEvent> <eventType type="StopMaintenanceMode"/> </deactivateOnEvent> </activationByGroupingKey>
Estado inicial de la regla | El estado de la regla se ve potencialmente afectado por | Estado final de la regla |
---|---|---|
Inactiva | Tiempo/Hora definido/a en <activationInterval> <activationTime> <start> |
|
método activate() | ||
Suceso A, definido en <activationInterval> <activateOnEvent> | ||
Suceso A[1], definido en <activationByGroupingKey> <activateOnEvent> (sin <stopAfter>) |
|
|
Suceso A[2], definido en <activateOnEvent> (con <stopAfter>) |
|
|
|
Tiempo/Hora definido/a en <activationInterval> <activationTime> <start> | No se ha producido ningún cambio en el estado de la regla. Es el mismo que el estado inicial. |
método activate() | ||
Suceso A, definido en <activationInterval> <activateOnEvent> | ||
Suceso A[1], definido en <activationByGroupingKey> <activateOnEvent> (sin <stopAfter>) | ||
Suceso A[2], definido en <activateOnEvent> (con <stopAfter>) | ||
|
Tiempo/Hora definido/a en <activationInterval> <activationTime> <start> | No se ha producido ningún cambio en el estado de la regla. Es el mismo que el estado inicial. |
método activate() | ||
Suceso A, definido en <activationInterval> <activateOnEvent> | Se permiten todos los valores de la clave de agrupación. | |
Suceso A[1], definido en <activationByGroupingKey> <activateOnEvent> (sin <stopAfter>) |
|
|
Suceso A[2], definido en <activateOnEvent> (con <stopAfter>) |
|
|
|
Tiempo/Hora definido/a en <activationInterval> <activationTime> <start> | No se ha producido ningún cambio en el estado de la regla. Es el mismo que el estado inicial. |
método activate() | ||
Suceso A, definido en <activationInterval> <activateOnEvent> | Se permiten todos los valores de la clave de agrupación. | |
Suceso A[1], definido en <activationByGroupingKey> <activateOnEvent> (sin <stopAfter>) | Ahora se permite el valor de clave de agrupación 1, además de los valores de clave de agrupación que ya se permitían antes. | |
Suceso A[2], definido en <activateOnEvent> (con <stopAfter>) | Ahora se permite el valor de clave de agrupación 2, además de los valores de clave de agrupación que ya se permitían antes. |
Estado inicial de la regla | El estado de la regla se ve potencialmente afectado por | Estado final de la regla |
---|---|---|
Inactiva | Tiempo/Hora definido/a en <activationInterval> <activationTime> <stop> | No se ha producido ningún cambio en el estado de la regla. Es el mismo que el estado inicial. |
método deactivate() | ||
Suceso D, definido en <activationInterval> <deactivateOnEvent> | ||
Suceso D[1], definido en <activationByGroupingKey> <deactivateOnEvent> | ||
La duración definida en <activationByGroupingKey> <activateOnEvent> <stopAfter> termina para el suceso A[2] | ||
|
Tiempo/Hora definido/a en <activationInterval> <activationTime> <stop> |
|
método deactivate() | ||
Suceso D, definido en <activationInterval> <deactivateOnEvent> | ||
Suceso D[1], definido en <activationByGroupingKey> <deactivateOnEvent> |
|
|
La duración definida en <activationByGroupingKey> <activateOnEvent> <stopAfter> termina para el suceso A[2] | Se desactiva la instancia de regla con el valor de clave de agrupación 2. | |
|
Tiempo/Hora definido/a en <activationInterval> <activationTime> <stop> |
|
método deactivate() | ||
Suceso D, definido en <activationInterval> <deactivateOnEvent> | ||
Suceso D[1], definido en <activationByGroupingKey> <deactivateOnEvent> |
|
|
La duración definida en <activationByGroupingKey> <activateOnEvent> <stopAfter> termina para el suceso A[2] |
|
|
|
Tiempo/Hora definido/a en <activationInterval> <activationTime> <stop> |
|
método deactivate() | ||
Suceso D, definido en <activationInterval> <deactivateOnEvent> | ||
Suceso D[1], definido en <activationByGroupingKey> <deactivateOnEvent> |
|
|
La duración definida en <activationByGroupingKey> <activateOnEvent> <stopAfter> termina para el suceso A[2] | Se desactiva la instancia de regla con el valor de clave de agrupación 2. |