HeartbeatAlarm.java 2.18 KB
package com.sitech.ismp.coll.i2000.alarm;

import com.sitech.ismp.app.event.KPI2Event;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import com.sitech.jmx.manage.ReportManage;
import com.sitech.util.Formater;
import org.apache.log4j.Logger;

import java.util.Date;
import java.util.Vector;

public class HeartbeatAlarm extends Thread {
	Date date = new Date();

	String value;

	String unitID = "01-17-i2000-heartbeat";

	String kpiID = "PM-01-17-900-01";

	Date cllTime;

	int heartbeat_alarm_intervals= Param.getInt("heartbeat_alarm_intervals");

	static Logger logger = Logger.getLogger("I2000");

	public void run() {
		while (true) {
			logger.info("heartbeat_alarm_intervals  is " + heartbeat_alarm_intervals);
			logger.info("HeartbeatAlarm is running ....");
			logger.info("HeartbeatState.time is " + HeartbeatState.time);
			if (HeartbeatState.time != null) {
				boolean heartbeat = date.before(HeartbeatState.time);

				TblATO_KPIDETAIL tblATO = new TblATO_KPIDETAIL();

				cllTime = new Date();
				value = "UP";
				if (heartbeat != true) {
					value = "DOWN";
				}
				tblATO.UNIT_ID = unitID;
				tblATO.KPI_ID = kpiID;
				tblATO.CLL_TIME = cllTime;
				tblATO.KPI_VALUE = value;
				try {
					tblATO.CLL_TIME_STR = Formater.datetimeToString(cllTime);
				} catch (Exception e1) {
					logger.error("NatenPUD", e1);
				}
				logger.info("ATO|" + tblATO.UNIT_ID + "|" + tblATO.KPI_ID + "|"
						+ tblATO.CLL_TIME + "|" + tblATO.KPI_VALUE + "|");
				//
				// TODO �Ը�������ݽ����¼���ɴ���

				KPI2Event kpi2event = new KPI2Event();
				kpi2event.generation(tblATO.UNIT_ID, tblATO.KPI_ID,
						new Date(), tblATO.KPI_VALUE);
				Vector kpiset = new Vector();
				kpiset.addElement(tblATO);
				ReportManage.reportKPI(kpiset);
			}
			date = new Date();
			try {
				logger.debug("HeartbeatAlarm sleep 1000 * 60 * 15");
				logger.debug("1000 * heartbeat_alarm_intervals" + 1000 * heartbeat_alarm_intervals);
				sleep(1000 * heartbeat_alarm_intervals);
				// sleep(1000 * 60 * 15);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

	public static void main(String arg[]) {
		HeartbeatAlarm ha = new HeartbeatAlarm();
		ha.start();
	}
}