Retrieves a security log history for specified monitored objects, determines how many records are available, and specifies how to retrieve and sort the data.
java.lang.Long SUPMonitor.getSecurityLogHistoryCount(MonitoredObject monitoredObjects, accessResult, startTime, endTime) SecurityLogHistoryVO SUPMonitor.getSecurityLogHistories(MonitoredObject monitoredObjects, accessResult, startTime, endTime, offset, length, SortedField sortedField)
If successful, returns an object of the specified type (can be null). If unsuccessful, returns SUPAdminException.
// Prepare monitored objects
MonitoredCluster mc = new MonitoredCluster();
mc.addMonitoredDomain(new MonitoredDomain("default"));
mc.addMonitoredDomain(new MonitoredDomain("test"));
Collection<MonitoredObject> mos = Arrays
.asList(new MonitoredObject[] { mc });
// Prepare time range
Date startTime = new Date(0);
Date endTime = new Date();
// Should only return successful access
Boolean accessResult = true;
// Starting from 10th record
Long offset = 10L;
// Try to retrieve 10000 records
Integer target = 10000;
// Specify sorting field and sorting order
SortedField<SortedField.SECURITY_ACCESS> sf = new SortedField<SortedField.SECURITY_ACCESS>(
SECURITY_ACCESS.DOMAIN, SORT_ORDER.ASCENDING);
// See how many records are available
long count = supMonitor.getSecurityLogHistoryCount(mos, accessResult,
startTime, endTime);
long available = Math.min(count - offset, target);
if (available < 1) {
System.out.println("No monitoring data found at offset " + offset);
return;
} else {
System.out.println("There " + available
+ " records monitoring data at offset " + offset);
}
// Specify the preferred record number to be fetched from server in one
// call.
// Management server has imposed a upper limit of 500 for sake of
// performance.
Integer length = new Integer(new Long(Math.min(500, available))
.intValue());
Collection<SecurityLogHistoryVO> slhvos = supMonitor.getSecurityLogHistories(mos,
accessResult, startTime, endTime, offset, length, sf);
// All the available records can be fetched at one call.
if (slhvos.size() == available) {
System.out.println("Fetched " + available + " of " + available
+ " records of monitoring data.");
return;
}
long read = slhvos.size();
offset += read;
while (read < available) {
slhvos = supMonitor.getSecurityLogHistories(mos, accessResult,
startTime, endTime, offset, length, sf);
System.out.println("Fetched " + slhvos.size() + " of " + available
+ " records of monitoring data.");
read += slhvos.size();
offset += read;
}