CollTomcat.java 3.42 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) {
		String isPing = params.get("isPing")+""; // frank 2017-05-19 添加。Y进行ping操作,N不执行
		Vector<TblATO_KPIDETAIL> vector=new Vector<TblATO_KPIDETAIL>();
		if("Y".equals(isPing)){
			String kbp_class="10-12-13-20";
			String kpiId="FM-00-12-001-999";
			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;
	}
}