public class

SnmpAdaptorServer

extends CommunicatorServer
implements SnmpDefinitions SnmpMibHandler SnmpAdaptorServerMBean MBeanRegistration
java.lang.Object
   ↳ com.sun.jmx.snmp.daemon.CommunicatorServer
     ↳ com.sun.jmx.snmp.daemon.SnmpAdaptorServer

Class Overview

Implements an adaptor on top of the SNMP protocol.

When this SNMP protocol adaptor is started it creates a datagram socket and is able to receive requests and send traps or inform requests. When it is stopped, the socket is closed and neither requests and nor traps/inform request are processed.

The default port number of the socket is 161. This default value can be changed by specifying a port number:

  • in the object constructor
  • using the setPort method before starting the adaptor
The default object name is defined by com.sun.jmx.snmp.ServiceName.DOMAIN and com.sun.jmx.snmp.ServiceName.SNMP_ADAPTOR_SERVER.

The SNMP protocol adaptor supports versions 1 and 2 of the SNMP protocol in a stateless way: when it receives a v1 request, it replies with a v1 response, when it receives a v2 request it replies with a v2 response.
The method snmpV1Trap sends traps using SNMP v1 format. The method snmpV2Trap sends traps using SNMP v2 format. The method snmpInformRequest sends inform requests using SNMP v2 format.

To receive data packets, the SNMP protocol adaptor uses a buffer which size can be configured using the property bufferSize (default value is 1024). Packets which do not fit into the buffer are rejected. Increasing bufferSize allows the exchange of bigger packets. However, the underlying networking system may impose a limit on the size of UDP packets. Packets which size exceed this limit will be rejected, no matter what the value of bufferSize actually is.

An SNMP protocol adaptor may serve several managers concurrently. The number of concurrent managers can be limited using the property maxActiveClientCount.

The SNMP protocol adaptor specifies a default value (10) for the maxActiveClientCount property. When the adaptor is stopped, the active requests are interrupted and an error result is sent to the managers.

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

Summary

