FileDocCategorySizeDatePackage
SnmpErrorHandlerAgent.javaAPI DocJava SE 5 API6519Fri Aug 26 14:55:04 BST 2005com.sun.jmx.snmp.agent

SnmpErrorHandlerAgent

public class SnmpErrorHandlerAgent extends SnmpMibAgent implements Serializable
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.

It is used by SnmpAdaptorServer for its default agent behavior. When a received Oid doesn't match, this agent is called to fill the result list with errors.

This API is a Sun Microsystems internal API and is subject to change without notice.

since
1.5

Fields Summary
private String
dbgTag
Constructors Summary
public SnmpErrorHandlerAgent()

Methods Summary
public voidcheck(SnmpMibRequest inRequest)
Checks if a set operation can be performed. If the operation can not be performed, the method should emit a SnmpStatusException.

param
inRequest The SnmpMibRequest object holding the list of variables to be set. This list is composed of SnmpVarBind objects.
exception
SnmpStatusException The set operation cannot be performed.


    if(isDebugOn()) trace("check","Check in Exception");

    throw new SnmpStatusException(SnmpDefinitions.snmpRspNotWritable);
  
private voiddebug(java.lang.String clz, java.lang.String func, java.lang.String info)

        Trace.send(Trace.LEVEL_TRACE, Trace.INFO_ADAPTOR_SNMP, clz, func, info);
    
public voidget(SnmpMibRequest inRequest)
Processes a get 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.

    
    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();
    }
  
public voidgetBulk(SnmpMibRequest inRequest, int nonRepeat, int maxRepeat)
Processes a getBulk 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.

      
      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();
      }
    
public voidgetNext(SnmpMibRequest inRequest)
Processes a getNext 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.

    
      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();
    }
  
public long[]getRootOid()
Gets the root object identifier of the MIB.

The root object identifier is the object identifier uniquely identifying the MIB.

return
The returned oid is null.

    return null;
  
public voidinit()
Initializes the MIB (with no registration of the MBeans into the MBean server). Does nothing.

exception
IllegalAccessException The MIB cannot be initialized.

  
private booleanisDebugOn()

        return Trace.isSelected(Trace.LEVEL_DEBUG, Trace.INFO_ADAPTOR_SNMP);
    
public javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, javax.management.ObjectName name)
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

        return name;
    
public voidset(SnmpMibRequest inRequest)
Processes a set 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.


      if(isDebugOn()) trace("set","Set in Exception, CAN't be called");
      
    throw new SnmpStatusException(SnmpDefinitions.snmpRspNotWritable);
  
private voidtrace(java.lang.String func, java.lang.String info)

        debug(dbgTag, func, info);