変数

ルール言語では、特定の変数を使用して、さまざまなイベントの発生や ルール間でイベント関連の情報を保管します。そして、このイベント関連の 情報に、ルール内の式からアクセスできます。ルール・ライターが 定義するタイプの変数と、Active Correlation Technology によって 提供されるタイプの変数があります。式の中で直接アクセスできる タイプと、Active Correlation Technology によって提供されるメソッドを介してのみ アクセスできるタイプがあります。

<variable> エレメント内で定義され、メソッドを介してアクセスされる変数

ルール、ルール・ブロック、またはルール・セットの <variable> エレメントで変数を定義できます。これにより、以下のいずれかのメソッドを使用して、式の中でこの変数にアクセスできます。
  • getVariable() メソッドまたは getjavatypeVariable() メソッドの 1 つ
  • setVariable() メソッドまたは setjavatypeVariable() メソッドの 1 つ
例えば、ルールの <variable> エレメントで rule_writer_variable 変数を定義した場合、以下のコードを使用してこの変数にアクセスできます。
int sample_variable = act_lib.getIntVariable("rule_writer_variable");

Active Correlation Technology によって提供され、式の中で直接アクセスされる変数

以下の変数は、Active Correlation Technology によって提供されています。 これらの変数は式の中でインラインで使用できます。
  • act_event
  • act_eventList
  • act_lib
例えば、以下のコードを使用して act_event 変数にアクセスし、イベントの hostname 属性を取得できます。
act_event.getAttribute("hostname");

Active Correlation Technology によって提供され、メソッドを介してアクセスされる変数

以下の変数は、Active Correlation Technology によって提供されています。 getVariable() メソッドまたは getjavatypeVariable() メソッドの 1 つを使用して、式の中でこれらの変数にアクセスできます。
  • act_eventCount
  • act_location
  • act_nodeName
  • act_threshold
例えば、以下のコードを使用して、act_eventCount 変数にアクセスできます。
int eventcount_integer = act_lib.getIntVariable(IACTLibrary.EVENTCOUNT);
表 1 に、IACTLibrary インターフェースがこれらの変数に対して提供する定数を示します。コードにミススペルやタイプミスがある場合、実行時ではなくコンパイル時に検出されるようにするには、常に変数自体ではなく、それらの変数を表す定数を使用するようにしてください。例えば、act_lib.getIntVariable("act_eventCount"); ではなく act_lib.getIntVariable(IACTLibrary.EVENTCOUNT); を使用してください。
表 1. 変数および関連する定数
変数 関連する定数
act_eventCount EVENTCOUNT
act_location LOCATION
act_nodeName NODENAME
act_threshold THRESHOLD
関連資料
variable エレメント