dataupdater.java
来自「opennms得相关源码 请大家看看」· Java 代码 · 共 519 行 · 第 1/2 页
JAVA
519 行
//// This file is part of the OpenNMS(R) Application.//// OpenNMS(R) is Copyright (C) 2002-2003 The OpenNMS Group, Inc. All rights reserved.// OpenNMS(R) is a derivative work, containing both original code, included code and modified// code that was published under the GNU General Public License. Copyrights for modified // and included code are below.//// OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.//// Modifications://// 2004 Oct 07: Added code to support RTC rescan on asset update//// Orginal code baseCopyright (C) 1999-2001 Oculan Corp. All rights reserved.//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details. //// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.// // For more information contact: // OpenNMS Licensing <license@opennms.org>// http://www.opennms.org/// http://www.opennms.com///// Tab Size = 8//package org.opennms.netmgt.rtc;import java.sql.SQLException;import java.text.ParseException;import java.util.Enumeration;import org.apache.log4j.Category;import org.opennms.core.utils.ThreadCategory;import org.opennms.netmgt.EventConstants;import org.opennms.netmgt.filter.FilterParseException;import org.opennms.netmgt.xml.event.Event;import org.opennms.netmgt.xml.event.Parm;import org.opennms.netmgt.xml.event.Parms;import org.opennms.netmgt.xml.event.Value;/** * <P> * The DataUpdater is created for each event by the event receiver. Depending on * the event UEI, relevant information is read from the event and the * DataManager informed so that data maintained by the RTC is kept up-to-date * </P> * * @author <A HREF="mailto:sowmya@opennms.org">Sowmya Nataraj </A> * @author <A HREF="http://www.opennms.org">OpenNMS.org </A> */final class DataUpdater implements Runnable { /** * The event from which data is to be read */ private Event m_event; /** * If it is a nodeGainedService, create a new entry in the map */ private void handleNodeGainedService(long nodeid, String ip, String svcName) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (nodeid == -1 || ip == null || svcName == null) { log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/svc: " + nodeid + "/" + ip + "/" + svcName); return; } DataManager dataMgr = RTCManager.getDataManager(); dataMgr.nodeGainedService(nodeid, ip, svcName); if (log.isDebugEnabled()) log.debug(m_event.getUei() + " added " + nodeid + ": " + ip + ": " + svcName + " to data store"); } /** * If it is a nodeLostService, update downtime on the rtcnode */ private void handleNodeLostService(long nodeid, String ip, String svcName, long eventTime) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (nodeid == -1 || ip == null || svcName == null || eventTime == -1) { log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/svc/eventtime: " + nodeid + "/" + ip + "/" + svcName + "/" + eventTime); return; } DataManager dataMgr = RTCManager.getDataManager(); dataMgr.nodeLostService(nodeid, ip, svcName, eventTime); if (log.isDebugEnabled()) log.debug("Added nodeLostService to nodeid: " + nodeid + " ip: " + ip + " svcName: " + svcName); } /** * If it is an interfaceDown, update downtime on the appropriate rtcnodes */ private void handleInterfaceDown(long nodeid, String ip, long eventTime) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (nodeid == -1 || ip == null || eventTime == -1) { log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/eventtime: " + nodeid + "/" + ip + "/" + eventTime); return; } DataManager dataMgr = RTCManager.getDataManager(); dataMgr.interfaceDown(nodeid, ip, eventTime); if (log.isDebugEnabled()) log.debug("Recorded interfaceDown for nodeid: " + nodeid + " ip: " + ip); } /** * If it is an nodeDown, update downtime on the appropriate rtcnodes */ private void handleNodeDown(long nodeid, long eventTime) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (nodeid == -1 || eventTime == -1) { log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/eventtime: " + nodeid + "/" + eventTime); return; } DataManager dataMgr = RTCManager.getDataManager(); dataMgr.nodeDown(nodeid, eventTime); if (log.isDebugEnabled()) log.debug("Recorded nodeDown for nodeid: " + nodeid); } /** * If it is a nodeUp, update regained time on the appropriate rtcnodes */ private void handleNodeUp(long nodeid, long eventTime) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (nodeid == -1 || eventTime == -1) { log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/eventtime: " + nodeid + "/" + eventTime); return; } DataManager dataMgr = RTCManager.getDataManager(); dataMgr.nodeUp(nodeid, eventTime); if (log.isDebugEnabled()) log.debug("Recorded nodeUp for nodeid: " + nodeid); } /** * If it is an interfaceUp, update regained time on the appropriate rtcnodes */ private void handleInterfaceUp(long nodeid, String ip, long eventTime) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (nodeid == -1 || ip == null || eventTime == -1) { log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/eventtime: " + nodeid + "/" + ip + "/" + eventTime); return; } DataManager dataMgr = RTCManager.getDataManager(); dataMgr.interfaceUp(nodeid, ip, eventTime); if (log.isDebugEnabled()) log.debug("Recorded interfaceUp for nodeid: " + nodeid + " ip: " + ip); } /** * If it is a nodeRegainedService, update downtime on the rtcnode */ private void handleNodeRegainedService(long nodeid, String ip, String svcName, long eventTime) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (nodeid == -1 || ip == null || svcName == null || eventTime == -1) { log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/svc/eventtime: " + nodeid + "/" + ip + "/" + svcName + "/" + eventTime); return; } DataManager dataMgr = RTCManager.getDataManager(); dataMgr.nodeRegainedService(nodeid, ip, svcName, eventTime); if (log.isDebugEnabled()) log.debug("Added nodeRegainedService to nodeid: " + nodeid + " ip: " + ip + " svcName: " + svcName); } /** * If it is a serviceDeleted, remove corresponding rtcnodes from the map */ private void handleServiceDeleted(long nodeid, String ip, String svcName) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (nodeid == -1 || ip == null || svcName == null) { log.warn(m_event.getUei() + " ignored - info incomplete - nodeid/ip/svc: " + nodeid + "/" + ip + "/" + svcName); return; } DataManager dataMgr = RTCManager.getDataManager(); dataMgr.serviceDeleted(nodeid, ip, svcName); if (log.isDebugEnabled()) log.debug(m_event.getUei() + " deleted " + nodeid + ": " + ip + ": " + svcName + " from data store"); } /** * Record the interfaceReparented info in the datastore */ private void handleInterfaceReparented(String ip, Parms eventParms) { Category log = ThreadCategory.getInstance(DataUpdater.class); if (ip == null || eventParms == null) { log.warn(m_event.getUei() + " ignored - info incomplete - ip/parms: " + ip + "/" + eventParms); return; } // old nodeid long oldNodeId = -1; // new nodeid long newNodeId = -1; String parmName = null; Value parmValue = null; String parmContent = null; Enumeration parmEnum = eventParms.enumerateParm(); while (parmEnum.hasMoreElements()) { Parm parm = (Parm) parmEnum.nextElement(); parmName = parm.getParmName(); parmValue = parm.getValue(); if (parmValue == null) continue; else parmContent = parmValue.getContent(); // old nodeid if (parmName.equals(EventConstants.PARM_OLD_NODEID)) { String temp = parmContent; try { oldNodeId = Long.valueOf(temp).longValue(); } catch (NumberFormatException nfe) { log.warn("Parameter " + EventConstants.PARM_OLD_NODEID + " cannot be non-numeric", nfe); oldNodeId = -1; } } // new nodeid else if (parmName.equals(EventConstants.PARM_NEW_NODEID)) { String temp = parmContent; try {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?