public abstract class

SnmpMibAgent

extends Object
implements SnmpMibAgentMBean Serializable MBeanRegistration
java.lang.Object
   ↳ com.sun.jmx.snmp.agent.SnmpMibAgent
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Abstract class for representing an SNMP agent. The class is used by the SNMP protocol adaptor as the entry point in the SNMP agent to query.

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

Summary

Fields
protected String mibName The object name of the MIB.
protected MBeanServer server The reference to the MBean server.
Public Constructors
SnmpMibAgent()
Default constructor.
Public Methods
abstract void check(SnmpMibRequest req)
Checks if a set operation can be performed.
abstract void get(SnmpMibRequest req)
Processes a get operation.
boolean getBindingState()
Indicates whether or not the MIB module is bound to a SNMP protocol adaptor.
abstract void getBulk(SnmpMibRequest req, int nonRepeat, int maxRepeat)
Processes a getBulk operation.
MBeanServer getMBeanServer()
Gets the reference to the MBean server in which the SNMP MIB is registered.
String getMibName()
Gets the MIB name.
abstract void getNext(SnmpMibRequest req)
Processes a getNext operation.
abstract long[] getRootOid()
Gets the root object identifier of the MIB.
SnmpMibHandler getSnmpAdaptor()
Gets the reference to the SNMP protocol adaptor to which the MIB is bound.
ObjectName getSnmpAdaptorName()
Gets the object name of the SNMP protocol adaptor to which the MIB is bound.
abstract void init()
Initializes the MIB (with no registration of the MBeans into the MBean server).
static SnmpMibRequest newMibRequest(SnmpPdu reqPdu, Vector<SnmpVarBind> vblist, int version, Object userData)
This is a factory method for creating new SnmpMibRequest objects.
static SnmpMibRequest newMibRequest(SnmpEngine engine, SnmpPdu reqPdu, Vector<SnmpVarBind> vblist, int version, Object userData, String principal, int securityLevel, int securityModel, byte[] contextName, byte[] accessContextName)
This is a factory method for creating new SnmpMibRequest objects.
void postDeregister()
Not used in this context.
void postRegister(Boolean registrationDone)
Not used in this context.
void preDeregister()
Not used in this context.
abstract ObjectName preRegister(MBeanServer server, ObjectName name)
Initializes the MIB but each single MBean representing the MIB is inserted into the MBean server.
abstract void set(SnmpMibRequest req)
Processes a set operation.
void setSnmpAdaptor(SnmpMibHandler stack, SnmpOid[] oids)
Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler.
void setSnmpAdaptor(SnmpMibHandler stack, String contextName)
Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and adds this new MIB in the SNMP MIB handler.
void setSnmpAdaptor(SnmpMibHandler stack)
Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler.
void setSnmpAdaptor(SnmpMibHandler stack, String contextName, SnmpOid[] oids)
Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and adds this new MIB in the SNMP MIB handler.
void setSnmpAdaptorName(ObjectName name, String contextName, SnmpOid[] oids)
Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler associated to the specified name.
void setSnmpAdaptorName(ObjectName name, String contextName)
Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler associated to the specified name.
void setSnmpAdaptorName(ObjectName name)
Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler associated to the specified name.
void setSnmpAdaptorName(ObjectName name, SnmpOid[] oids)
Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler associated to the specified name.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.sun.jmx.snmp.agent.SnmpMibAgentMBean
From interface javax.management.MBeanRegistration

Fields

protected String mibName

The object name of the MIB.

protected MBeanServer server

The reference to the MBean server.

Public Constructors

public SnmpMibAgent ()

Default constructor.

Public Methods

public abstract void check (SnmpMibRequest req)

Checks if a set operation can be performed. If the operation can not be performed, the method should throw an SnmpStatusException. This method is called during the first phase of the SET two-phase commit.

Parameters
req The SnmpMibRequest object holding the list of variable to be set. This list is composed of SnmpVarBind objects.
Throws
SnmpStatusException The set operation cannot be performed.

