Authored by zhangmingm

添加getPingStatus方法。

package com.sitech.ismp.coll.middleware.weblogic;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Vector;
import com.adventnet.snmp.beans.SnmpTarget;
import com.adventnet.snmp.snmp2.SnmpOID;
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.weblogic.impl.ICollWebLogic;
import com.sitech.ismp.coll.middleware.weblogic.impl.WebLogicCollFactory;
import com.sitech.util.Formater;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Vector;
public class CollWebLogic implements CollWebLogicMBean{
SnmpTarget target = null;
public Vector<TblATO_KPIDETAIL> getExecuteQueue(HashMap<String, String> params) {
WebLogicCollFactory factory = new WebLogicCollFactory();
ICollWebLogic coll = factory.getCollInstance(params);
... ... @@ -125,6 +134,86 @@ public class CollWebLogic implements CollWebLogicMBean{
return null;
}
@Override
public Vector<TblATO_KPIDETAIL> getPingStatus(HashMap<String, String> params) {
/**
* 该 kbp_class kpiId 如果不存在,需要在页面添加。
*/
String kbp_class="10-12-11-20";
String kpiId="FM-00-12-001-999";
Vector<TblATO_KPIDETAIL> vector=new Vector<TblATO_KPIDETAIL>();
String serverip=params.get("SERVERIP");
/**
* SERVERNAME 实际就是 资源标识。
*/
String servername = params.get("SERVERNAME");
String unitId = kbp_class +":"+ Formater.neatenunitid(servername) + "-CONFIG";
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(serverip)));
kpidetail.setCLL_TIME(new Date());
vector.add(kpidetail);
} catch (ParseException e){
e.printStackTrace();
}
return vector;
}
/**
* @author pc103
* @date 2006-07-21
* @param oid
* @param bool
* @return vector 参数说明书: oid-----对应weblogic控制台监控的性能指标id(关键) bool----无多大用处
* 功能:储存各采集结果 返回类型:vector
*
*/
private Vector<String> walkKPIInfo(String oid, boolean bool) {
Vector<String> tmp_result = new Vector<String>();
try {
Vector<String> tmp_oid = new Vector<String>();
target.setObjectID(oid);
target.oidList[0] = new SnmpOID(oid);
int maxtry = 0;
SnmpOID[] oidList = target.getSnmpOIDList();
if (oidList == null) {
System.out.println("oidList is null");
return null;
} else {
SnmpOID rootoid = oidList[0];
SnmpOID curroid = null;
while (maxtry++ < 3000) {
String result1[] = target.snmpGetNextList();
if (result1 == null) {
target.oidList[0] = curroid;
continue;
}
if (!SnmpTarget.isInSubTree(rootoid, target.getSnmpOID()))
break;
for (int i = 0; i < result1.length; i++) {
tmp_result.add(result1[i]);
tmp_oid.add(target.getObjectID(i));
}
if (result1[0].compareTo("NULL") == 0)
break;
}
if (maxtry == 1) {
System.err
.println("Request failed, timed out or no available data("
+ oid + "). \n " + target.getErrorString());
}
}
} catch (Exception e) {
e.printStackTrace();
}
return tmp_result;
}
private static String read(String prompt) {
Scanner scanner = new Scanner(System.in);
System.out.print(prompt);
... ...
package com.sitech.ismp.coll.middleware.weblogic;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
import java.util.HashMap;
import java.util.Vector;
import com.sitech.ismp.coll.basic.TblATO_KPIDETAIL;
public interface CollWebLogicMBean {
public Vector<TblATO_KPIDETAIL> getExecuteQueue(HashMap<String, String> map);
... ... @@ -31,4 +31,11 @@ public interface CollWebLogicMBean {
public Vector<TblATO_KPIDETAIL> getStatus(HashMap<String, String> params);
/**
* 获取数据库所在主机的ping状态,add by frank 2017-05-04
* @param params
* @return
*/
public Vector<TblATO_KPIDETAIL> getPingStatus(HashMap<String, String> params);
}
... ...