CollTomcat.java 3.35 KB
package com.sitech.ismp.coll.middleware.tomcat;

import com.sitech.ismp.check.downtime.CheckConnectionState;
import com.sitech.ismp.check.downtime.ParamterBean;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import com.sitech.ismp.coll.middleware.tomcat.impl.ICollTomcat;
import com.sitech.ismp.coll.middleware.tomcat.impl.TomcatCollFactory;
import com.sitech.util.Formater;
import org.apache.log4j.Logger;

import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.Vector;

public class CollTomcat implements CollTomcatMBean {
	private static Logger log= Logger.getLogger(CollTomcat.class);

	public Vector<TblATO_KPIDETAIL> getMemory(HashMap<String, String> params) {
		TomcatCollFactory factory = new TomcatCollFactory();
		ICollTomcat coll = factory.getCollInstance(params);
		if (coll != null) {
			return coll.getMemory(params);
		}
		return null;
	}

	public Vector<TblATO_KPIDETAIL> getRuntime(HashMap<String, String> params) {
		TomcatCollFactory factory = new TomcatCollFactory();
		ICollTomcat coll = factory.getCollInstance(params);
		if (coll != null) {
			return coll.getRuntime(params);
		}
		return null;
	}

	public Vector<TblATO_KPIDETAIL> getSession(HashMap<String, String> params) {
		TomcatCollFactory factory = new TomcatCollFactory();
		ICollTomcat coll = factory.getCollInstance(params);
		if (coll != null) {
			return coll.getSession(params);
		}
		return null;
	}

	public Vector<TblATO_KPIDETAIL> getThreadPool(HashMap<String, String> params) {
		TomcatCollFactory factory = new TomcatCollFactory();
		ICollTomcat coll = factory.getCollInstance(params);
		if (coll != null) {
			return coll.getThreadPool(params);
		}
		return null;
	}

	@Override
	public Vector<TblATO_KPIDETAIL> getClassLoading(
			HashMap<String, String> params) {
		TomcatCollFactory factory = new TomcatCollFactory();
		ICollTomcat coll = factory.getCollInstance(params);
		if (coll != null) {
			return coll.getClassLoading(params);
		}
		return null;
	}

	/**
	 * 获取中间件所在主机的ping状态。
	 * @param params
	 * @return
	 */
	@Override
	public Vector<TblATO_KPIDETAIL> getPingStatus(HashMap<String, String> params) {
		/**
		 * 该 kbp_class kpiId 如果不存在,需要在页面添加。
		 */
		String kbp_class="10-12-13-20";
		String kpiId="FM-00-12-001-999";
		Vector<TblATO_KPIDETAIL> vector=new Vector<TblATO_KPIDETAIL>();
		String jmx_url=params.get("JMX_URL");
		int start=jmx_url.indexOf("/rmi://");
		int end=jmx_url.lastIndexOf(":");
		String ip=jmx_url.substring(start+7,end);
		/**
		 * domain_name 实际就是 资源标识。
		 */
		String domain_name = params.get("DOMAIN_NAME");
		String unitId = kbp_class +":"+ Formater.neatenunitid(domain_name) + "-RUNTIME";
		CheckConnectionState server=new CheckConnectionState();
		TblATO_KPIDETAIL kpidetail=new TblATO_KPIDETAIL();
		try {
			kpidetail.setUNIT_ID(unitId);
			kpidetail.setKPI_ID(kpiId);
			kpidetail.setKPI_VALUE(server.getPingState(new ParamterBean(ip)));
			kpidetail.setCLL_TIME(new Date());
			vector.add(kpidetail);
		} catch (ParseException e){
			e.printStackTrace();
		}
		return vector;
	}
	
	

	@Override
	public Vector<TblATO_KPIDETAIL> getThreading(HashMap<String, String> params) {
		TomcatCollFactory factory = new TomcatCollFactory();
		ICollTomcat coll = factory.getCollInstance(params);
		if (coll != null) {
			return coll.getThreading(params);
		}
		return null;
	}
}