Package org.snmp4j.agent.db
Class MOXodusPersistenceProvider
java.lang.Object
org.snmp4j.agent.db.MOXodusPersistenceProvider
- All Implemented Interfaces:
org.snmp4j.agent.io.MOPersistenceProvider
,org.snmp4j.cfg.EngineBootsProvider
,org.snmp4j.cfg.EngineIdProvider
public class MOXodusPersistenceProvider
extends Object
implements org.snmp4j.agent.io.MOPersistenceProvider, org.snmp4j.cfg.EngineBootsProvider, org.snmp4j.cfg.EngineIdProvider
The
MOXodusPersistenceProvider
implements a MOPersistenceProvider
that uses a JetBrains Xodus
database for persistent storage of RandomAccessManagedObject
s.
Using RandomAccessManagedObject
persistence with this MOXodusPersistenceProvider
has
the following advantages:
- Less disk space usage than with
DefaultMOPersistenceProvider
- Any Managed object changes are store via
MOChangeListener
andMOTableRowListener
persistently into the database immediately. - Concurrent access to storage is safe.
MOServerPersistence
for sample code and further usage details.- Version:
- 3.0
- Author:
- Frank Fock
-
Constructor Summary
ConstructorDescriptionMOXodusPersistenceProvider
(MOXodusPersistence defaultPersistence) Creates aMOXodusPersistenceProvider
based with a provided defaultMOXodusPersistence
handler that provides the default storage access operations and listens forRandomAccessManagedObject
update events (seeMOXodusPersistence.registerChangeListenersWithServer(MOServer)
for details). -
Method Summary
Modifier and TypeMethodDescriptionGets the URI of the default persistent storage for this provider.int
Returns current engine boot counter value.org.snmp4j.smi.OctetString
getEngineId
(org.snmp4j.smi.OctetString defaultEngineID) Returns a unique ID of the persistence provider which should identify the format and type of the persistence provider.boolean
isValidPersistenceURI
(String uriString) Checks whether the supplied URI string is valid for this persistence provider.void
resetEngineId
(org.snmp4j.smi.OctetString engineId) void
Restore (load) agent state from the specified URI (can be as simple as a file path).void
Restore (load) agent state from the specified URI (can be as simple as a file path).void
Stores the current agent state to persistent storage specified by the supplied URI.void
int
Returns the current engine boot counter value incremented by one.
-
Constructor Details
-
MOXodusPersistenceProvider
Creates aMOXodusPersistenceProvider
based with a provided defaultMOXodusPersistence
handler that provides the default storage access operations and listens forRandomAccessManagedObject
update events (seeMOXodusPersistence.registerChangeListenersWithServer(MOServer)
for details). AdditionalMOXodusPersistence
can be created on the fly, withstore(String)
.- Parameters:
defaultPersistence
- the default persistence handler.
-
-
Method Details
-
restore
Restore (load) agent state from the specified URI (can be as simple as a file path).- Specified by:
restore
in interfaceorg.snmp4j.agent.io.MOPersistenceProvider
- Parameters:
uri
- a string pointing to the persistent storage from which the agent state should be restored from. The format of he string is specified by the persistence provider. Anull
value can be specified to let the persistence provider use its default URI. If that default URI isnull
too, aNullPointerException
will be thrown.importMode
- specifies how the agent's current state should be update while restoring a previous state.- Throws:
IOException
- if the restore operation fails.- Since:
- 1.2
-
restore
public void restore(String uri, int importMode, org.snmp4j.agent.mo.MOPriorityProvider priorityProvider) throws IOException Restore (load) agent state from the specified URI (can be as simple as a file path).- Specified by:
restore
in interfaceorg.snmp4j.agent.io.MOPersistenceProvider
- Parameters:
uri
- a string pointing to the persistent storage from which the agent state should be restored from. The format of he string is specified by the persistence provider. Anull
value can be specified to let the persistence provider use its default URI. If that default URI isnull
too, aNullPointerException
will be thrown.importMode
- specifies how the agent's current state should be update while restoring a previous state.priorityProvider
- if notnull
, this parameter specifies in which order theManagedObject
s are restored and which object contains the latest restore configuration which has to be restored at first to be able to restore the rest.- Throws:
IOException
- if the restore operation fails.- Since:
- 3.5.0
-
store
Stores the current agent state to persistent storage specified by the supplied URI.- Specified by:
store
in interfaceorg.snmp4j.agent.io.MOPersistenceProvider
- Parameters:
uri
- a string pointing to the persistent storage from which the agent state should be stored to. The format of the string is specified by the persistence provider. Anull
value can be specified to let the persistence provider use its default URI. If that default URI isnull
too, aNullPointerException
will be thrown.- Throws:
IOException
- if the store operation fails.- Since:
- 1.2
-
store
public void store(String uri, org.snmp4j.agent.mo.MOPriorityProvider priorityProvider) throws IOException - Specified by:
store
in interfaceorg.snmp4j.agent.io.MOPersistenceProvider
- Throws:
IOException
-
isValidPersistenceURI
Checks whether the supplied URI string is valid for this persistence provider.- Specified by:
isValidPersistenceURI
in interfaceorg.snmp4j.agent.io.MOPersistenceProvider
- Parameters:
uriString
- a string identifying a persistent storage location for this storage provider.- Returns:
true
if theuri
is valid,false
otherwise.- Since:
- 1.2
-
getPersistenceProviderID
Returns a unique ID of the persistence provider which should identify the format and type of the persistence provider.- Specified by:
getPersistenceProviderID
in interfaceorg.snmp4j.agent.io.MOPersistenceProvider
- Returns:
- an 1-32 character long string that identifies the persistence provider.
- Since:
- 1.2
-
getDefaultURI
Gets the URI of the default persistent storage for this provider.- Specified by:
getDefaultURI
in interfaceorg.snmp4j.agent.io.MOPersistenceProvider
- Returns:
- the URI (e.g. file path) for the default persistent storage location of
this provider. A provider may use a different one. A
null
value indicates that there is no default location.
-
updateEngineBoots
public int updateEngineBoots()Returns the current engine boot counter value incremented by one. If that number would by greater than 2^31-1 then one is returned. The engine boots provider has to make sure that the returned value is persistently stored before the method returns.- Specified by:
updateEngineBoots
in interfaceorg.snmp4j.cfg.EngineBootsProvider
- Returns:
- the last engine boots counter incremented by one.
-
getEngineBoots
public int getEngineBoots()Returns current engine boot counter value.- Specified by:
getEngineBoots
in interfaceorg.snmp4j.cfg.EngineBootsProvider
- Returns:
- the last engine boots counter.
-
getEngineId
public org.snmp4j.smi.OctetString getEngineId(org.snmp4j.smi.OctetString defaultEngineID) - Specified by:
getEngineId
in interfaceorg.snmp4j.cfg.EngineIdProvider
-
resetEngineId
public void resetEngineId(org.snmp4j.smi.OctetString engineId) - Specified by:
resetEngineId
in interfaceorg.snmp4j.cfg.EngineIdProvider
-