⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snmperrorhandleragent.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
字号:
/* * @(#)file      SnmpProxyMBean.java * @(#)author    Sun Microsystems, Inc. * @(#)version   X.XX * @(#)date      XX/XX/XX * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * */package com.sun.jmx.snmp.agent;// java imports//import java.io.Serializable;import java.util.Enumeration;// jmx imports//import com.sun.jmx.snmp.SnmpStatusException;import com.sun.jmx.snmp.SnmpDefinitions;import javax.management.ObjectName;import javax.management.MBeanServer;import com.sun.jmx.snmp.SnmpVarBind;// SNMP Runtime imports//import com.sun.jmx.trace.Trace;/** * A simple MIB agent that implements SNMP calls (get, set, getnext and getbulk) in a way that only errors or exceptions are returned. Every call done on this agent fails. Error handling is done according to the manager's SNMP protocol version. * <P>It is used by <CODE>SnmpAdaptorServer</CODE> for its default agent behavior. When a received Oid doesn't match, this agent is called to fill the result list with errors.</P> * <p><b>This API is a Sun Microsystems internal API  and is subject  * to change without notice.</b></p> * @since 1.5 *  */public class SnmpErrorHandlerAgent extends SnmpMibAgentimplements Serializable {  public SnmpErrorHandlerAgent() {}    /**     * Initializes the MIB (with no registration of the MBeans into the      * MBean server). Does nothing.     *     * @exception IllegalAccessException The MIB cannot be initialized.     */      public void init() throws IllegalAccessException {  }    /**     * Initializes the MIB but each single MBean representing the MIB      * is inserted into the MBean server.     *     * @param server The MBean server to register the service with.     * @param name The object name.     *     * @return The passed name paramter.     *     * @exception java.lang.Exception     */  public ObjectName preRegister(MBeanServer server, ObjectName name)     throws Exception {        return name;    }      /**     * Gets the root object identifier of the MIB.     * <P>The root object identifier is the object identifier uniquely      * identifying the MIB.     *     * @return The returned oid is null.     */  public long[] getRootOid() {    return null;  }      /**     * Processes a <CODE>get</CODE> operation. It will throw an exception for V1 requests or it will set exceptions within the list for V2 requests.     *      * @param inRequest The SnmpMibRequest object holding the list of variable to be retrieved.     *     * @exception SnmpStatusException An error occured during the operation.     */  public void get(SnmpMibRequest inRequest) throws SnmpStatusException {        if(isDebugOn()) trace("get","Get in Exception");        if(inRequest.getVersion() == SnmpDefinitions.snmpVersionOne)      throw new SnmpStatusException(SnmpStatusException.noSuchName);        Enumeration l = inRequest.getElements();    while(l.hasMoreElements()) {      SnmpVarBind varbind = (SnmpVarBind) l.nextElement();       varbind.setNoSuchObject();    }  }    /**     * Checks if a <CODE>set</CODE> operation can be performed.     * If the operation can not be performed, the method should emit a     * <CODE>SnmpStatusException</CODE>.     *      * @param inRequest The SnmpMibRequest object holding the list of variables to     *            be set. This list is composed of      *            <CODE>SnmpVarBind</CODE> objects.     *     * @exception SnmpStatusException The <CODE>set</CODE> operation      *    cannot be performed.     */  public void check(SnmpMibRequest inRequest) throws SnmpStatusException {    if(isDebugOn()) trace("check","Check in Exception");    throw new SnmpStatusException(SnmpDefinitions.snmpRspNotWritable);  }    /**     * Processes a <CODE>set</CODE> operation. Should never be called (check previously called having failed).     *      * @param inRequest The SnmpMibRequest object holding the list of variable to be set.     *     * @exception SnmpStatusException An error occured during the operation.     */  public void set(SnmpMibRequest inRequest) throws SnmpStatusException {      if(isDebugOn()) trace("set","Set in Exception, CAN't be called");          throw new SnmpStatusException(SnmpDefinitions.snmpRspNotWritable);  }    /**     * Processes a <CODE>getNext</CODE> operation. It will throw an exception for V1 requests or it will set exceptions within the list for V2 requests..     *      * @param inRequest The SnmpMibRequest object holding the list of variables to be retrieved.     *     * @exception SnmpStatusException An error occured during the operation.     */  public void getNext(SnmpMibRequest inRequest) throws SnmpStatusException {          if(isDebugOn()) trace("getNext","GetNext in Exception");    if(inRequest.getVersion() == SnmpDefinitions.snmpVersionOne)      throw new SnmpStatusException(SnmpStatusException.noSuchName);        Enumeration l = inRequest.getElements();    while(l.hasMoreElements()) {      SnmpVarBind varbind = (SnmpVarBind) l.nextElement();       varbind.setEndOfMibView();    }  }      /**     * Processes a <CODE>getBulk</CODE> operation. It will throw an exception if the request is a V1 one or it will set exceptions within the list for V2 ones.     *      * @param inRequest The SnmpMibRequest object holding the list of variable to be retrieved.     *     * @exception SnmpStatusException An error occured during the operation.     */      public void getBulk(SnmpMibRequest inRequest, int nonRepeat, int maxRepeat)     throws SnmpStatusException {            if(isDebugOn()) trace("getBulk","GetBulk in Exception");       if(inRequest.getVersion() == SnmpDefinitions.snmpVersionOne) 	throw new SnmpStatusException(SnmpDefinitions.snmpRspGenErr, 0);            Enumeration l = inRequest.getElements();      while(l.hasMoreElements()) {	SnmpVarBind varbind = (SnmpVarBind) l.nextElement(); 	varbind.setEndOfMibView();      }    }        private boolean isDebugOn() {        return Trace.isSelected(Trace.LEVEL_DEBUG, Trace.INFO_ADAPTOR_SNMP);    }        private void debug(String clz, String func, String info) {        Trace.send(Trace.LEVEL_TRACE, Trace.INFO_ADAPTOR_SNMP, clz, func, info);    }        private void trace(String func, String info) {        debug(dbgTag, func, info);    }    private String dbgTag = "SnmpErrorHandlerAgent";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -