@Override public void handleNewOrUpdatedAlarm(OnmsAlarm alarm) { if (!forwardAlarms) { // Ignore return; } updateAlarm(alarm.getReductionKey(), alarm); stateTracker.trackNewOrUpdatedAlarm(alarm.getId(), alarm.getReductionKey()); }
@Override public void handleNewOrUpdatedAlarm(OnmsAlarm alarm) { if (!forwardAlarms) { // Ignore return; } updateAlarm(alarm.getReductionKey(), alarm); stateTracker.trackNewOrUpdatedAlarm(alarm.getId(), alarm.getReductionKey()); }
private void handleNewOrUpdatedAlarmNoLock(OnmsAlarm alarm) { final KieSession kieSession = getKieSession(); // Initialize any related objects that are needed for rule execution Hibernate.initialize(alarm.getRelatedAlarms()); if (alarm.getLastEvent() != null) { // The last event may be null in unit tests Hibernate.initialize(alarm.getLastEvent().getEventParameters()); } final AlarmAndFact alarmAndFact = alarmsById.get(alarm.getId()); if (alarmAndFact == null) { LOG.debug("Inserting alarm into session: {}", alarm); final FactHandle fact = getKieSession().insert(alarm); alarmsById.put(alarm.getId(), new AlarmAndFact(alarm, fact)); } else { // Updating the fact doesn't always give us to expected results so we resort to deleting it // and adding it again instead LOG.trace("Deleting alarm from session (for re-insertion): {}", alarm); kieSession.delete(alarmAndFact.getFact()); // Reinsert LOG.trace("Re-inserting alarm into session: {}", alarm); final FactHandle fact = kieSession.insert(alarm); alarmsById.put(alarm.getId(), new AlarmAndFact(alarm, fact)); } stateTracker.trackNewOrUpdatedAlarm(alarm.getId(), alarm.getReductionKey()); }
private void handleNewOrUpdatedAlarmNoLock(OnmsAlarm alarm) { final KieSession kieSession = getKieSession(); // Initialize any related objects that are needed for rule execution Hibernate.initialize(alarm.getAssociatedAlarms()); if (alarm.getLastEvent() != null) { // The last event may be null in unit tests Hibernate.initialize(alarm.getLastEvent().getEventParameters()); } final AlarmAndFact alarmAndFact = alarmsById.get(alarm.getId()); if (alarmAndFact == null) { LOG.debug("Inserting alarm into session: {}", alarm); final FactHandle fact = getKieSession().insert(alarm); alarmsById.put(alarm.getId(), new AlarmAndFact(alarm, fact)); } else { // Updating the fact doesn't always give us to expected results so we resort to deleting it // and adding it again instead LOG.trace("Deleting alarm from session (for re-insertion): {}", alarm); kieSession.delete(alarmAndFact.getFact()); // Reinsert LOG.trace("Re-inserting alarm into session: {}", alarm); final FactHandle fact = kieSession.insert(alarm); alarmsById.put(alarm.getId(), new AlarmAndFact(alarm, fact)); } handleRelatedAlarms(alarm); stateTracker.trackNewOrUpdatedAlarm(alarm.getId(), alarm.getReductionKey()); }