public class AgentConfigManager extends Object implements Runnable
AgentConfigManager
is the main component of a SNMP4J-Agent.
It puts together agent configuration and agent components like command
processor, message dispatcher, managed objects and server, USM, VACM, etc.Modifier and Type | Class and Description |
---|---|
class |
AgentConfigManager.AgentState |
Constructor and Description |
---|
AgentConfigManager(org.snmp4j.smi.OctetString agentsOwnEngineID,
org.snmp4j.MessageDispatcher messageDispatcher,
VACM vacm,
MOServer[] moServers,
org.snmp4j.util.WorkerPool workerPool,
MOInputFactory configurationFactory,
MOPersistenceProvider persistenceProvider,
EngineBootsProvider engineBootsProvider)
Creates a SNMP agent configuration which can be run by calling
run() later. |
AgentConfigManager(org.snmp4j.smi.OctetString agentsOwnEngineID,
org.snmp4j.MessageDispatcher messageDispatcher,
VACM vacm,
MOServer[] moServers,
org.snmp4j.util.WorkerPool workerPool,
MOInputFactory configurationFactory,
MOPersistenceProvider persistenceProvider,
EngineBootsProvider engineBootsProvider,
MOFactory moFactory)
Creates a SNMP agent configuration which can be run by calling
run() later. |
Modifier and Type | Method and Description |
---|---|
void |
configure()
Configures components and managed objects.
|
boolean |
continueProcessing()
Continues processing of SNMP requests by coupling message dispatcher and
agent.
|
protected CommandProcessor |
createCommandProcessor(org.snmp4j.smi.OctetString engineID)
Creates the command processor.
|
protected NotificationOriginator |
createNotificationOriginator() |
protected ProxyForwarder |
createProxyForwarder(CommandProcessor agent)
Creates and registers the default proxy forwarder application
(
ProxyForwarderImpl ). |
protected org.snmp4j.Session |
createSnmpSession(org.snmp4j.MessageDispatcher dispatcher)
Creates the SNMP session to be used for this agent.
|
protected org.snmp4j.security.TSM |
createTSM()
Creates the TSM used by this agent configuration.
|
protected org.snmp4j.security.USM |
createUSM()
Creates the USM used by this agent configuration.
|
protected void |
fireLaunchNotifications()
Fire notifications after agent start, i.e.
|
NotificationOriginator |
getAgentNotificationOriginator()
Returns the notification originator of the agent.
|
protected org.snmp4j.smi.OctetString |
getContext(MOGroup mibGroup,
org.snmp4j.smi.OctetString defaultContext)
This method can be overwritten by a subagent to specify the contexts
each MIB module (group) will be registered to.
|
org.snmp4j.smi.OctetString |
getDefaultContext()
Returns the default context - which is the context that is used by the
base agent to register its MIB objects.
|
NotificationLogMib |
getNotificationLogMIB()
Returns the NOTIFICATION-LOG-MIB implementation used by this config
manager.
|
NotificationOriginator |
getNotificationOriginator()
Returns the notification originator of this agent configuration.
|
int |
getPersistenceImportMode()
Returns the currently active import mode for the
MOPersistenceProvider . |
Snmp4jConfigMib |
getSnmp4jConfigMIB()
Returns the SNMP4J-CONFIG-MIB implementation used by this config
manager.
|
Snmp4jLogMib |
getSnmp4jLogMIB()
Returns the SNMP4J-LOG-MIB implementation used by this config
manager.
|
Snmp4jProxyMib |
getSnmp4jProxyMIB()
Returns the SNMP4J-CONFIG-MIB implementation used by this config
manager.
|
SnmpCommunityMIB |
getSnmpCommunityMIB()
Returns the SNMP-COMMUNITY-MIB implementation used by this config manager.
|
SnmpMpdMib |
getSnmpMpdMib()
Returns the SNMPv2-MPD-MIB implementation used by this config manager.
|
SnmpNotificationMIB |
getSnmpNotificationMIB()
Returns the SNMP-NOTIFICATION-MIB implementation used by this config manager.
|
SnmpTargetMIB |
getSnmpTargetMIB()
Returns the SNMP-TARGET-MIB implementation used by this config manager.
|
SNMPv2MIB |
getSNMPv2MIB()
Returns the SNMPv2-MIB implementation used by this config manager.
|
int |
getState()
Returns the state of the agent.
|
protected org.snmp4j.security.SecurityProtocols |
getSupportedSecurityProtocols()
Gets the set of security protocols supported by this agent configuration.
|
org.snmp4j.smi.OctetString |
getSysDescr()
Returns the sysDescr.0 value for this agent which can be modified by
altering its value.
|
org.snmp4j.smi.OID |
getSysOID()
Gets the system OID which can be modified by altering its value.
|
org.snmp4j.smi.Integer32 |
getSysServices()
Gets the system services ID which can be modified by altering its value.
|
SysUpTime |
getSysUpTime()
Gets the sysUpTime.0 instance for the default context.
|
org.snmp4j.security.USM |
getUsm() |
UsmMIB |
getUsmMIB() |
VACM |
getVACM()
Returns the VACM used by this agent config manager.
|
VacmMIB |
getVacmMIB() |
void |
initialize() |
protected void |
initMandatoryMIBs() |
protected void |
initMessageDispatcherWithMPs(org.snmp4j.MessageDispatcher mp) |
protected void |
initNotificationLogMIB(VACM vacm,
SnmpNotificationMIB notifyMIB) |
protected void |
initOptionalMIBs() |
protected void |
initSecurityModels(EngineBootsProvider engineBootsProvider) |
void |
initSnmp4jConfigMIB(MOPersistenceProvider[] persistenceProvider) |
void |
initSnmp4jLogMIB() |
void |
initSnmp4jProxyMIB(org.snmp4j.smi.OctetString context) |
protected void |
launch()
Launch the agent by registering and lauching (i.e., set to listen mode)
transport mappings.
|
protected void |
launchTransportMappings() |
protected static void |
launchTransportMappings(Collection<? extends org.snmp4j.TransportMapping> transportMappings)
Puts a list of transport mappings into listen mode.
|
protected void |
linkCounterListener() |
protected void |
registerMIBs(org.snmp4j.smi.OctetString context)
Register the initialized MIB modules in the specified context of the agent.
|
void |
registerShutdownHook()
Registers a shutdown hook
Thread at the Runtime
instance. |
protected void |
registerTransportMappings() |
boolean |
restoreState()
Restore a previously persistently saved state - if available.
|
void |
run()
Initializes, configures, restores agent state, and then launches the
SNMP agent depending on its current run state.
|
void |
saveState()
Save the state of the agent persistently - if necessary persistent
storage is available.
|
void |
setNotificationOriginator(NotificationOriginator notificationOriginator)
Sets the notification originator of this agent configuration.
|
void |
setPersistenceImportMode(int importMode)
Sets the import mode for the
MOPersistenceProvider . |
void |
setTableSizeLimit(int sizeLimit)
Sets the table size limit for the tables in this agent.
|
void |
setTableSizeLimits(Properties sizeLimits)
Sets the table size limits for the tables in this agent.
|
void |
setupProxyForwarder() |
void |
shutdown()
Shutdown the agent by closing the internal SNMP session - including the
transport mappings provided through the configured
MessageDispatcher and then store the agent state to persistent
storage (if available). |
protected static void |
stopTransportMappings(Collection<? extends org.snmp4j.TransportMapping> transportMappings)
Closes a list of transport mappings.
|
void |
suspendProcessing()
Suspends processing of SNMP requests.
|
protected void |
unregisterMIBs(org.snmp4j.smi.OctetString context)
Unregister the initialized MIB modules from the default context of the
agent.
|
public static final int STATE_CREATED
public static final int STATE_INITIALIZED
public static final int STATE_CONFIGURED
public static final int STATE_RESTORED
public static final int STATE_SUSPENDED
public static final int STATE_RUNNING
public static final int STATE_UNSAVED_CHANGES
public static final int STATE_SAVED
public static final int STATE_SHUTDOWN
protected CommandProcessor agent
protected org.snmp4j.util.WorkerPool workerPool
protected VACM vacm
protected org.snmp4j.security.USM usm
protected MOServer[] servers
protected org.snmp4j.Session session
protected org.snmp4j.MessageDispatcher dispatcher
protected org.snmp4j.smi.OctetString engineID
protected ProxyForwarder proxyForwarder
protected NotificationOriginator notificationOriginator
protected MOInputFactory configuration
protected MOPersistenceProvider persistenceProvider
protected int persistenceImportMode
protected EngineBootsProvider engineBootsProvider
protected SNMPv2MIB snmpv2MIB
protected SnmpMpdMib snmpMpdMib
protected SnmpTargetMIB targetMIB
protected SnmpCommunityMIB communityMIB
protected SnmpNotificationMIB notificationMIB
protected SnmpFrameworkMIB frameworkMIB
protected UsmMIB usmMIB
protected VacmMIB vacmMIB
protected SnmpTlsTmMib tlsTmMib
protected SnmpProxyMIB proxyMIB
protected Snmp4jLogMib snmp4jLogMIB
protected Snmp4jConfigMib snmp4jConfigMIB
protected Snmp4jProxyMib snmp4jProxyMIB
protected NotificationLogMib notificationLogMIB
protected org.snmp4j.smi.UnsignedInteger32 notificationLogDefaultLimit
protected org.snmp4j.smi.UnsignedInteger32 notificaitonLogGlobalLimit
protected org.snmp4j.smi.UnsignedInteger32 notificaitonLogGlobalAge
protected MOFactory moFactory
protected org.snmp4j.smi.OctetString sysDescr
protected org.snmp4j.smi.OID sysOID
protected org.snmp4j.smi.Integer32 sysServices
protected org.snmp4j.smi.OctetString defaultContext
protected AgentConfigManager.AgentState runState
protected MOTableSizeLimit<MOTableRow> tableSizeLimit
public AgentConfigManager(org.snmp4j.smi.OctetString agentsOwnEngineID, org.snmp4j.MessageDispatcher messageDispatcher, VACM vacm, MOServer[] moServers, org.snmp4j.util.WorkerPool workerPool, MOInputFactory configurationFactory, MOPersistenceProvider persistenceProvider, EngineBootsProvider engineBootsProvider)
run()
later.agentsOwnEngineID
- the authoritative engine ID of the agent.messageDispatcher
- the MessageDispatcher to use. The message dispatcher must be configured
outside, i.e. transport mappings have to be added before this
constructor is being called.vacm
- a view access control model. Typically, this parameter is set to
null
to use the default VACM associated with the
VacmMIB
.moServers
- the managed object server(s) that serve the managed objects available
to this agent.workerPool
- the WorkerPool
to be used to process incoming request.configurationFactory
- a MOInputFactory
that creates a MOInput
stream
with containing serialized ManagedObject information with the agent's
configuration or null
otherwise.persistenceProvider
- the primary MOPersistenceProvider
to be used to load
and store persistent MOs.engineBootsProvider
- the provider of engine boots counter.public AgentConfigManager(org.snmp4j.smi.OctetString agentsOwnEngineID, org.snmp4j.MessageDispatcher messageDispatcher, VACM vacm, MOServer[] moServers, org.snmp4j.util.WorkerPool workerPool, MOInputFactory configurationFactory, MOPersistenceProvider persistenceProvider, EngineBootsProvider engineBootsProvider, MOFactory moFactory)
run()
later.agentsOwnEngineID
- the authoritative engine ID of the agent.messageDispatcher
- the MessageDispatcher to use. The message dispatcher must be configured
outside, i.e. transport mappings have to be added before this
constructor is being called.vacm
- a view access control model. Typically, this parameter is set to
null
to use the default VACM associated with the
VacmMIB
.moServers
- the managed object server(s) that serve the managed objects available
to this agent.workerPool
- the WorkerPool
to be used to process incoming request.configurationFactory
- a MOInputFactory
that creates a MOInput
stream
with containing serialized ManagedObject information with the agent's
configuration or null
otherwise.persistenceProvider
- the primary MOPersistenceProvider
to be used to load
and store persistent MOs.engineBootsProvider
- the provider of engine boots counter.moFactory
- the MOFactory
to be used to create ManagedObject
s
created by this config manager. If null
the
DefaultMOFactory
will be used.public void run()
initialize()
has not yet been called it will be called before
the agent is being configured in the next step.
See also initialize()
, configure()
,
restoreState()
, and launch()
.public int getState()
STATE_CREATED
thru
STATE_RUNNING
.public VACM getVACM()
public SNMPv2MIB getSNMPv2MIB()
public SnmpMpdMib getSnmpMpdMib()
public SnmpTargetMIB getSnmpTargetMIB()
public SnmpNotificationMIB getSnmpNotificationMIB()
public SnmpCommunityMIB getSnmpCommunityMIB()
public NotificationLogMib getNotificationLogMIB()
public Snmp4jLogMib getSnmp4jLogMIB()
public Snmp4jConfigMib getSnmp4jConfigMIB()
public Snmp4jProxyMib getSnmp4jProxyMIB()
protected void launch()
protected void fireLaunchNotifications()
public boolean continueProcessing()
STATE_SUSPENDED
.true
if the running state could be restored,
false
otherwise.public void suspendProcessing()
public void shutdown()
MessageDispatcher
and then store the agent state to persistent
storage (if available).public void registerShutdownHook()
Thread
at the Runtime
instance.public void initSnmp4jLogMIB()
public void initSnmp4jConfigMIB(MOPersistenceProvider[] persistenceProvider)
public void initSnmp4jProxyMIB(org.snmp4j.smi.OctetString context)
public VacmMIB getVacmMIB()
public org.snmp4j.security.USM getUsm()
public UsmMIB getUsmMIB()
protected void initNotificationLogMIB(VACM vacm, SnmpNotificationMIB notifyMIB)
protected void initSecurityModels(EngineBootsProvider engineBootsProvider)
protected void initMessageDispatcherWithMPs(org.snmp4j.MessageDispatcher mp)
protected void registerTransportMappings()
protected void launchTransportMappings() throws IOException
IOException
protected static void launchTransportMappings(Collection<? extends org.snmp4j.TransportMapping> transportMappings) throws IOException
transportMappings
- a list of TransportMapping
instances.IOException
- if a transport cannot listen to incoming messages.protected static void stopTransportMappings(Collection<? extends org.snmp4j.TransportMapping> transportMappings) throws IOException
transportMappings
- a list of TransportMapping
instances.IOException
- if a transport cannot be closed.public void saveState()
public boolean restoreState()
true
if the agent state could be restored successfully,
false
otherwise.public void configure()
protected void initMandatoryMIBs()
protected void linkCounterListener()
protected org.snmp4j.security.SecurityProtocols getSupportedSecurityProtocols()
SecurityProtocols.getInstance()
by default after initialization
by SecurityProtocols.addDefaultProtocols()
.protected org.snmp4j.security.USM createUSM()
engineBootsProvider
and engineID
.protected org.snmp4j.security.TSM createTSM()
engineBootsProvider
and engineID
.public org.snmp4j.smi.Integer32 getSysServices()
public org.snmp4j.smi.OID getSysOID()
public org.snmp4j.smi.OctetString getSysDescr()
public SysUpTime getSysUpTime()
SysUpTime
instance.public NotificationOriginator getNotificationOriginator()
NotificationOriginator
of the agent,
use getAgentNotificationOriginator()
instead.NotificationOriginator
instance.public NotificationOriginator getAgentNotificationOriginator()
NotificationOriginator
for sending your notifications.NotificationOriginator
instance.public void setNotificationOriginator(NotificationOriginator notificationOriginator)
notificationOriginator
- a NotificationOriginator
instance.public void initialize()
public void setTableSizeLimits(Properties sizeLimits)
ConcurrentModificationException
might be thrown.sizeLimits
- a set of properties as defined by MOTableSizeLimit
.public void setTableSizeLimit(int sizeLimit)
ConcurrentModificationException
might be thrown.sizeLimit
- the maximum size (numer of rows) of tables allowed for this agent.protected void initOptionalMIBs()
public org.snmp4j.smi.OctetString getDefaultContext()
null
which causes the objects to be registered virtually for all contexts.
In that case, subagents for example my not register their own objects
under the same subtree(s) in any context. To allow subagents to register
their own instances of those MIB modules, an empty OctetString
should be used as default context instead.null
or an OctetString
(normally the empty
string) denoting the context used for registering default MIBs.protected org.snmp4j.smi.OctetString getContext(MOGroup mibGroup, org.snmp4j.smi.OctetString defaultContext)
mibGroup
- a group of ManagedObject
s (i.e., a MIB module).defaultContext
- the context to be used by default (i.e., the null
context)protected void registerMIBs(org.snmp4j.smi.OctetString context) throws DuplicateRegistrationException
context
- the context to register the internal MIB modules. This should be
null
by default.DuplicateRegistrationException
- if some of the MIB modules
registration regions conflict with already registered regions.protected void unregisterMIBs(org.snmp4j.smi.OctetString context)
context
- the context where the MIB modules have been previously registered.public void setupProxyForwarder()
protected NotificationOriginator createNotificationOriginator()
protected ProxyForwarder createProxyForwarder(CommandProcessor agent)
ProxyForwarderImpl
).agent
- the command processor that uses the proxy forwarder.protected CommandProcessor createCommandProcessor(org.snmp4j.smi.OctetString engineID)
engineID
- the engine ID of the agent.protected org.snmp4j.Session createSnmpSession(org.snmp4j.MessageDispatcher dispatcher)
dispatcher
- the message dispatcher to be associated with the session.Snmp
instance by default).public void setPersistenceImportMode(int importMode)
MOPersistenceProvider
.importMode
- one of the import modes defined by ImportModes
.public int getPersistenceImportMode()
MOPersistenceProvider
.ImportModes
.Copyright © 2019 SNMP4J.org. All rights reserved.