[Expand]
Inherited Constants
From class com.sun.jmx.snmp.daemon.CommunicatorServer
From interface com.sun.jmx.snmp.SnmpDefinitions
Public Constructors
SnmpAdaptorServer()
Initializes this SNMP protocol adaptor using the default port (161).
SnmpAdaptorServer(int port)
Initializes this SNMP protocol adaptor using the specified port.
SnmpAdaptorServer(InetAddressAcl acl)
Initializes this SNMP protocol adaptor using the default port (161) and the specified IP address based ACL implementation.
SnmpAdaptorServer(InetAddress addr)
Initializes this SNMP protocol adaptor using the default port (161) and the specified InetAddress.
SnmpAdaptorServer(InetAddressAcl acl, int port)
Initializes this SNMP protocol adaptor using the specified port and the specified IP address based ACL implementation.
SnmpAdaptorServer(int port, InetAddress addr)
Initializes this SNMP protocol adaptor using the specified port and the specified InetAddress.
SnmpAdaptorServer(InetAddressAcl acl, InetAddress addr)
Initializes this SNMP protocol adaptor using the specified IP address based ACL implementation and the specified InetAddress.
SnmpAdaptorServer(InetAddressAcl acl, int port, InetAddress addr)
Initializes this SNMP protocol adaptor using the specified port, the specified address based ACL implementation and the specified InetAddress.
SnmpAdaptorServer(boolean useAcl, int port, InetAddress addr)
Initializes this SNMP protocol adaptor using the specified port and the specified InetAddress.
Public Methods
SnmpMibHandler addMib(SnmpMibAgent mib, String contextName)
Adds a new MIB in the SNMP MIB handler.
SnmpMibHandler addMib(SnmpMibAgent mib, String contextName, SnmpOid[] oids)
Adds a new MIB in the SNMP MIB handler.
SnmpMibHandler addMib(SnmpMibAgent mib)
Adds a new MIB in the SNMP MIB handler.
SnmpMibHandler addMib(SnmpMibAgent mib, SnmpOid[] oids)
Adds a new MIB in the SNMP MIB handler.
int getActiveClientCount()
Gets the number of managers currently being processed by this SNMP protocol adaptor.
boolean getAuthRespEnabled()
Returns true if this SNMP protocol adaptor sends a response in case of authentication failure.
boolean getAuthTrapEnabled()
Returns true if authentication traps are enabled.
Integer getBufferSize()
Returns the buffer size of this SNMP protocol adaptor.
String getEnterpriseOid()
Returns the enterprise OID.
InetAddressAcl getInetAddressAcl()
Returns the Ip address based ACL used by this SNMP protocol adaptor.
int getInformPort()
Returns the port used by this SNMP protocol adaptor for sending inform requests.
int getMaxActiveClientCount()
Gets the maximum number of managers that this SNMP protocol adaptor can process concurrently.
final int getMaxTries()
Gets the number of times to try sending an inform request before giving up.
String[] getMibs()
Returns the names of the MIBs available in this SNMP protocol adaptor.
SnmpPduFactory getPduFactory()
Returns the message factory of this SNMP protocol adaptor.
int getPort()
Return the actual port to which the adaptor is bound.
String getProtocol()
Returns the protocol of this SNMP protocol adaptor.
int getServedClientCount()
Gets the number of managers that have been processed by this SNMP protocol adaptor since its creation.
Long getSnmpInASNParseErrs()
Returns the snmpInASNParseErrs value defined in MIB-II.
Long getSnmpInBadCommunityNames()
Returns the snmpInBadCommunityNames value defined in MIB-II.
Long getSnmpInBadCommunityUses()
Returns the snmpInBadCommunityUses value defined in MIB-II.
Long getSnmpInBadVersions()
Returns the snmpInBadVersions value defined in MIB-II.
Long getSnmpInGetNexts()
Returns the snmpInGetNexts value defined in MIB-II.
Long getSnmpInGetRequests()
Returns the snmpInGetRequests value defined in MIB-II.
Long getSnmpInPkts()
Returns the snmpInPkts value defined in MIB-II.
Long getSnmpInSetRequests()
Returns the snmpInSetRequests value defined in MIB-II.
Long getSnmpInTotalReqVars()
Returns the snmpInTotalReqVars value defined in MIB-II.
Long getSnmpInTotalSetVars()
Returns the snmpInTotalSetVars value defined in MIB-II.
Long getSnmpOutBadValues()
Returns the snmpOutBadValues value defined in MIB-II.
Long getSnmpOutGenErrs()
Returns the snmpOutGenErrs value defined in MIB-II.
Long getSnmpOutGetResponses()
Returns the snmpOutGetResponses value defined in MIB-II.
Long getSnmpOutNoSuchNames()
Returns the snmpOutNoSuchNames value defined in MIB-II.
Long getSnmpOutPkts()
Returns the snmpOutPkts value defined in MIB-II.
Long getSnmpOutTooBigs()
Returns the snmpOutTooBigs value defined in MIB-II.
Long getSnmpOutTraps()
Returns the snmpOutTraps value defined in MIB-II.
Long getSnmpProxyDrops()
Returns the snmpProxyDrops value defined in RFC 1907 NMPv2-MIB .
Long getSnmpSilentDrops()
Returns the snmpSilentDrops value defined in RFC 1907 NMPv2-MIB .
final int getTimeout()
Gets the timeout to wait for an inform response from the manager.
Integer getTrapPort()
Returns the port used by this SNMP protocol adaptor for sending traps.
SnmpUserDataFactory getUserDataFactory()
Get the user-data factory associated with this SNMP protocol adaptor.
final static int mapErrorStatus(int errorStatus, int protocolVersion, int reqPduType)
Method that maps an SNMP error status in the passed protocolVersion according to the provided pdu type.
void postDeregister()
Not used in this context.
void postRegister(Boolean registrationDone)
Not used in this context.
void preDeregister()
Not used in this context.
ObjectName preRegister(MBeanServer server, ObjectName name)
Allows the MBean to perform any operations it needs before being registered in the MBean server.
boolean removeMib(SnmpMibAgent mib)
Removes the specified MIB from the SNMP protocol adaptor.
boolean removeMib(SnmpMibAgent mib, String contextName, SnmpOid[] oids)
Removes the specified MIB from the SNMP protocol adaptor.
boolean removeMib(SnmpMibAgent mib, String contextName)
Removes the specified MIB from the SNMP protocol adaptor.
boolean removeMib(SnmpMibAgent mib, SnmpOid[] oids)
Removes the specified MIB from the SNMP protocol adaptor.
void setAuthRespEnabled(boolean enabled)
Sets the flag indicating if responses need to be sent in case of authentication failure.
void setAuthTrapEnabled(boolean enabled)
Sets the flag indicating if traps need to be sent in case of authentication failure.
void setBufferSize(Integer s)
Sets the buffer size of this SNMP protocol adaptor.
void setEnterpriseOid(String oid)
Sets the enterprise OID.
void setInformPort(int port)
Sets the port used by this SNMP protocol adaptor for sending inform requests.
void setMaxActiveClientCount(int c)
Sets the maximum number of managers this SNMP protocol adaptor can process concurrently.
synchronized final void setMaxTries(int newMaxTries)
Changes the maximun number of times to try sending an inform request before giving up.
void setPduFactory(SnmpPduFactory factory)
Sets the message factory of this SNMP protocol adaptor.
synchronized final void setTimeout(int newTimeout)
Changes the timeout to wait for an inform response from the manager.
void setTrapPort(Integer port)
Sets the port used by this SNMP protocol adaptor for sending traps.
void setTrapPort(int port)
Sets the port used by this SNMP protocol adaptor for sending traps.
void setUserDataFactory(SnmpUserDataFactory factory)
Set the user-data factory of this SNMP protocol adaptor.
SnmpInformRequest snmpInformRequest(InetAddress addr, String cs, SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList)
Sends an inform using SNMP V2 inform request format.
SnmpInformRequest snmpInformRequest(SnmpPeer peer, SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList)
Sends an inform using SNMP V2 inform request format.
Vector snmpInformRequest(SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList)
Sends an inform using SNMP V2 inform request format.
void snmpPduTrap(InetAddress address, SnmpPduPacket pdu)
Send the specified trap PDU to the passed InetAddress.
void snmpPduTrap(SnmpPeer peer, SnmpPduPacket pdu)
Send the specified trap PDU to the passed SnmpPeer.
void snmpV1Trap(InetAddress addr, SnmpIpAddress agentAddr, String cs, SnmpOid enterpOid, int generic, int specific, SnmpVarBindList varBindList, SnmpTimeticks time)
Sends a trap using SNMP V1 trap format.
void snmpV1Trap(SnmpPeer peer, SnmpIpAddress agentAddr, SnmpOid enterpOid, int generic, int specific, SnmpVarBindList varBindList, SnmpTimeticks time)
Sends a trap using SNMP V1 trap format.
void snmpV1Trap(InetAddress addr, String cs, int generic, int specific, SnmpVarBindList varBindList)
Sends a trap using SNMP V1 trap format.
void snmpV1Trap(int generic, int specific, SnmpVarBindList varBindList)
Sends a trap using SNMP V1 trap format.
void snmpV2Trap(SnmpPeer peer, SnmpOid trapOid, SnmpVarBindList varBindList, SnmpTimeticks time)
Sends a trap using SNMP V2 trap format.
void snmpV2Trap(SnmpOid trapOid, SnmpVarBindList varBindList)
Sends a trap using SNMP V2 trap format.
void snmpV2Trap(InetAddress addr, String cs, SnmpOid trapOid, SnmpVarBindList varBindList)
Sends a trap using SNMP V2 trap format.
void snmpV2Trap(InetAddress addr, String cs, SnmpOid trapOid, SnmpVarBindList varBindList, SnmpTimeticks time)
Sends a trap using SNMP V2 trap format.
void stop()
Stops this SNMP protocol adaptor.
Protected Methods
Thread createMainThread()
void doBind()
Creates the datagram socket.
void doError(Exception e)
void doProcess()
Not used in this context.
void doReceive()
Reads a packet from the datagram socket and creates a request handler which decodes and processes the request.
void doUnbind()
Closes the datagram socket.
void finalize()
Finalizer of the SNMP protocol adaptor objects.
int getBindTries()
The number of times the communicator server will attempt to bind before giving up.
[Expand]
Inherited Methods
From class com.sun.jmx.snmp.daemon.CommunicatorServer
From class java.lang.Object
From interface com.sun.jmx.snmp.agent.SnmpMibHandler
From interface com.sun.jmx.snmp.daemon.CommunicatorServerMBean
From interface com.sun.jmx.snmp.daemon.SnmpAdaptorServerMBean
From interface java.lang.Runnable
From interface javax.management.MBeanRegistration
From interface javax.management.NotificationBroadcaster