public abstract void get (SnmpMibRequest req)

Processes a get operation. This method must update the SnmpVarBinds contained in the SnmpMibRequest req parameter.

Parameters
req The SnmpMibRequest object holding the list of variable to be retrieved. This list is composed of SnmpVarBind objects.
Throws
SnmpStatusException An error occured during the operation.

public boolean getBindingState ()

Indicates whether or not the MIB module is bound to a SNMP protocol adaptor. As a reminder, only bound MIBs can be accessed through SNMP protocol adaptor.

Returns
  • true if the MIB module is bound, false otherwise.

public abstract void getBulk (SnmpMibRequest req, int nonRepeat, int maxRepeat)

Processes a getBulk operation. This method must update the SnmpVarBinds contained in the SnmpMibRequest req parameter.

Parameters
req The SnmpMibRequest object holding the list of variable to be retrieved. This list is composed of SnmpVarBind objects.
nonRepeat The number of variables, starting with the first variable in the variable-bindings, for which a single lexicographic successor is requested.
maxRepeat The number of lexicographic successors requested for each of the last R variables. R is the number of variables following the first nonRepeat variables for which multiple lexicographic successors are requested.
Throws
SnmpStatusException An error occured during the operation.

public MBeanServer getMBeanServer ()

Gets the reference to the MBean server in which the SNMP MIB is registered.

Returns
  • The MBean server or null if the MIB is not registered in any MBean server.

public String getMibName ()

Gets the MIB name.

Returns
  • The MIB name.

public abstract void getNext (SnmpMibRequest req)

Processes a getNext operation. This method must update the SnmpVarBinds contained in the SnmpMibRequest req parameter.

Parameters
req The SnmpMibRequest object holding the list of OIDs from which the next variables should be retrieved. This list is composed of SnmpVarBind objects.
Throws
SnmpStatusException An error occured during the operation.

public abstract long[] getRootOid ()

Gets the root object identifier of the MIB.

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

Returns
  • The root object identifier.

public SnmpMibHandler getSnmpAdaptor ()

Gets the reference to the SNMP protocol adaptor to which the MIB is bound.

Returns
  • The SNMP MIB handler.

public ObjectName getSnmpAdaptorName ()

Gets the object name of the SNMP protocol adaptor to which the MIB is bound.

Returns
  • The name of the SNMP protocol adaptor.

public abstract void init ()

Initializes the MIB (with no registration of the MBeans into the MBean server).

Throws
IllegalAccessException The MIB can not be initialized.

public static SnmpMibRequest newMibRequest (SnmpPdu reqPdu, Vector<SnmpVarBind> vblist, int version, Object userData)

This is a factory method for creating new SnmpMibRequest objects.

Parameters
reqPdu The received PDU.
vblist The vector of SnmpVarBind objects in which the MIB concerned by this request is involved.
version The protocol version of the SNMP request.
userData User allocated contextual data.
Returns
  • A new SnmpMibRequest object.

public static SnmpMibRequest newMibRequest (SnmpEngine engine, SnmpPdu reqPdu, Vector<SnmpVarBind> vblist, int version, Object userData, String principal, int securityLevel, int securityModel, byte[] contextName, byte[] accessContextName)

This is a factory method for creating new SnmpMibRequest objects.

Parameters
engine The local engine.
reqPdu The received pdu.
vblist The vector of SnmpVarBind objects in which the MIB concerned by this request is involved.
version The protocol version of the SNMP request.
userData User allocated contextual data.
Returns
  • A new SnmpMibRequest object.

public void postDeregister ()

Not used in this context.

public void postRegister (Boolean registrationDone)

Not used in this context.

Parameters
registrationDone Indicates whether or not the MBean has been successfully registered in the MBean server. The value false means that the registration phase has failed.

public void preDeregister ()

Not used in this context.

Throws
Exception

public abstract ObjectName preRegister (MBeanServer server, ObjectName name)

