È possibile interrogare un numero limitato di eventi da un gruppo eventi.
Perché e quando eseguire questa attività
Per interrogare un numero limitato di eventi in un gruppo, utilizzare il metodo queryEventsByEventGroup(String, String, Boolean, int) del bean EventAccess.
Passi per questa attività
- Se si deve creare un bean Event Access, consultare Creazione di un bean Event Access.
- Richiamare il metodo EventAccess.queryEventsByEventGroup(String, String, boolean,
int).
CommonBaseEvent[] events = eventAccess.queryEventsByEventGroup(eventGroup,
eventSelector,
ascendingOrder,
maxEvents);
I parametri di questo metodo sono i seguenti:
- eventGroup
- Una stringa contenente il nome del gruppo eventi da cui si desidera interrogare gli eventi. Questo deve essere il nome di un gruppo eventi esistente definito nella configurazione di Event Infrastructure.
- eventSelector
- Una stringa contenente un selettore eventi facoltativo per perfezionare ulteriormente la query. La query restituisce solo gli eventi che corrispondono sia al gruppo eventi specificato che al selettore eventi aggiuntivo. Un selettore eventi viene specificato nel formato di un'espressione XPath (per ulteriori informazioni, consultare Scrittura di selettori eventi).
Se non si desidera specificare un selettore eventi aggiuntivo, questo parametro può essere null.
- ascendingOrder
- Un valore booleano che specifica se gli eventi restituiti devono essere ordinati in ordine crescente o decrescente a seconda del valore della proprietà creationTime. Se questo parametro è true, gli eventi vengono ordinati in modo crescente (cronologico); se è false, vengono ordinati in modo decrescente (cronologico inverso).
- maxEvents
- Un numero intero che specifica il numero massimo di eventi che si desidera venga restituito.
L'oggetto restituito è un array contenente gli eventi dal gruppo eventi specificato.
Nota: se il numero
degli eventi corrispondenti supera la soglia query definita nel profilo dell'archivio dati, viene generata un'eccezione QueryThresholdExceededException. La soglia query predefinita è 100 000.
Esempio
Il seguente frammento di codice restituisce tutti gli eventi che appartengono ad un gruppo eventi denominato
critical_hosts e la cui gravità è maggiore di 30 (avvertenza) ma specifica che non devono essere restituiti più di 5000 eventi corrispondenti:
CommonBaseEvent[] events =
eventAccess.queryByEventGroup("critical_hosts",
"CommonBaseEvent[@severity > 30]",
true,
5000);