Public Constructors

public SnmpAdaptorServer ()

Initializes this SNMP protocol adaptor using the default port (161). Use the SnmpAcl default implementation of the InetAddressAcl interface.

public SnmpAdaptorServer (int port)

Initializes this SNMP protocol adaptor using the specified port. Use the SnmpAcl default implementation of the InetAddressAcl interface.

Parameters
port The port number for sending SNMP responses.

public SnmpAdaptorServer (InetAddressAcl acl)

Initializes this SNMP protocol adaptor using the default port (161) and the specified IP address based ACL implementation.

Parameters
acl The InetAddressAcl implementation. null means no ACL - everybody is authorized.

public SnmpAdaptorServer (InetAddress addr)

Initializes this SNMP protocol adaptor using the default port (161) and the specified InetAddress. Use the SnmpAcl default implementation of the InetAddressAcl interface.

Parameters
addr The IP address to bind.

public SnmpAdaptorServer (InetAddressAcl acl, int port)

Initializes this SNMP protocol adaptor using the specified port and the specified IP address based ACL implementation.

Parameters
acl The InetAddressAcl implementation. null means no ACL - everybody is authorized.
port The port number for sending SNMP responses.

public SnmpAdaptorServer (int port, InetAddress addr)

Initializes this SNMP protocol adaptor using the specified port and the specified InetAddress. Use the SnmpAcl default implementation of the InetAddressAcl interface.

