Ciclo di vita di una regola

Ogni fase del ciclo di vita di una regola può avere più cause ed effetti. Scrivendo e includendo le espressioni nelle azioni attinenti al ciclo di vita (come definito dall'elemento <lifeCycleActions>), un programma di scrittura di regole può definire le azioni da intraprendere in ogni fase.

Fasi del ciclo di vita di una regola

Di seguito vengono riportate le quattro fasi principali del ciclo di vita di una regola:
Caricamento
Il caricamento di una regola nell'engine dell'Active Correlation Technology in esecuzione, che innesca le azioni all'interno dell'elemento <onLoad>.
Attivazione
L'attivazione di una regola, che innesca le azioni all'interno dell'elemento <onActivation>.
Disattivazione
La disattivazione di una regola, che innesca le azioni all'interno dell'elemento <onDeactivation>.
Scaricamento
Lo scaricamento di una regola dall'engine Active Correlation Technology in esecuzione, che innesca le azioni all'interno dell'elemento <onUnload>.

Le fasi di attivazione e disattivazione possono verificarsi più volte nel ciclo di vita di una regola, ma le fasi di caricamento e scaricamento si verificano una sola volta.

In genere non è necessario definire le azioni attinenti al ciclo di vita. Di seguito vengono riportati esempi di definizione di un'azione attinente al ciclo di vita:
  • Quando viene caricata una certa regola, è possibile creare una connessione ad un sistema esterno (come il gestore database) a cui accedere all'interno della regola. Quando questa stessa regola viene scaricata, la connessione viene chiusa e vengono eseguiti tutti i necessari processi di pulizia.
  • Quando viene attivata una certa regola, è possibile verificare che certe risorse siano disponibili in quella regola.
  • Quando una regola di soglia viene disattivata ma la soglia non è stata raggiunta e il periodo di tempo non è ancora finito, è possibile inoltrare un messaggio a qualcuno con queste informazioni.
Poiché l'attivazione e la disattivazione di una regola può verificarsi molte volte nel ciclo di vita, tutte le azioni codificate per queste fasi possono essere eseguite di frequente.

Cause ed effetti di ogni fase del ciclo di vita

La Tabella 1 riporta le cause e gli effetti di ogni fase del ciclo di vita.

Tabella 1. Cause ed effetti di ogni fase del ciclo di vita
Fase di durata Cause Effetti
Caricamento Ognuna delle seguenti circostanze:
  • Una regola o un blocco di regole viene aggiunto o sostituito, il che provoca il caricamento di altre regole.
  • La serie di regole viene sostituita nell'engine dell'Active Correlation Technology, che causa il caricamento delle regole nella nuova serie di regole.
Vengono eseguite le azioni nell'elemento <onLoad>.
Attivazione La regola viene attivata. Una regola può essere attivata in uno dei seguenti modi:
  • In base alle definizioni dell'elemento <activationInterval>
  • Tramite il metodo activate() disponibile con la variabile act_lib
  • Tramite le chiamate di applicazione al metodo activate() nell'engine dell'Active Correlation Technology
Se la regola non è attiva, vengono eseguite le azioni nell'elemento <onActivation>.
Disattivazione La regola viene disattivata. Una regola può essere disattivata in uno dei seguenti modi:
  • In base alle definizioni dell'elemento <activationInterval> tranne che per l'elemento <deactivateOnEvent> nell'elemento <activationByGroupingKey> che non causa la disattivazione
  • Tramite il metodo deactivate() disponibile con la variabile act_lib
  • Tramite le chiamate di applicazione al metodo deactivate() nell'engine dell'Active Correlation Technology
Se la regola è attiva, vengono eseguite le azioni nell'elemento <onDeactivation>.
Scaricamento Ognuna delle seguenti circostanze:
  • l'engine dell'Active Correlation Technology viene chiuso il che provoca lo scaricamento delle regole.
  • Una regola o un blocco di regole viene rimosso o sostituito, il che provoca lo scaricamento di vecchie regole.
  • La serie di regole viene rimossa o sostituita nell'engine dell'Active Correlation Technology, che causa lo scaricamento delle regole dalla vecchia serie di regole.
Se la regola è attiva, vengono eseguite le azioni nell'elemento <onDeactivation>, seguite dalle azioni nell'elemento <onUnload>. In caso contrario vengono eseguite solo le azioni nell'elemento <onUnload>.