ページの先頭行へ戻る
Interstage Big DataComplex Event Processing Server V1.1.0 ユーザーズガイド
FUJITSU Software

9.2.2 ルール定義ファイル

ルール定義を記述するための設定ファイル(ルール定義ファイル)について説明します。

ruleをルート要素とするXMLファイルであり、高速フィルター機能と複合イベント処理機能のルールを記述します。

ルール定義ファイルに設定する項目は以下のとおりです。

要素または属性

項目名

説明

設定可能文字
/範囲

必須
/任意

id

※rule要素の属性

開発資産ID

配備先のCEPエンジンで一意となるIDを指定します。

半角英数字、アンダースコア(_)、ハイフン(-)

※先頭のみ半角英字です。

39文字以内

必須

comment

コメント

この定義の説明を指定します。

1000文字以内

任意

filter

フィルタールール

高速フィルタールールを記述します。

マークアップの指定として解釈されるような記述がある場合は、CDATAセクション等を用いて記述します。

1048576文字以内

(*1)

statements

複合イベント処理ルール

複合イベント処理ルールを記述します。

マークアップの指定として解釈されるような記述がある場合は、CDATAセクション等を用いて記述します。

1048576文字以内

(*2)

(*1) 高速フィルタールールを記述する場合に指定します。

(*2) 複合イベント処理ルールを記述する場合に指定します。


ポイント

  • SkipChar(検索対象外として取り扱う文字列)などのフィルタールールのオプションを設定する場合は、フィルタールールの先頭に記述する必要があります。
    フィルタールールのオプションの詳細については、「開発リファレンス」の「第2章 フィルタールール言語リファレンス」を参照してください。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <rule xmlns="urn:xmlns-fujitsu-com:cspf:bdcep:v1" id="RULE_02">
    <comment>ルール定義_02</comment>
    <filter>
    <![CDATA[
    @SkipChar("\n")
    @SeparateChar("\t")
    @ANKmix(true)
    @KNJmix(true)

    on EVENTTYPE_02 {
    (中略)
    }
    ]]>
    </filter>
    </rule>
  • 文字数の許容範囲内であれば、1つのルール定義に膨大なルールを記述できますが、ルールが複雑になることで保守性・参照性が悪くなる場合があります。高速フィルター用と複合イベント処理用のルール定義をそれぞれ作成する、意味のあるまとまりでルール定義を小分けにする、などを考慮して作成してください。

注意

  • 1つのCEPエンジンに配備できるルール定義数の上限は32です。

  • 1つのCEPエンジンに複数のルール定義を配備可能ですが、依存関係のある複合イベント処理ルール(例えば、insert into句でイベントストリームを指定しているselect文と、そのイベントストリームを指定したfrom句をもつselect文)は1つのルール定義に記述してください。

  • cepgetrscコマンドを使用して開発資産の詳細表示を行う場合、フィルタールールおよび複合イベント処理ルールはCDATAセクションを使用した形式で表示されます。

参照

  • フィルタールールの記述方法など詳細については、開発リファレンス「第2章 フィルタールール言語リファレンス」を参照してください。

  • 複合イベント処理ルール記述方法など詳細については、開発リファレンス「第1章 複合イベント処理言語リファレンス」を参照してください。

記述例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rule xmlns="urn:xmlns-fujitsu-com:cspf:bdcep:v1" id="RULE_01">
<comment>ルール定義_01</comment>
<filter>
<![CDATA[
on EVENTTYPE_01 {
if ($status == 'Walking') then output() as EVENTTYPE_01;
}
]]>
</filter>
<statements>
<![CDATA[
@SoapListener('LISTEN_01')
@DebugLogListener
select * from EVENTTYPE_01 where areaID = '1010';
]]>
</statements>
</rule>

本例では、以下のルールを記述しています。


高速フィルタールール

イベントタイプEVENTTYPE_01の入力イベントからstatusの項目内容(文字列)がWalkingのイベントを抽出し、複合イベント処理に渡します。


複合イベント処理ルール

イベントタイプEVENTTYPE_01のイベントデータをSOAPリスナに通知し、同時にデバッグ情報をエンジンログに出力します。