Parameters
port The port number for sending SNMP responses.
addr The IP address to bind.

public SnmpAdaptorServer (InetAddressAcl acl, InetAddress addr)

Initializes this SNMP protocol adaptor using the specified IP address based ACL implementation and the specified InetAddress.

Parameters
acl The InetAddressAcl implementation.
addr The IP address to bind.

public SnmpAdaptorServer (InetAddressAcl acl, int port, InetAddress addr)

Initializes this SNMP protocol adaptor using the specified port, the specified address based ACL implementation and the specified InetAddress.

Parameters
acl The InetAddressAcl implementation.
port The port number for sending SNMP responses.
addr The IP address to bind.

public SnmpAdaptorServer (boolean useAcl, int port, InetAddress addr)

Initializes this SNMP protocol adaptor using the specified port and the specified InetAddress. This constructor allows to initialize an SNMP adaptor without using the ACL mechanism (by setting the useAcl parameter to false).
This constructor must be used in particular with a platform that does not support the java.security.acl package like pJava.

Parameters
useAcl Specifies if this new SNMP adaptor uses the ACL mechanism. If the specified parameter is set to true, this constructor is equivalent to SnmpAdaptorServer((int)port,(InetAddress)addr).
port The port number for sending SNMP responses.
addr The IP address to bind.

Public Methods

public SnmpMibHandler addMib (SnmpMibAgent mib, String contextName)

Adds a new MIB in the SNMP MIB handler. In SNMP V1 and V2 the contextName is useless and this method is equivalent to addMib(SnmpMibAgent mib).

Parameters
mib The MIB to add.
contextName The MIB context name.
Returns
  • A reference on the SNMP MIB handler.
Throws
IllegalArgumentException If the parameter is null.

public SnmpMibHandler addMib (SnmpMibAgent mib, String contextName, SnmpOid[] oids)

Adds a new MIB in the SNMP MIB handler. In SNMP V1 and V2 the contextName is useless and this method is equivalent to addMib(SnmpMibAgent mib, SnmpOid[] oids).

Parameters
mib The MIB to add.
contextName The MIB context. If null is passed, will be registered in the default context.
oids The set of OIDs this agent implements.
Returns
  • A reference to the SNMP MIB handler.
Throws
IllegalArgumentException If the parameter is null.

public SnmpMibHandler addMib (SnmpMibAgent mib)

Adds a new MIB in the SNMP MIB handler.

Parameters
mib The MIB to add.
Returns
  • A reference to the SNMP MIB handler.
Throws
IllegalArgumentException If the parameter is null.

public SnmpMibHandler addMib (SnmpMibAgent mib, SnmpOid[] oids)

Adds a 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 nearer agent will be used on SNMP operations.

Parameters
mib The MIB to add.
oids The set of OIDs this agent implements.
Returns
  • A reference to the SNMP MIB handler.
Throws
IllegalArgumentException If the parameter is null.

public int getActiveClientCount ()

Gets the number of managers currently being processed by this SNMP protocol adaptor.

Returns
  • The number of managers currently being processed by this SNMP protocol adaptor.

public boolean getAuthRespEnabled ()

Returns true if this SNMP protocol adaptor sends a response in case of authentication failure.

When this feature is enabled, the SNMP protocol adaptor sends a response with noSuchName or readOnly when the authentication failed. If the flag is disabled, the SNMP protocol adaptor trashes the PDU silently.

The default behavior is to send responses.

Returns
  • true if responses are sent.

public boolean getAuthTrapEnabled ()

Returns true if authentication traps are enabled.

When this feature is enabled, the SNMP protocol adaptor sends an authenticationFailure trap each time an authentication fails.

The default behaviour is to send authentication traps.

Returns
  • true if authentication traps are enabled, false otherwise.

public Integer getBufferSize ()

Returns the buffer size of this SNMP protocol adaptor. This buffer size is used for both incoming request and outgoing inform requests. By default, buffer size 1024 is used.

Returns
  • The buffer size.

public String getEnterpriseOid ()

Returns the enterprise OID. It is used by snmpV1Trap to fill the 'enterprise' field of the trap request.

Returns
  • The OID in string format "x.x.x.x".

public InetAddressAcl getInetAddressAcl ()

Returns the Ip address based ACL used by this SNMP protocol adaptor.

