イベントが存在しているかどうかを、そのイベントを取得することなく判別できます。
このタスクを実行する理由と時期
状況によっては、現実にイベントをリトリーブすること
なく、特定のイベント・グループ内にイベントが存在するかどうかを検索し
たい場合があります。
この場合は、イベント・アクセス Bean の eventExists() メソッドを使用します。
このタスクのステップ
- イベント・アクセス Bean を作成する必要がある場合は、イベント・アクセス Bean の作成を参照してください。
- EventAccess Bean の eventExists(String, String) メソッドを呼び出します。
boolean hasEvents = eventAccess.eventExists(eventGroup,
eventSelector);
このメソッドのパラメーターは、以下のとおりです。
- eventGroup
- イベント・グループの名前を含む文字列。このイベント・グループ内にイベントが存在しているかどうかチェックされます。これは、イベント・インフラストラクチャー構成で定義されている
既存のイベント・グループの名前である必要があります。
- eventSelector
- 照会を詳細化するイベント・セレクターを含む文字列 (オプション)。この照会を行うと、指定したイベント・グループと追加のイベント・セレクターの両方にマッチするイベントのみチェックされます。 イベント・セレクターは、XPath 式の形式で指定されています (詳しくは、イベント・セレクターの書き込みを参照してください)。
追加のイベント・セレクターを指定しない場合は、このパラメーターをヌルにします。
結果
戻されたブール・オブジェクトは、指定したイベント・グループおよびイベント・セレクターと一致するイベントが存在すれば、
true に等しく、存在しなければ、
false に等しくなります。
以下のコードの断片は、
critical_hosts という名前のイベント・グループ内にイベントが存在しているかどうかチェックし、存在している場合はそのイベントを取得します。
if (eventAccess.eventExists("critical_hosts",null)) {
CommonBaseEvent[] events =
eventAccess.queryByEventGroup("critical_hosts",
null,
true);
}