ルールのライフ・サイクル

ルールのライフ・サイクル内の各ステージには、複数の原因と結果が ある可能性があります。式を記述し、(<lifeCycleActions> エレメントによって定義されるように) ライフ・サイクル・アクションにその式を含めることにより、ルール・ライターは、 各ステージで実行するアクションを定義できます。

ルールのライフ・サイクル内のステージ

以下に、ルールの ライフ・サイクル内の 4 つの基本ステージを示します。
ロード
実行中の Active Correlation Technology エンジンへのルールのロード。 これにより、<onLoad> エレメント内のアクションがトリガーされます。
アクティブ化
ルールのアクティブ化。これにより、<onActivation> エレメント内のアクションが トリガーされます。
非アクティブ化
ルールの非アクティブ化。これにより、<onDeactivation> エレメント内のアクションが トリガーされます。
アンロード
実行中の Active Correlation Technology エンジンからのルールのアンロード。 これにより、<onUnload> エレメント内のアクションがトリガーされます。

アクティブ化および非アクティブ化ステージは、1 つのルールのライフ・サイクル において複数回発生する可能性がありますが、ロードおよびアンロード・ステージは 1 回のみ 発生します。

通常、ライフ・サイクル・アクションを定義する必要はありません。特定の ライフ・サイクル・アクションを定義する必要がある場合の例を、以下に示します。
  • 特定のルールのロード時に、そのルール内でアクセスする必要のある 外部システム (データベース・マネージャーなど) への接続を作成する 必要がある場合があります。この同じルールのアンロード時に、接続を除去し、 必要なクリーンアップ処理を実行する必要がある場合があります。
  • 特定のルールのアクティブ化時に、そのルールで特定のリソースが使用可能であることを 検証する必要がある場合があります。
  • しきい値ルールが、しきい値にまだ達していない状態で非アクティブ化され、 指定された期間がまだ終了していない場合、特定のユーザーにこの情報を含むメッセージを転送する 必要があるかもしれません。
ルールのアクティブ化および非アクティブ化はライフ・サイクルにおいて多数回発生する可能性があるため、 これらのステージについてコーディングするアクションは頻繁に実行される可能性があります。

各ライフ・サイクル・ステージの原因と結果

表 1 に、 各ライフ・サイクル・ステージの原因と結果をリストします。

表 1. 各ライフ・サイクル・ステージの原因と結果
ライフ・サイクル・ステージ 原因 結果
ロード 以下のいずれかの状況:
  • ルールまたはルール・ブロックが追加または置き換えられ、その結果 新規ルール (1 つ以上) がロードされた。
  • Active Correlation Technology エンジンでルール・セットが置き換えられ、その結果 新規ルール・セット内のルールがロードされた。
<onLoad> エレメント内のアクションが実行される。
アクティブ化 ルールはアクティブ化されます。ルールは、以下のいずれかの方法で アクティブ化できます。
  • <activationInterval> エレメント内の定義に従う
  • act_lib 変数を介して使用可能な activate() メソッドを使用する
  • Active Correlation Technology エンジン内の activate() メソッドのアプリケーション呼び出しを 使用する
ルールが非アクティブである場合、<onActivation> エレメント内のアクションが 実行されます。
非アクティブ化 ルールは非アクティブ化されます。ルールは、以下のいずれかの方法で 非アクティブ化できます。
  • <activationInterval> エレメント内の定義に従う。 例外として、<activationByGroupingKey> エレメント内で <deactivateOnEvent> エレメントが指定されている場合、 ルールの非アクティブ化は発生しません。
  • act_lib 変数を介して使用可能な deactivate() メソッドを 使用する
  • Active Correlation Technology エンジン内の deactivate() メソッドのアプリケーション呼び出しを 使用する
ルールがアクティブな場合、<onDeactivation> エレメント内のアクションが 実行されます。
アンロード 以下のいずれかの状況:
  • Active Correlation Technology エンジンがシャットダウンし、その結果ルールが アンロードされた。
  • ルールまたはルール・ブロックが除去または置き換えられ、その結果 古いルール (1 つ以上) がアンロードされた。
  • Active Correlation Technology エンジンでルール・セットが除去または置き換えられ、 その結果古いルール・セット内のルールがアンロードされた。
ルールがアクティブな場合、<onDeactivation> エレメント内のアクションが 実行され、その後 <onUnload> エレメント内のアクションが実行されます。そうでない場合、 <onUnload> エレメント内のアクションのみが実行されます。