Returns
  • The InetAddressAcl implementation.

public int getInformPort ()

Returns the port used by this SNMP protocol adaptor for sending inform requests. By default, port 162 is used.

Returns
  • The port number for sending SNMP inform requests.

public int getMaxActiveClientCount ()

Gets the maximum number of managers that this SNMP protocol adaptor can process concurrently.

Returns
  • The maximum number of managers that this SNMP protocol adaptor can process concurrently.

public final int getMaxTries ()

Gets the number of times to try sending an inform request before giving up. By default, a maximum of 3 tries is used.

Returns
  • The maximun number of tries.

public String[] getMibs ()

Returns the names of the MIBs available in this SNMP protocol adaptor.

Returns
  • An array of MIB names.

public SnmpPduFactory getPduFactory ()

Returns the message factory of this SNMP protocol adaptor.

Returns
  • The factory object.

public int getPort ()

Return the actual port to which the adaptor is bound. Can be different from the port given at construction time if that port number was 0.

Returns
  • the actual port to which the adaptor is bound.

public String getProtocol ()

Returns the protocol of this SNMP protocol adaptor.

Returns
  • The string "snmp".

public int getServedClientCount ()

Gets the number of managers that have been processed by this SNMP protocol adaptor since its creation.

Returns
  • The number of managers handled by this SNMP protocol adaptor since its creation. This counter is not reset by the stop method.

public Long getSnmpInASNParseErrs ()

Returns the snmpInASNParseErrs value defined in MIB-II.

Returns
  • The snmpInASNParseErrs value.

public Long getSnmpInBadCommunityNames ()

Returns the snmpInBadCommunityNames value defined in MIB-II.

Returns
  • The snmpInBadCommunityNames value.

public Long getSnmpInBadCommunityUses ()

Returns the snmpInBadCommunityUses value defined in MIB-II.

Returns
  • The snmpInBadCommunityUses value.

public Long getSnmpInBadVersions ()

Returns the snmpInBadVersions value defined in MIB-II.

Returns
  • The snmpInBadVersions value.

public Long getSnmpInGetNexts ()

Returns the snmpInGetNexts value defined in MIB-II.

Returns
  • The snmpInGetNexts value.

public Long getSnmpInGetRequests ()

Returns the snmpInGetRequests value defined in MIB-II.

Returns
  • The snmpInGetRequests value.

public Long getSnmpInPkts ()

Returns the snmpInPkts value defined in MIB-II.

Returns
  • The snmpInPkts value.

public Long getSnmpInSetRequests ()

Returns the snmpInSetRequests value defined in MIB-II.

Returns
  • The snmpInSetRequests value.

public Long getSnmpInTotalReqVars ()

Returns the snmpInTotalReqVars value defined in MIB-II.

Returns
  • The snmpInTotalReqVars value.

public Long getSnmpInTotalSetVars ()

Returns the snmpInTotalSetVars value defined in MIB-II.

Returns
  • The snmpInTotalSetVars value.

public Long getSnmpOutBadValues ()

Returns the snmpOutBadValues value defined in MIB-II.

Returns
  • The snmpOutBadValues value.

public Long getSnmpOutGenErrs ()

Returns the snmpOutGenErrs value defined in MIB-II.

Returns
  • The snmpOutGenErrs value.

public Long getSnmpOutGetResponses ()

Returns the snmpOutGetResponses value defined in MIB-II.

Returns
  • The snmpOutGetResponses value.

public Long getSnmpOutNoSuchNames ()

Returns the snmpOutNoSuchNames value defined in MIB-II.

Returns
  • The snmpOutNoSuchNames value.

public Long getSnmpOutPkts ()

Returns the snmpOutPkts value defined in MIB-II.

Returns
  • The snmpOutPkts value.

public Long getSnmpOutTooBigs ()

Returns the snmpOutTooBigs value defined in MIB-II.

Returns
  • The snmpOutTooBigs value.

public Long getSnmpOutTraps ()

Returns the snmpOutTraps value defined in MIB-II.

Returns
  • The snmpOutTraps value.

public Long getSnmpProxyDrops ()

Returns the snmpProxyDrops value defined in RFC 1907 NMPv2-MIB .

Returns
  • The snmpProxyDrops value.

public Long getSnmpSilentDrops ()

Returns the snmpSilentDrops value defined in RFC 1907 NMPv2-MIB .

Returns
  • The snmpSilentDrops value.

public final int getTimeout ()

Gets the timeout to wait for an inform response from the manager. By default, a timeout of 3 seconds is used.

Returns
  • The value of the timeout property.

public Integer getTrapPort ()

Returns the port used by this SNMP protocol adaptor for sending traps. By default, port 162 is used.

