6.5.3 フィルターの文法
転送設定で使用するイベントフィルターの文法を説明します。イベントフィルターを使うと,イベントIDや発行元ユーザー名などをキーにして選んだ特定のイベントだけをほかのサーバに転送できます。
- <この項の構成>
- (1) フィルターの書式
- (2) 条件文の書式
- (3) フィルターの記述例
(1) フィルターの書式
フィルターは一つ以上の「条件文群」の集まりです。条件文群は一つ以上の「条件文」の集まりです。各条件文は1行で表され,条件文を並べることで条件文群が構成されます。条件文群同士の間には「OR」とだけ記述した行を挿入します。なお,1行の最大長は1,024バイトです。一つのフィルター全体の最大長は,64キロバイトです。
条件文群は条件文群を構成する条件文がすべて成立する条件で成立します。フィルターはフィルターを構成する条件文群のどれか一つが成立する条件で成立します。
フィルターの書式の概念を次の図に示します。
図6-5 フィルターの書式の概念
![[図データ]](figure/zu050100.gif)
JP1/Base 08-50以降では,フィルターに除外条件を記述できます。
抽出条件が成立するJP1イベントのうち,特定のJP1イベントを除外したいときは除外条件が成立するようにフィルターを記述します。
抽出条件と除外条件の間には「EXCLUDE」とだけ記述した行を挿入します。「EXCLUDE」は,一つのフィルターに一つだけ記述でき,「EXCLUDE」より前に記述された条件文群は抽出条件,「EXCLUDE」より後ろに記述された条件文群は除外条件となります。除外条件に記述する条件文の書式は,抽出条件と同じです。
除外条件は省略できるため,以前のバージョンで作成したフィルターをJP1/Base 08-50以降でもそのまま使用できます。
(2) 条件文の書式
フィルターの条件文の書式について説明します。条件文の書式は次の形式で記述します。
属性名指定△比較キーワード△オペランド1△オペランド2△…
△は区切りで,一つ以上の連続した半角のスペースまたはタブを示します。オペランドとして,半角スペース,タブ,CR,LFおよび%を通常の方法では使用できませんが,次に示すように2桁の16進数で表現できます。
半角スペース:%20
タブ:%09
CR:%0d
LF:%0a
%:%25
また,半角スペース,タブ,CR,LFおよび%以外の文字も16進数で表現できます。
- 注意事項
- JP1/SES形式で登録されたイベントに日本語文字列が含まれる場合,その文字コードと条件文に指定した文字コードが一致しないと,条件に合致しません。
- 条件文に機種依存文字が含まれる場合,正しく比較できません。
(a) 属性名指定
条件文の属性名指定を次の表に示します。
表6-2 条件文の属性名指定
属性名指定 | 内 容 | 型および形式 |
---|
B.SEQNO | イベントデータベース内通し番号 | 数値(0~2,147,483,647) |
B.ID | イベントID | イベントID※1 |
B.PROCESSID | 発行元プロセスID | 数値(0~2,147,483,647) |
B.TIME | 登録時刻 | 数値 (0~2,147,483,647 =UTC1970年1月1日00:00:00からの秒数) |
B.ARRIVEDTIME | 到着時刻 | 数値 (0~2,147,483,647 =UTC1970年1月1日00:00:00からの秒数) |
B.REASON | イベントデータベースへの登録要因 | 数値(1~4) |
B.USERID | 発行元ユーザーID | 数値(-1~2,147,483,647) |
B.GROUPID | 発行元グループID | 数値(-1~2,147,483,647) |
B.USERNAME | 発行元ユーザー名 | 文字列※3 |
B.GROUPNAME | 発行元グループ名 | 文字列※3 |
B.SOURCESERVER | 発行元イベントサーバ名 | 文字列※3 |
B.DESTSERVER | 送信先イベントサーバ名 | 文字列※3 |
B.SOURCESEQNO | 発行元別通し番号 | 数値(0~2,147,483,647) |
B.CODESET | コードセット | 文字列※3 |
B.MESSAGE | メッセージ | 文字列※3 |
E.拡張属性名※2 | 拡張属性 | 文字列※3 |
- 注※1
- イベントIDは,文字列型,数値型と異なります。詳細については,「表6-3 条件文の比較キーワード」の条件内の属性値がイベントIDの場合を参照してください。
- 注※2
- 拡張属性名の形式については,「14.1.2 拡張属性」を参照してください。
- 注※3
- 文字列は,英字の大小文字を区別します。
(b) 比較キーワード
条件文の比較キーワードを次の表に示します。
表6-3 条件文の比較キーワード
比較キーワード | オペランドの数 | 条 件 |
---|
IN | 1以上 | 属性値が,オペランドのどれかと一致する。 属性値が文字列型の場合,オペランドは任意の文字列。 属性値が数値型の場合,オペランドは10進数(符号可)と見なせる文字列。そうでないオペランドは常に不一致。 属性値がイベントIDの場合,オペランドはx:yまたはx(xとyは1~8桁の16進数)の形式の文字列。xがイベントID基本部に,yがイベントID拡張部に対応。そうでないものは常に不一致。 |
NOTIN | 1以上 | 比較キーワードINの否定。 |
BEGIN | 1以上 | 属性値が文字列型であり,オペランドに指定した文字列のどれかで始まると成立。属性値が数値型またはイベントIDの場合は常に不成立。 |
RANGE | 2 | - 属性名指定が,B.TIMEまたはB.ARRIVEDTIMEの場合
- 次の条件を満たすと成立。
- 属性値が数値,または10進数(0~2,147,483,647)と見なせる文字列。
- オペランド1およびオペランド2が14桁の数字列。
- 属性値をUTC1970年1月1日00:00:00からの秒数と見なし,イベントサーバの稼働環境のタイムゾーンに基づくyyyymmddHHMMSSの形式の数字列にしたときに,オペランド1 ≦ 属性値 ≦ オペランド2であるとき。
- そのほかの属性名指定で属性値が数値型の場合
- オペランド1およびオペランド2を10進数と見なしたときに,オペランド1 ≦ 属性値 ≦ オペランド2であると成立。
- 属性値が文字列型の場合
- 文字コード順の比較で,オペランド1 ≦ 属性値 ≦ オペランド2であると成立。
- 属性値がイベントIDの場合
- オペランド1およびオペランド2がx:y(xとyは1~8桁の16進数)の形式の文字列で,y(拡張部)を上8桁,x(基本部)を下8桁の計16桁の16進数と見なした時にオペランド1 ≦ 属性値 ≦ オペランド2であると成立。
以上のどれでもない場合は不成立。 |
TRANGE | 2 | 次の条件を満たすと成立する。
- 属性値が数値,または10進数(0~2,147,483,647)と見なせる文字列。
- オペランド1およびオペランド2が14桁の数字列。
- 属性値をUTC1970年1月1日00:00:00からの秒数と見なし,イベントサーバの稼働環境のタイムゾーンに基づくyyyymmddHHMMSSの形式の数字列にした場合に,オペランド1 ≦ 属性値 ≦ オペランド2であるとき。
以上の場合でないときは不成立。 |
DEFINED | 0 | 属性名指定が拡張属性名を表し,指定の拡張属性が定義されていると成立。定義されていないと不成立。属性名指定が基本属性を表す場合は常に成立。 |
NOTDEFINED | 0 | 比較キーワードDEFINEDの否定。 |
SUBSTR | 1以上 | 属性値が文字列型であり,オペランドに指定した文字列のどれかが含まれていると成立。 属性値が数値型,またはイベントIDの場合は常に不成立。 |
NOTSUBSTR | 1以上 | 比較キーワードSUBSTRの否定。 |
REGEX※1 | 1以上 | 正規表現記述用比較キーワード。 属性値が文字列型であり,オペランドに指定した正規表現のどれかと一致すると成立。 正規表現については「付録F 正規表現の文法」を参照のこと。 |
WITHIN※2 | 2 | - 属性名指定が,B.TIMEまたはB.ARRIVEDTIMEの場合
- 次の条件を満たすと成立。
- 属性値が数値,または10進数(1~2,147,483,647)と見なせる文字列。
- オペランド1がM(分),H(時間),D(日)のどれかの文字列。
- オペランド2が10進数(符号不可)と見なせる文字列。
- オペランド1がM(分)およびH(時間)の場合
属性値をUTC1970年1月1日00:00:00からの秒数と見なし,イベントサーバの稼働環境のタイムゾーンに基づくyyyymmddHHMMSSの形式の数字列にしたときに,(現在時刻-オペランド2)≦属性値≦現在時刻 であるとき。
- オペランド1がD(日)の場合
属性値をUTC1970年1月1日00:00:00からの秒数と見なし,イベントサーバの稼働環境のタイムゾーンに基づくyyyymmddHHMMSSの形式の数字列にしたときに,[今日の日付-(オペランド2-1)]の00:00:00≦属性値≦今日の日付の24:59:59であるとき
|
注※1 REGEXは06-71から追加された比較キーワードです。このため,06-71以降のJP1/Base以外でREGEXを定義したファイルを利用した場合,REGEXの定義部分は無視されます。なお,機種依存文字を正規表現に指定した場合でも通常文字列と同様に処理されます。
注※2 WITHINは07-00から追加された比較キーワードです。jevexportコマンドで指定するフィルターファイルでだけ指定できます。このため,07-00以降のJP1/Baseで提供するjevexportコマンド以外でWITHINを定義したファイルを利用した場合,WITHINの定義がエラーとなり,06-71以前と同じ動作となります。
(3) フィルターの記述例
フィルターの記述例を示します。
- イベントIDが基本部111,拡張部0のJP1イベントを選択します。
- B.ID IN 111:0
- または
- B.ID IN 111
- または
- B.ID IN 00000111:00000000
- 発行元ユーザーIDが103のJP1イベントを選択します。
- B.USERID IN 103
- または
- B.USERID RANGE 103 103
- 発行元イベントサーバ名がreysolのJP1イベントを選択します。
- B.SOURCESERVER IN reysol
- メッセージがKAJPまたはKAVAで始まるJP1イベントを選択します。
- B.MESSAGE BEGIN KAJP KAVA
- メッセージがHello, worldで始まるJP1イベントを選択します。なお,「,」と「w」の間の%20はスペースを示します。
- B.MESSAGE BEGIN Hello,%20world
- イベントIDが222:0以外で,かつ発行元ユーザー名がhanakoのJP1イベントを選択します。
- B.ID NOTIN 222
- B.USERNAME IN hanako
- 拡張属性の属性名がTASK_NAMEで,その値が「在庫管理」のJP1イベントを選択します。
- E.TASK_NAME IN 在庫管理
- 属性名がTASK_NAMEの拡張属性が設定(値は問わない)されているJP1イベントを選択します。
- E.TASK_NAME DEFINED
- 2002年6月16日※以降に発生したJP1イベントを選択します。
- B.TIME TRANGE 20020616000000 99999999999999
- 次に示すJP1イベントを選択します。
- 拡張属性SEVERITYがWarningまたはErrorかつ拡張属性PRODUCT_NAMEが定義されているJP1イベント
- 発生元イベントサーバがwww.hitachi.co.jpでかつ拡張属性PRODUCT_NAMEが /HITACHI/JP1/AJSであるJP1イベント
- E.SEVERITY IN Warning Error
- E.PRODUCT_NAME DEFINED
- OR
- B.SOURCESERVER IN www.hitachi.co.jp
- E.PRODUCT_NAME IN /HITACHI/JP1/AJS
- 現在時刻(2003年7月16日01:30:00)※の30分前から現在までに発生したJP1イベントを選択します。
- B.TIME WITHIN M 30
- (B.TIME TRANGE 20030716013000 20030716010000 と同意)
- 現在時刻(2003年7月16日01:21:21)※の24時間前から現在までに発生したJP1イベントを選択します。
- B.TIME WITHIN H 24
- (B.TIME TRANGE 20030715012121 20030716012121と同意)
- 今日(2003年7月16日)※を含めた二日間に発生したJP1イベントを選択します。
- B.TIME WITHIN D 2
- (B.TIME TRANGE 20030715000000 20030716235959と同意)
注※ イベントサーバ環境での時刻を基にしています。
- イベントIDが101,102または重大度がエラーのJP1イベントを選択します。ただし,登録元イベントサーバ名がhost3のJP1イベントは除外します。
- B.ID IN 101 102
- OR
- E.SEVERITY IN Error
- EXCLUDE
- B.SOURCESERVER IN host3