Initializes the MIB but each single MBean representing the MIB is inserted into the MBean server.

Parameters
server The MBean server to register the service with.
name The object name.
Returns
  • The name of the SNMP MIB registered.
Throws
Exception

public abstract void set (SnmpMibRequest req)

Processes a set operation. This method must update the SnmpVarBinds contained in the SnmpMibRequest req parameter. This method is called during the second phase of the SET two-phase commit.

Parameters
req The SnmpMibRequest object holding the list of variable to be set. This list is composed of SnmpVarBind objects.
Throws
SnmpStatusException An error occured during the operation. Throwing an exception in this method will break the atomicity of the SET operation. Care must be taken so that the exception is thrown in the check(SnmpMibRequest) method instead.

public void setSnmpAdaptor (SnmpMibHandler stack, SnmpOid[] oids)

Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler. This method is to be called to set a specific agent to a specific OID. This can be useful when dealing with MIB overlapping. Some OID can be implemented in more than one MIB. In this case, the OID nearest the agent will be used on SNMP operations.

Parameters
stack The SNMP MIB handler.
oids The set of OIDs this agent implements.

public void setSnmpAdaptor (SnmpMibHandler stack, String contextName)

Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and adds this new MIB in the SNMP MIB handler. Adds a new contextualized MIB in the SNMP MIB handler.

Parameters
stack The SNMP MIB handler.
contextName The MIB context name. If null is passed, will be registered in the default context.
Throws
IllegalArgumentException If the parameter is null.

public void setSnmpAdaptor (SnmpMibHandler stack)

Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler.

Parameters
stack The SNMP MIB handler.

public void setSnmpAdaptor (SnmpMibHandler stack, String contextName, SnmpOid[] oids)

Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and adds this new MIB in the SNMP MIB handler. Adds a new contextualized MIB in the SNMP MIB handler.

Parameters
stack The SNMP MIB handler.
contextName The MIB context name. If null is passed, will be registered in the default context.
oids The set of OIDs this agent implements.
Throws
IllegalArgumentException If the parameter is null.

public void setSnmpAdaptorName (ObjectName name, String contextName, SnmpOid[] oids)

Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler associated to the specified name.

Parameters
name The name of the SNMP protocol adaptor.
contextName The MIB context name. If null is passed, will be registered in the default context.
oids The set of OIDs this agent implements.
Throws
InstanceNotFoundException The SNMP protocol adaptor does not exist in the MBean server.
ServiceNotFoundException This SNMP MIB is not registered in the MBean server or the requested service is not supported.

public void setSnmpAdaptorName (ObjectName name, String contextName)

Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler associated to the specified name.

Parameters
name The name of the SNMP protocol adaptor.
contextName The MIB context name. If null is passed, will be registered in the default context.
Throws
InstanceNotFoundException The SNMP protocol adaptor does not exist in the MBean server.
ServiceNotFoundException This SNMP MIB is not registered in the MBean server or the requested service is not supported.

public void setSnmpAdaptorName (ObjectName name)

Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler associated to the specified name.

Parameters
name The name of the SNMP protocol adaptor.
Throws
InstanceNotFoundException The SNMP protocol adaptor does not exist in the MBean server.
ServiceNotFoundException This SNMP MIB is not registered in the MBean server or the requested service is not supported.

public void setSnmpAdaptorName (ObjectName name, SnmpOid[] oids)

Sets the reference to the SNMP protocol adaptor through which the MIB will be SNMP accessible and add this new MIB in the SNMP MIB handler associated to the specified name. This method is to be called to set a specific agent to a specific OID. This can be useful when dealing with MIB overlapping. Some OID can be implemented in more than one MIB. In this case, the OID nearer agent will be used on SNMP operations.

Parameters
name The name of the SNMP protocol adaptor.
oids The set of OIDs this agent implements.
Throws
InstanceNotFoundException The SNMP protocol adaptor does not exist in the MBean server.
ServiceNotFoundException This SNMP MIB is not registered in the MBean server or the requested service is not supported.