Returns
  • The port number for sending SNMP traps.

public SnmpUserDataFactory getUserDataFactory ()

Get the user-data factory associated with this SNMP protocol adaptor.

Returns
  • The factory object (null means no factory).

public static final int mapErrorStatus (int errorStatus, int protocolVersion, int reqPduType)

Method that maps an SNMP error status in the passed protocolVersion according to the provided pdu type.

Parameters
errorStatus The error status to convert.
protocolVersion The protocol version.
reqPduType The pdu type.

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 MBeanServer. The value false means that the registration phase has failed.

public void preDeregister ()

Not used in this context.

Throws
Exception

public ObjectName preRegister (MBeanServer server, ObjectName name)

Allows the MBean to perform any operations it needs before being registered in the MBean server. If the name of the SNMP protocol adaptor MBean is not specified, it is initialized with the default value: com.sun.jmx.snmp.ServiceName.DOMAIN:com.sun.jmx.snmp.ServiceName.SNMP_ADAPTOR_SERVER. If any exception is raised, the SNMP protocol adaptor MBean will not be registered in the MBean server.

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

public boolean removeMib (SnmpMibAgent mib)

Removes the specified MIB from the SNMP protocol adaptor.

Parameters
mib The MIB to be removed.
Returns
  • true if the specified mib was a MIB included in the SNMP MIB handler, false otherwise.

public boolean removeMib (SnmpMibAgent mib, String contextName, SnmpOid[] oids)

Removes the specified MIB from the SNMP protocol adaptor.

Parameters
mib The MIB to be removed.
contextName The context name used at registration time.
oids The oid the MIB was previously registered for.
Returns
  • true if the specified mib was a MIB included in the SNMP MIB handler, false otherwise.

public boolean removeMib (SnmpMibAgent mib, String contextName)

Removes the specified MIB from the SNMP protocol adaptor. In SNMP V1 and V2 the contextName is useless and this method is equivalent to removeMib(SnmpMibAgent mib).

Parameters
mib The MIB to be removed.
contextName The context name used at registration time.
Returns
  • true if the specified mib was a MIB included in the SNMP MIB handler, false otherwise.

public boolean removeMib (SnmpMibAgent mib, SnmpOid[] oids)

Removes the specified MIB from the SNMP protocol adaptor.

Parameters
mib The MIB to be removed.
oids The oid the MIB was previously registered for.
Returns
  • true if the specified mib was a MIB included in the SNMP MIB handler, false otherwise.

public void setAuthRespEnabled (boolean enabled)

Sets the flag indicating if responses need to be sent in case of authentication failure.

Parameters
enabled Flag indicating if responses need to be sent.

public void setAuthTrapEnabled (boolean enabled)

Sets the flag indicating if traps need to be sent in case of authentication failure.

Parameters
enabled Flag indicating if traps need to be sent.

public void setBufferSize (Integer s)

Sets the buffer size of this SNMP protocol adaptor. This buffer size is used for both incoming request and outgoing inform requests.

Parameters
s The buffer size.
Throws
IllegalStateException This method has been invoked while the communicator was ONLINE or STARTING.

public void setEnterpriseOid (String oid)

Sets the enterprise OID.

Parameters
oid The OID in string format "x.x.x.x".
Throws
IllegalArgumentException The string format is incorrect

public void setInformPort (int port)

Sets the port used by this SNMP protocol adaptor for sending inform requests.

Parameters
port The port number for sending SNMP inform requests.

public void setMaxActiveClientCount (int c)

Sets the maximum number of managers this SNMP protocol adaptor can process concurrently.

Parameters
c The number of managers.
Throws
IllegalStateException This method has been invoked while the communicator was ONLINE or STARTING.

public final synchronized void setMaxTries (int newMaxTries)

Changes the maximun number of times to try sending an inform request before giving up.

Parameters
newMaxTries The maximun number of tries.

public void setPduFactory (SnmpPduFactory factory)

Sets the message factory of this SNMP protocol adaptor.

Parameters
factory The factory object (null means the default factory).

public final synchronized void setTimeout (int newTimeout)

Changes the timeout to wait for an inform response from the manager.

Parameters
newTimeout The timeout (in milliseconds).

public void setTrapPort (Integer port)

Sets the port used by this SNMP protocol adaptor for sending traps.

Parameters
port The port number for sending SNMP traps.

public void setTrapPort (int port)

Sets the port used by this SNMP protocol adaptor for sending traps.

Parameters
port The port number for sending SNMP traps.

public void setUserDataFactory (SnmpUserDataFactory factory)

Set the user-data factory of this SNMP protocol adaptor.

Parameters
factory The factory object (null means no factory).

