Class DatabaseFactory


  • public class DatabaseFactory
    extends Base
    Factory for Berkeley DB Environments and Databases.

    Temporary Environments will be automatically deleted upon JVM shutdown or GC.

    Author:
    mf 2005.10.04
    • Field Detail

      • m_dbConfig

        protected com.sleepycat.je.DatabaseConfig m_dbConfig
        Configuration to use when creating new Databases.
      • m_cDbId

        protected long m_cDbId
        Counter used to generate unique Database names for this Environment.
    • Constructor Detail

      • DatabaseFactory

        public DatabaseFactory​(BerkeleyDBBinaryStoreManager bdbManager)
                        throws com.sleepycat.je.DatabaseException
        Construct a DatabaseFactory for a given Berkeley DB Environment.

        Berkeley DB Environments are bound to a single directory. Java File locking is used to ensure that only one JVM uses the Environment.

        Parameters:
        bdbManager - the BinaryStoreManager to create Databases for
        Throws:
        com.sleepycat.je.DatabaseException - if the Berkeley DB Environment could not be created
        See Also:
        Berkeley DB Configuration
    • Method Detail

      • toString

        public String toString()
        Output the DatabaseFactory state as a String.
        Overrides:
        toString in class Object
      • finalize

        protected void finalize()
                         throws Throwable
        Finalize for the DatabaseFactory.

        When the factory is finalized it will force the EnvironmentHolder to be destroyed if it is temporary, and deregister the associated shutdown hook.

        Overrides:
        finalize in class Object
        Throws:
        Throwable
      • createNamedDatabase

        public com.sleepycat.je.Database createNamedDatabase​(String sName)
                                                      throws com.sleepycat.je.DatabaseException
        Create a named Database instance.
        Parameters:
        sName - the name of the database to create
        Returns:
        new a Database instance
        Throws:
        com.sleepycat.je.DatabaseException - if the Database creation failed
      • getUniqueDbName

        public String getUniqueDbName()
        Get a unique (within the Factory) database name.
        Returns:
        a unique database name
      • instantiateEnvironment

        protected DatabaseFactory.EnvironmentHolder instantiateEnvironment​(BerkeleyDBBinaryStoreManager bdbManager)
                                                                    throws com.sleepycat.je.DatabaseException
        Create a EnvironmentHolder within the specified parent directory.
        Parameters:
        bdbManager - the BinaryStore to create the environment for
        Returns:
        a new EnvironmentHolder
        Throws:
        com.sleepycat.je.DatabaseException - if the Environment could not be created
      • forgetDatabase

        public void forgetDatabase​(com.sleepycat.je.Database db)
        Remove a database handle from the cleanup list.
        Parameters:
        db - the Database to remove from list
      • getDbConfig

        public com.sleepycat.je.DatabaseConfig getDbConfig()
        Get the DatabaseConfiguration used to create Databases.
        Returns:
        the DatabaseConfiguration
      • getDbIdCounter

        public long getDbIdCounter()
        Get the DB ID Counter value.
        Returns:
        the DB ID Counter value