要从一个事件组查询所有事件,请使用 EventAccess bean 的 queryEventsByEventGroup(String, String, boolean) 方法。
执行此任务的目的和时间
完成此任务需要执行的步骤
- 如果需要创建事件访问 bean,请参阅创建事件访问 bean。
- 调用 EventAccess.queryEventsByEventGroup(String, String, boolean) 方法。
CommonBaseEvent[] events = eventAccess.queryEventsByEventGroup(eventGroup,
eventSelector,
ascendingOrder);
此方法的参数如下:
- eventGroup
- 这个字符串包含要从中查询事件的事件组的名称。此名称必须是事件基础结构配置中定义的现有事件组的名称。
- eventSelector
- 这个字符串包含进一步优化查询的可选事件选择器。查询将返回同时与指定事件组和附加事件选择器相匹配的事件。事件选择器是以 XPath 表达式的形式指定的(有关更多信息,请参阅编写事件选择器)。
如果不希望指定其他事件选择器,此参数可以为空。
- ascendingOrder
- 这个布尔值指定是根据 creationTime 属性的值的升序还是降序对返回的事件进行排序。如果此参数为
true,则按升序(时间顺序)对事件进行排序;如果为 false,则按降序(逆向时间顺序)对事件进行排序。
返回对象是一个数组,其中包含来自指定事件组的多个事件。
注: 如果匹配事件的数目超出数据存储概要文件中定义的查询阈值,将抛出
QueryThresholdExceededException 异常。缺省查询阈值为 100 000。
示例
以下代码段返回属于名为
critical_hosts
的事件组且严重性高于 30(警告)的所有事件:
CommonBaseEvent[] events =
eventAccess.queryByEventGroup("critical_hosts",
"CommonBaseEvent[@severity > 30]",
true);