public SnmpInformRequest snmpInformRequest (InetAddress addr, String cs, SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList)

Sends an inform using SNMP V2 inform request format.
The inform is sent to the specified InetAddress destination using the specified community string.
The variable list included in the outgoing inform is composed of the following items:

  • sysUpTime.0 with its current value
  • snmpTrapOid.0 with the value specified by trapOid
  • all the (oid,values) from the specified varBindList
To send an inform request, the SNMP adaptor server must be active.

Parameters
addr The InetAddress destination for this inform request.
cs The community string to be used for the inform request.
cb The callback that is invoked when a request is complete.
trapOid The OID identifying the trap.
varBindList A list of SnmpVarBind instances or null.
Returns
  • The inform request object.
Throws
IllegalStateException This method has been invoked while the SNMP adaptor server was not active.
IOException An I/O error occurred while sending the inform request.
SnmpStatusException If the inform request exceeds the limit defined by bufferSize.

public SnmpInformRequest snmpInformRequest (SnmpPeer peer, SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList)

Sends an inform using SNMP V2 inform request format.
The inform is sent to the specified SnmpPeer destination.
The community string used is the one located in the SnmpPeer parameters (SnmpParameters.getInformCommunity() ).
The variable list included in the outgoing inform is composed of the following items:

  • sysUpTime.0 with its current value
  • snmpTrapOid.0 with the value specified by trapOid
  • all the (oid,values) from the specified varBindList
To send an inform request, the SNMP adaptor server must be active.

Parameters
peer The SnmpPeer destination for this inform request.
cb The callback that is invoked when a request is complete.
trapOid The OID identifying the trap.
varBindList A list of SnmpVarBind instances or null.
Returns
  • The inform request object.
Throws
IllegalStateException This method has been invoked while the SNMP adaptor server was not active.
IOException An I/O error occurred while sending the inform request.
SnmpStatusException If the inform request exceeds the limit defined by bufferSize.

public Vector snmpInformRequest (SnmpInformHandler cb, SnmpOid trapOid, SnmpVarBindList varBindList)

Sends an inform using SNMP V2 inform request format.
The inform request is sent to each destination defined in the ACL file (if available). If no ACL file or no destinations are available, the inform request is sent to the local host.
The variable list included in the outgoing inform is composed of the following items:

  • sysUpTime.0 with its current value
  • snmpTrapOid.0 with the value specified by trapOid
  • all the (oid,values) from the specified varBindList
To send an inform request, the SNMP adaptor server must be active.

Parameters
cb The callback that is invoked when a request is complete.
trapOid The OID identifying the trap.
varBindList A list of SnmpVarBind instances or null.
Returns
  • A vector of com.sun.jmx.snmp.daemon.SnmpInformRequest objects.

    If there is no destination host for this inform request, the returned vector will be empty.

Throws
IllegalStateException This method has been invoked while the SNMP adaptor server was not active.
IOException An I/O error occurred while sending the inform request.
SnmpStatusException If the inform request exceeds the limit defined by bufferSize.

public void snmpPduTrap (InetAddress address, SnmpPduPacket pdu)

Send the specified trap PDU to the passed InetAddress.

Parameters
address The destination address.
pdu The pdu to send.
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpPduTrap (SnmpPeer peer, SnmpPduPacket pdu)

Send the specified trap PDU to the passed SnmpPeer.

Parameters
peer The destination peer. The Read community string is used of SnmpParameters is used as the trap community string.
pdu The pdu to send.
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpV1Trap (InetAddress addr, SnmpIpAddress agentAddr, String cs, SnmpOid enterpOid, int generic, int specific, SnmpVarBindList varBindList, SnmpTimeticks time)

Sends a trap using SNMP V1 trap format.
The trap is sent to the specified InetAddress destination using the specified parameters (and the ACL file is not used). Note that if the specified InetAddress destination is null, then the ACL file mechanism is used.

Parameters
addr The InetAddress destination of the trap.
agentAddr The agent address to be used for the trap.
cs The community string to be used for the trap.
enterpOid The enterprise OID to be used for the trap.
generic The generic number of the trap.
specific The specific number of the trap.
varBindList A list of SnmpVarBind instances or null.
time The time stamp (overwrite the current time).
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpV1Trap (SnmpPeer peer, SnmpIpAddress agentAddr, SnmpOid enterpOid, int generic, int specific, SnmpVarBindList varBindList, SnmpTimeticks time)

Sends a trap using SNMP V1 trap format.
The trap is sent to the specified SnmpPeer destination. The community string used is the one located in the SnmpPeer parameters (SnmpParameters.getRdCommunity() ).

