sequenceRule エレメント

<sequenceRule> エレメントは、シーケンス・パターンに従ってルールを 定義します。シーケンス・ルールは、複数のイベント・セレクターを使用可能な唯一のルールです。 また、このルールには、少なくとも 2 つのイベント・セレクターが必要です。

属性

<sequenceRule> には、以下の属性があります。

表 1. <sequenceRule> エレメントの属性
名前 説明 データ・タイプ 必須?
name ルールを識別します。この ID は、このルールを含むルール・ブロック内で固有でなければなりません。ピリオドを含めることはできません。 xsd:NMTOKEN はい
processOnlyForwardedEvents ルールが、すべてのイベントを受信するか、他のルールから転送されたイベントのみを受信するか決定します。デフォルト値は false で、ルールが他のルールから転送されたイベントを含むすべてのイベントを受信することを示します。 xsd:boolean いいえ
到着順序 (arrivalOrder) ルールに対して <eventSelector> エレメントがコーディングされている順序でイベントが到着する必要があるかどうかを定義します。有効値は 以下のとおりです。
  • inOrder (デフォルト値)
  • randomOrder
xsd:string いいえ

到着順序 (arrivalOrder) 属性の値が randomOrder の場合、 <eventSelector> エレメントのコーディング順序が重要です。 最も具体的なイベント選択基準を指定する <eventSelector> エレメントを、 それよりも具体的でないイベント選択基準を指定する <eventSelector> エレメントに先行して コーディングする必要があります。そのようにしないと、検出されるべきシーケンスが検出されなくなります。

例えば、以下のような場合を想定します。
  • 3 つの <eventSelector> エレメントが定義されています。
  • 最初の <eventSelector> エレメントは、イベント eventA をチェックしています。
  • 2 番目の <eventSelector> エレメントは、すべてのイベントをチェックしています。
  • 3 番目の <eventSelector> エレメントは、イベント eventB をチェックしています。
  • 指定された時間枠内に、システムに対してイベント eventAeventB、および eventC が発行されます。
ルールの振る舞いは以下のようになり、検出されるべきシーケンスが検出されなくなります。
  1. 最初のイベント eventA は、最初の <eventSelector> エレメントによって 受け入れられます。
  2. 2 番目のイベント eventB は、2 番目の <eventSelector> エレメントによって 受け入れられます。
  3. 3 番目のイベント eventC は無視されます。
<eventSelector> エレメントが正しくコーディングされ、最も具体的なイベント選択基準がそれよりも具体的でないイベント選択基準よりも前にある場合を想定します。
  • 最初の <eventSelector> エレメントは、イベント eventA をチェックしています。
  • 2 番目の <eventSelector> エレメントは、イベント eventB をチェックしています。
  • 3 番目の <eventSelector> エレメントは、すべてのイベントをチェックしています。
ルールの振る舞いは以下のようになり、シーケンスが検出されます。
  1. 最初のイベント eventA は、最初の <eventSelector> エレメントによって 受け入れられます。
  2. 2 番目のイベント eventB は、2 番目の <eventSelector> エレメントによって 受け入れられます。
  3. 3 番目のイベント eventC は、3 番目の <eventSelector> エレメントによって 受け入れられます。

このエレメントを含むエレメント

<sequenceRule> は、以下のエレメントに 含まれます。

このエレメントに含まれるエレメント

<sequenceRule> には、以下のエレメントが 含まれます。

以下のエレメントは、表示されている順序でコーディングする必要があります。エレメントがオプションである場合、コーディングする必要はありませんが、コーディングするエレメントはすべて正しい順序になっている必要があります。

表 2. <sequenceRule> エレメントに含まれるエレメント
エレメント 必須/オプション
<comment> オプション。指定できるのは 0 回または 1 回です。
<variable> オプション。0 回以上指定できます。
<activationInterval> オプション。指定できるのは 0 回または 1 回です。
<lifeCycleActions> オプション。指定できるのは 0 回または 1 回です。
<eventSelector> シーケンス・ルールの場合、このエレメントを 2 回指定する必要が あります。追加の指定も可能です。
<groupingKey> オプション。指定できるのは 0 回または 1 回です。
<timeWindow> 必須。指定できるのは 1 回のみです。
<onDetection> オプション。指定できるのは 0 回または 1 回です。
<onTimeOut> オプション。指定できるのは 0 回または 1 回です。
関連概念
シーケンス・パターン