this.server = server;
}
protected void summarizeHourly(BAMCalendar loHour, BAMCalendar hiHour) {
try {
SummaryPersistenceManager spm = SummaryPersistenceManager.getInstance();
HourDimension hd = spm.getHourDimension(loHour);
if (hd == null) {
spm.addHourDimension(loHour);
hd = spm.getHourDimension(loHour);
}
SummaryStatistic stat = spm.getServiceStatHourlySummary(this.getService().getId(), loHour, hiHour);
if (stat != null) {
stat.setTypeId(this.getService().getId());
stat.setTimeDimensionId(hd.getId());
SummaryPersistenceManager.getInstance().addServiceStatHourlySummary(stat);
}
TimeRange retention = BAMPersistenceManager.getPersistenceManager(BAMUtil.getRegistry()).getDataRetentionPeriod();
// do not delete anything if the retention period specified is 0.
if (retention.getValue() != 0) {
BAMCalendar delLoHour = BAMCalendar.getInstance(loHour);
BAMCalendar delHiHour = BAMCalendar.getInstance(hiHour);
delHiHour.add(retention.getType(), -1 * retention.getValue());
delLoHour.add(retention.getType(), -1 * retention.getValue());
spm.deleteServiceData(getService().getId(), delLoHour, delHiHour);
}
} catch (BAMException e) {
if (log.isErrorEnabled()) {
log.error("Error while running hourly summary generator for service: " + getService().getName()
+ " of server: " + getServer().getServerURL(), e);