您可以從事件群組中查詢有限數目的事件。
執行這項作業的原因和時機
要從事件群組中查詢有限數目的事件,請使用 EventAccess Bean 的 queryEventsByEventGroup(String, String, Boolean, int) 方法。
這項作業的步驟
- 如果您需要建立 Event Access Bean,請參閱建立事件存取 Bean。
- 呼叫 EventAccess.queryEventsByEventGroup(String, String, boolean,
int) 方法。
CommonBaseEvent[] events = eventAccess.queryEventsByEventGroup(eventGroup,
eventSelector,
ascendingOrder,
maxEvents);
這個方法的參數如下:
- eventGroup
- 這個字串含有您要查詢其中之事件的事件群組名稱。這必須是事件基礎架構配置中所定義之現有事件群組的名稱。
- eventSelector
- 這個字串含有進一步精確設定查詢的選用事件選取器。查詢只會傳回符合指定事件群組和其他事件選取器兩者的事件。事件選取器是以 XPath 表示式的格式來指定(如需詳細資訊,請參閱撰寫事件選取器)。
如果您不要指定其他的事件選取器,這個參數可以是空值。
- ascendingOrder
- 這是一個 Boolean 值,其指定傳回的事件是要根據 creationTime 內容值的遞增或遞減順序來排序。如果這個參數是 true,就依遞增(依時間順序)順序來排序事件;
如果是 false,就依遞減(依反向時間順序)順序來排序事件。
- maxEvents
- 這個整數會指定您要傳回的事件數目上限。
傳回的物件是一個陣列,其中含有指定事件群組中的事件。
註: 如果相符的事件數超出資料儲存庫設定檔中所定義的查詢臨界值,
則會擲出 QueryThresholdExceededException 異常狀況。預設查詢臨界值是 100 000。
範例
下列程式碼片段會傳回所有屬於名稱為
critical_hosts 的事件群組,且嚴重性大於 30(警告)的事件;
但指定傳回的相符事件不應超過 5000 個:
CommonBaseEvent[] events =
eventAccess.queryByEventGroup("critical_hosts",
"CommonBaseEvent[@severity > 30]",
true,
5000);