An SNMP agent is an application which responds to SNMP requests formulated as get and set operations on variables defined in a MIB. This behavior can be fully mapped onto the MBean server and MBean resources of a Java Dynamic Management agent, provided those MBeans specifically implement the MIB.
The SNMP protocol adaptor implements the both the SNMP v1 and v2 protocols. It responds to request in SNMP and translates that request into management operations on the specific MIB MBeans. The SNMP adaptor may also send traps, the equivalent of a JMX notification, in response to SNMP events or errors.
The SNMP protocol adaptor is able to manage an unlimited number of different MIBs. These MIBs may be loaded or unloaded dynamically, by registering and unregistering the corresponding MBeans. The adaptor will attempt to respond to an SNMP request by accessing all loaded MIBs. However, MIBs are only dynamic through the agent application, the SNMP protocol does not support requests for loading or unloading MIBs.
One advantage of the dual JMX-SNMP agent is that MIBs may be loaded dynamically in response to network conditions, or even in response to SNMP requests. Other Java Dynamic Management applications may also access the MIB through its MBean interface. For example, the value of a MIB variable might be computed in another application and written by a call to the MBean setter.
The SNMP protocol adaptor also sends inform requests from an SNMP agent to an SNMP manager. The SNMP manager will then send an inform response back to the SNMP agent.