|
CoherenceTM v3.3 Copyright© 2000-2007 by Oracle Corporation |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.tangosol.io.bdb.DatabaseFactory.EnvironmentHolder
protected static class DatabaseFactory.EnvironmentHolder
Holder for Berkeley DB Environment and its Databases.
The Environment and Databases will be automatically flushed upon JVM shutdown or GC of the associated DatabaseFactory. For temporary Environments, the data will also be deleted. These operations are accomplished by registering this class as a JVM shutdown hook. This logic is maintained externally from DatabaseFactory to allow for the Factory to be GC'd. If the Factory acted as the shutdown hook then it would never be GC'd as the Runtime would always hold a reference to it via the registered shutdown hook.
Nested Class Summary | |
---|---|
protected static class |
DatabaseFactory.EnvironmentHolder.DirectoryLock
Directory based lock. |
Field Summary | |
---|---|
static String |
ENVIRONMENT_NAME_PREFIX
Prefix for temporary environment names. |
static String |
JE_PROPERTY_PREFIX
Prefix for all Berkeley DB JE configuration settings. |
protected Collection |
m_colRegisteredDbs
Databases to close prior to deleting the Environment. |
protected File |
m_dirEnv
Environment directory. |
protected DatabaseFactory.EnvironmentHolder.DirectoryLock |
m_dirLock
Lock held on the directory associated with the Environment. |
protected File |
m_dirParent
Configuration setting for parent directory. |
protected com.sleepycat.je.Environment |
m_env
Berkeley DB Environment for managing Databases. |
protected com.sleepycat.je.EnvironmentConfig |
m_envConfig
Berkeley DB Environment Configuration. |
protected boolean |
m_fTemporary
Flag indicating if this is a temporary environment. |
protected Thread |
m_threadShutdownHook
Shutdown hook for closing environment. |
protected XmlElement |
m_xmlConfig
Configuration. |
static String |
SUB_DIR_NAME
Default directory name for berkeley db environments. |
static String |
TEMP_FILE_NAME_PREFIX
Prefix for temporary file names. |
Constructor Summary | |
---|---|
DatabaseFactory.EnvironmentHolder(BerkeleyDBBinaryStoreManager bdbManager)
Construct a EnvironmentHolder for a given Berkeley DB Environment. |
Method Summary | |
---|---|
void |
closeEnvironment(boolean fDeregister)
Close an Environment. |
protected File |
computeTmpDir()
Compute the system's temp directory. |
protected void |
configure(BerkeleyDBBinaryStoreManager bdbManager)
Configure the new Environment. |
protected void |
createPersistentEnvironment()
Create a persistent Environment. |
protected void |
createTemporaryEnvironment()
Create a temporary Environment. |
void |
forgetDatabase(com.sleepycat.je.Database db)
Remove a database handle from the cleanup list. |
protected String |
generateEnvironmentName()
Generate a potentially unique Environment name. |
File |
getDirEnv()
Get the Environment Directory. |
DatabaseFactory.EnvironmentHolder.DirectoryLock |
getDirLock()
Get the DirectoryLock held on a temporary Environment. |
File |
getDirParent()
Get the Parent Directory. |
com.sleepycat.je.EnvironmentConfig |
getEnvConfig()
Get the Environment Configuration. |
com.sleepycat.je.Environment |
getEnvironment()
Get underlying Berkeley DB Environment. |
Collection |
getRegisteredDbs()
Get the registered Databases. |
XmlElement |
getXmlConfig()
Get the XML Configuration. |
boolean |
isTemporary()
Return true if this is a temporary environment. |
void |
run()
Shutdown hook runnable method. |
String |
toString()
Return a human readable description of the EnvironmentHolder. |
void |
trackDatabase(com.sleepycat.je.Database db)
Add a database handle to the trackings list. |
Field Detail |
---|
public static final String SUB_DIR_NAME
public static final String ENVIRONMENT_NAME_PREFIX
public static final String TEMP_FILE_NAME_PREFIX
public static final String JE_PROPERTY_PREFIX
protected XmlElement m_xmlConfig
protected File m_dirParent
protected File m_dirEnv
protected com.sleepycat.je.EnvironmentConfig m_envConfig
protected com.sleepycat.je.Environment m_env
protected Collection m_colRegisteredDbs
protected DatabaseFactory.EnvironmentHolder.DirectoryLock m_dirLock
protected boolean m_fTemporary
protected Thread m_threadShutdownHook
Constructor Detail |
---|
public DatabaseFactory.EnvironmentHolder(BerkeleyDBBinaryStoreManager bdbManager) throws com.sleepycat.je.DatabaseException
bdbManager
- the BinaryStoreManager to create an environment for
com.sleepycat.je.DatabaseException
- if the Berkeley DB Environment could not
be createdMethod Detail |
---|
public String toString()
public void forgetDatabase(com.sleepycat.je.Database db)
db
- the Database to remove from listpublic void run()
run
in interface Runnable
public void closeEnvironment(boolean fDeregister)
fDeregister
- indicates if the shutdown hook should be
deregisteredpublic void trackDatabase(com.sleepycat.je.Database db)
db
- the Database to add to the listprotected void configure(BerkeleyDBBinaryStoreManager bdbManager)
bdbManager
- the BinaryStoreManager to create an environment forprotected File computeTmpDir()
null
if it
could not be determinedprotected void createTemporaryEnvironment() throws com.sleepycat.je.DatabaseException
com.sleepycat.je.DatabaseException
- if environment creation failsprotected void createPersistentEnvironment() throws com.sleepycat.je.DatabaseException
com.sleepycat.je.DatabaseException
- if environment creation failsprotected String generateEnvironmentName()
public com.sleepycat.je.Environment getEnvironment()
public XmlElement getXmlConfig()
public File getDirParent()
public File getDirEnv()
public com.sleepycat.je.EnvironmentConfig getEnvConfig()
public Collection getRegisteredDbs()
public DatabaseFactory.EnvironmentHolder.DirectoryLock getDirLock()
public boolean isTemporary()
|
CoherenceTM v3.3 Copyright© 2000-2007 by Oracle Corporation |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |