package org.infosec.ismp.collectd.snmp.weblogic; import java.net.InetAddress; import org.infosec.ismp.collectd.snmp.SnmpTable; import org.infosec.ismp.snmp.CollectionTracker; import org.infosec.ismp.snmp.SnmpAgentConfig; import org.infosec.ismp.snmp.SnmpInstId; import org.infosec.ismp.snmp.SnmpObjId; import org.infosec.ismp.snmp.SnmpUtils; import org.infosec.ismp.snmp.SnmpWalker; /** * @author guoxianwei * @date 2010-10-27 下午04:51:14 * */ public class JvmRuntimeTable extends SnmpTable<JvmRuntimeEntry> { public JvmRuntimeTable(InetAddress address) { super(address, "JvmRuntimeTable", JvmRuntimeEntry.ms_elemList); } @Override protected JvmRuntimeEntry createTableEntry(SnmpObjId base, SnmpInstId inst, Object val) { // TODO Auto-generated method stub return new JvmRuntimeEntry(); } public JvmRuntimeEntry getEntry(int ifIndex) { if (getEntries() == null) { return null; } for (JvmRuntimeEntry entry : getEntries()) { Integer ndx = entry.getIfIndex(); if (ndx != null && ndx.intValue() == ifIndex) { return entry; } } return null; } public static void main(String[] args) throws Exception { SnmpAgentConfig agentConfig = new SnmpAgentConfig( InetAddress.getByName("192.168.9.85")); agentConfig.setVersion(2); JvmRuntimeTable table = new JvmRuntimeTable(agentConfig.getAddress()); SnmpWalker walker = SnmpUtils.createWalker(agentConfig, "SnmpCollectors for test", new CollectionTracker[] { table}); walker.start(); walker.waitFor(60 * 1000 * 5); System.out.println(table.failed()); for (JvmRuntimeEntry entrx : table.getEntries()) { System.out.println("-----------------------------"); System.out.println(entrx.getJvmRuntimeHeapFreeCurrent()); System.out.println(entrx.getJvmRuntimeHeapSizeCurrent()); System.out.println(entrx.getJvmRuntimeJavaVersion()); System.out.println("-----------------------------"); } } }