ManualColl.java 1.95 KB
package com.sitech.jmx.mbean;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Vector;

import javax.management.MBeanServer;
import javax.management.ObjectName;

import org.apache.log4j.Logger;

import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import com.sitech.ismp.messageObject.PerformanceObject;
import com.sitech.jmx.manage.MBeanManager;

/**
 * 手动远程采集接口
 * 
 * @author LINXC
 */
public class ManualColl implements ManualCollMBean {
	private Logger logger = Logger.getLogger(ManualColl.class);
	
	private static MBeanServer mbs = null;
	
	static{
		mbs = MBeanManager.getInstance().getMBeanServer();
	}

	@SuppressWarnings("unchecked")
	public List<PerformanceObject> exec(String objectName, String className,
			String operationName, HashMap<String, String> paramMap) throws Exception {
		List<PerformanceObject> resultList = new ArrayList<PerformanceObject>();
		
		MBeanManager.getInstance().registCollMBean(objectName, className);
		
		try {
			Object[] params = new Object[] { paramMap };
			String[] signature = new String[]{"java.util.HashMap"};
			ObjectName objectname = new ObjectName(objectName);
			
			logger.info("[MenualColl]- Executing objectName[" + objectName + "], operationName[" + operationName + "].");
			
			Vector<TblATO_KPIDETAIL> vResult = (Vector<TblATO_KPIDETAIL>) mbs
					.invoke(objectname, operationName, params, signature);

			if(vResult!=null){
				for(TblATO_KPIDETAIL kpidetail : vResult){
					PerformanceObject obj = new PerformanceObject();
					obj.setUnitId(kpidetail.UNIT_ID);
					obj.setKpiId(kpidetail.KPI_ID);
					obj.setKpiValue(kpidetail.KPI_VALUE);
					obj.setCllTime(kpidetail.CLL_TIME);
					obj.setKpiDetail("n/r");
					
					resultList.add(obj);
				}
			}
		} catch (Exception e) {
			logger.error("[MenualColl]- Exception while executing job, objectName[" + objectName + "], operationName[" + operationName + "].", e);
			throw e;
		}
		
		return resultList;
	}

}