Parameters
peer The SnmpPeer destination of the trap.
agentAddr The agent address to be used for the trap.
enterpOid The enterprise OID to be used for the trap.
generic The generic number of the trap.
specific The specific number of the trap.
varBindList A list of SnmpVarBind instances or null.
time The time stamp (overwrite the current time).
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpV1Trap (InetAddress addr, String cs, int generic, int specific, SnmpVarBindList varBindList)

Sends a trap using SNMP V1 trap format.
The trap is sent to the specified InetAddress destination using the specified community string (and the ACL file is not used).

Parameters
addr The InetAddress destination of the trap.
cs The community string to be used for the trap.
generic The generic number of the trap.
specific The specific number of the trap.
varBindList A list of SnmpVarBind instances or null.
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpV1Trap (int generic, int specific, SnmpVarBindList varBindList)

Sends a trap using SNMP V1 trap format.
The trap is sent to each destination defined in the ACL file (if available). If no ACL file or no destinations are available, the trap is sent to the local host.

Parameters
generic The generic number of the trap.
specific The specific number of the trap.
varBindList A list of SnmpVarBind instances or null.
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpV2Trap (SnmpPeer peer, SnmpOid trapOid, SnmpVarBindList varBindList, SnmpTimeticks time)

Sends a trap using SNMP V2 trap format.
The trap is sent to the specified SnmpPeer destination.
The community string used is the one located in the SnmpPeer parameters (SnmpParameters.getRdCommunity() ).
The variable list included in the outgoing trap is composed of the following items:

  • sysUpTime.0 with the value specified by time
  • snmpTrapOid.0 with the value specified by trapOid
  • all the (oid,values) from the specified varBindList

Parameters
peer The SnmpPeer destination of the trap.
trapOid The OID identifying the trap.
varBindList A list of SnmpVarBind instances or null.
time The time stamp (overwrite the current time).
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpV2Trap (SnmpOid trapOid, SnmpVarBindList varBindList)

Sends a trap using SNMP V2 trap format.
The trap is sent to each destination defined in the ACL file (if available). If no ACL file or no destinations are available, the trap is sent to the local host.
The variable list included in the outgoing trap is composed of the following items:

  • sysUpTime.0 with its current value
  • snmpTrapOid.0 with the value specified by trapOid
  • all the (oid,values) from the specified varBindList

Parameters
trapOid The OID identifying the trap.
varBindList A list of SnmpVarBind instances or null.
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpV2Trap (InetAddress addr, String cs, SnmpOid trapOid, SnmpVarBindList varBindList)

Sends a trap using SNMP V2 trap format.
The trap is sent to the specified InetAddress destination using the specified community string (and the ACL file is not used).
The variable list included in the outgoing trap is composed of the following items:

  • sysUpTime.0 with its current value
  • snmpTrapOid.0 with the value specified by trapOid
  • all the (oid,values) from the specified varBindList

Parameters
addr The InetAddress destination of the trap.
cs The community string to be used for the trap.
trapOid The OID identifying the trap.
varBindList A list of SnmpVarBind instances or null.
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void snmpV2Trap (InetAddress addr, String cs, SnmpOid trapOid, SnmpVarBindList varBindList, SnmpTimeticks time)

Sends a trap using SNMP V2 trap format.
The trap is sent to the specified InetAddress destination using the specified parameters (and the ACL file is not used). Note that if the specified InetAddress destination is null, then the ACL file mechanism is used.
The variable list included in the outgoing trap is composed of the following items:

  • sysUpTime.0 with the value specified by time
  • snmpTrapOid.0 with the value specified by trapOid
  • all the (oid,values) from the specified varBindList

Parameters
addr The InetAddress destination of the trap.
cs The community string to be used for the trap.
trapOid The OID identifying the trap.
varBindList A list of SnmpVarBind instances or null.
time The time stamp (overwrite the current time).
Throws
IOException An I/O error occurred while sending the trap.
SnmpStatusException If the trap exceeds the limit defined by bufferSize.

public void stop ()

Stops this SNMP protocol adaptor. Closes the datagram socket.

Has no effect if this SNMP protocol adaptor is OFFLINE or STOPPING.

Protected Methods

protected Thread createMainThread ()

protected void doBind ()

Creates the datagram socket.

protected void doError (Exception e)

protected void doProcess ()

Not used in this context.

protected void doReceive ()

Reads a packet from the datagram socket and creates a request handler which decodes and processes the request.

protected void doUnbind ()

Closes the datagram socket.

protected void finalize ()

Finalizer of the SNMP protocol adaptor objects. This method is called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

Closes the datagram socket associated to this SNMP protocol adaptor.

protected int getBindTries ()

The number of times the communicator server will attempt to bind before giving up. We attempt only once...

Returns
  • 1