El ciclo de vida de una regla

Cada fase del ciclo de vida de una regla puede tener múltiples causas y efectos. Escribiendo e incluyendo expresiones dentro de las acciones de ciclo de vida (como se define en el elemento <lifeCycleActions>), un creador de reglas puede definir las acciones a realizar en cada fase.

Fases del ciclo de vida de una regla

A continuación se describen las fases principales del ciclo de vida de una regla:
Carga
La carga de la regla en el motor de Active Correlation Technology en ejecución, que desencadena las acciones contenidas en el elemento <onLoad>.
Activación
La activación de la regla, que desencadena las acciones contenidas en el elemento <onActivation>.
Desactivación
La desactivación de la regla, que desencadena las acciones contenidas en el elemento <onDeactivation>.
Descarga
La descarga de la regla en el motor de Active Correlation Technology en ejecución, que desencadena las acciones contenidas en el elemento <onUnload>.

Las fases de activación y desactivación pueden darse varias veces durante el ciclo de vida de una regla, pero las fases de carga y descarga tienen lugar sólo una vez.

Normalmente, no será necesario necesario definir acciones de ciclo de vida. A continuación se muestran algunos ejemplos de ocasiones en las que puede desear definir una acción de ciclo de vida específica:
  • Cuando se carga una regla, puede desear crear una conexión a un sistema externo (como un gestor de bases de datos) al cual debe accederse desde dentro de la regla. Y cuando se descarga esa regla, puede desear soltar la conexión y ejecutar los procesos de limpieza que considere necesarios.
  • Cuando se activa una regla, puede desear verificar que algunos recursos específicos están disponibles para esa regla.
  • Cuando se desactiva una regla de umbral pero no se ha llegado al umbral y no ha terminado el periodo de tiempo, puede desear enviar un mensaje a alguien con esta información.
Dado que la activación y la desactivación de la regla pueden darse varias veces durante el ciclo de vida de una regla, las acciones que codifique para estas fases pueden ejecutarse frecuentemente.

Causas y efectos de cada fase del ciclo de vida

Tabla 1 enumera las causas y efectos de cada fase del ciclo de vida.

Tabla 1. Causas y efectos de cada fase del ciclo de vida
Fase del ciclo de vida Causas Efectos
Carga Cualquiera de las siguientes circunstancias:
  • Se añade o se sustituye una regla o bloque de reglas, lo cual causa que se cargue la nueva regla o las nuevas reglas.
  • Se sustituye el conjunto de reglas en el motor de Active Correlation Technology, lo cual causa que se carguen las reglas del nuevo conjunto de reglas.
Se ejecutan las acciones dentro del elemento <onLoad>.
Activación Se activa la regla. Una regla se puede activar de cualquiera de las siguientes formas:
  • Según las definiciones del elemento <activationInterval>
  • Con el método activate() disponible a través de la variable act_lib
  • Con llamadas de aplicación al método activate() en el motor de Active Correlation Technology
Si la regla estaba inactiva, se ejecutan las acciones dentro del elemento <onActivation>.
Desactivación Se desactiva la regla. Una regla se puede desactivar de cualquiera de las siguientes formas:
  • Según las definiciones del elemento <activationInterval>, con la excepción de que el elemento <deactivateOnEvent> dentro del elemento <activationByGroupingKey> no causa la desactivación de una regla
  • Con el método deactivate() disponible a través de la variable act_lib
  • Con llamadas de aplicación al método deactivate() en el motor de Active Correlation Technology
Si la regla estaba activa, se ejecutan las acciones dentro del elemento <onDeactivation>.
Descarga Cualquiera de las siguientes circunstancias:
  • Concluye el motor de Active Correlation Technology, provocando la descarga de las reglas.
  • Se añade o se sustituye una regla o bloque de reglas, haciendo que se descarguen la regla o reglas anteriores.
  • Se elimina o se sustituye el conjunto de reglas en el motor de Active Correlation Technology, haciendo que se descarguen las reglas del anterior conjunto de reglas.
Si la regla estaba activa, se ejecutan las acciones dentro del elemento <onDeactivation>, seguidas de las acciones dentro del elemento <onUnload>. De lo contrario, se ejecutan únicamente las acciones del elemento <onUnload>.