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 RandomAccessManagedObjects. 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 and MOTableRowListener persistently into the database immediately.
  • Concurrent access to storage is safe.
See MOServerPersistence for sample code and further usage details.
Version:
3.0
Author:
Frank Fock
  • Constructor Details

  • Method Details

    • restore

      public void restore(String uri, int importMode) throws IOException
      Restore (load) agent state from the specified URI (can be as simple as a file path).
      Specified by:
      restore in interface org.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. A null value can be specified to let the persistence provider use its default URI. If that default URI is null too, a NullPointerException 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 interface org.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. A null value can be specified to let the persistence provider use its default URI. If that default URI is null too, a NullPointerException will be thrown.
      importMode - specifies how the agent's current state should be update while restoring a previous state.
      priorityProvider - if not null, this parameter specifies in which order the ManagedObjects 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

      public void store(String uri) throws IOException
      Stores the current agent state to persistent storage specified by the supplied URI.
      Specified by:
      store in interface org.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. A null value can be specified to let the persistence provider use its default URI. If that default URI is null too, a NullPointerException 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 interface org.snmp4j.agent.io.MOPersistenceProvider
      Throws:
      IOException
    • isValidPersistenceURI

      public boolean isValidPersistenceURI(String uriString)
      Checks whether the supplied URI string is valid for this persistence provider.
      Specified by:
      isValidPersistenceURI in interface org.snmp4j.agent.io.MOPersistenceProvider
      Parameters:
      uriString - a string identifying a persistent storage location for this storage provider.
      Returns:
      true if the uri is valid, false otherwise.
      Since:
      1.2
    • getPersistenceProviderID

      public String getPersistenceProviderID()
      Returns a unique ID of the persistence provider which should identify the format and type of the persistence provider.
      Specified by:
      getPersistenceProviderID in interface org.snmp4j.agent.io.MOPersistenceProvider
      Returns:
      an 1-32 character long string that identifies the persistence provider.
      Since:
      1.2
    • getDefaultURI

      public String getDefaultURI()
      Gets the URI of the default persistent storage for this provider.
      Specified by:
      getDefaultURI in interface org.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 interface org.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 interface org.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 interface org.snmp4j.cfg.EngineIdProvider
    • resetEngineId

      public void resetEngineId(org.snmp4j.smi.OctetString engineId)
      Specified by:
      resetEngineId in interface org.snmp4j.cfg.EngineIdProvider