|
Berkeley DB version 4.3.29 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.sleepycat.db.EnvironmentConfig
Specifies the attributes of an environment.
To change the default settings for a database environment, an application creates a configuration object, customizes settings and uses it for environment construction. The set methods of this class validate the configuration values when the method is invoked. An IllegalArgumentException is thrown if the value is not valid for that attribute.
All commonly used environment attributes have convenience setter/getter methods defined in this class. For example, to change the default transaction timeout setting for an environment, the application should do the following:
// customize an environment configuration EnvironmentConfig envConfig = new EnvironmentConfig(); envConfig.setTxnTimeout(10000); // will throw if timeout value is invalid// Open the environment. Environment myEnvironment = new Environment(home, envConfig);
Additional parameters are described in the example.properties file found at the top level of the distribution package. These additional parameters will not be needed by most applications. This category of properties can be specified for the EnvironmentConfig object through a Properties object read by EnvironmentConfig(Properties), or individually through EnvironmentConfig.setConfigParam().
For example, an application can change the default btree node size with:
envConfig.setConfigParam("je.nodeMaxEntries", "256");
Environment configuration follows this order of precedence:
An EnvironmentConfig can be used to specify both mutable and immutable environment properties. Immutable properties may be specified when the first Environment handle (instance) is opened for a given physical environment. When more handles are opened for the same environment, the following rules apply:
After an Environment has been constructed, it's mutable properties may
be changed using
Environment.setConfig(com.sleepycat.db.EnvironmentConfig)
.
Field Summary | |
static EnvironmentConfig |
DEFAULT
|
Constructor Summary | |
EnvironmentConfig()
Create an EnvironmentConfig initialized with the system default settings. |
Method Summary | |
void |
addDataDir(String dataDir)
Set the path of a directory to be used as the location of the access method database files. |
boolean |
getAllowCreate()
Return if the database environment is configured to create any underlying files, as necessary. |
int |
getCacheCount()
Return the number of shared memory buffer pools, that is, the number of caches. |
long |
getCacheSize()
Return the size of the shared memory buffer pool, that is, the cache. |
boolean |
getCDBLockAllDatabases()
Return if the Concurrent Data Store applications are configured to perform locking on an environment-wide basis rather than on a per-database basis. |
String[] |
getDataDirs()
Return the array of data directories. |
boolean |
getDirectDatabaseIO()
Return if the database environment has been configured to not buffer database files. |
boolean |
getDirectLogIO()
Return if the database environment has been configured to not buffer log files. |
boolean |
getDsyncLog()
Return if the database environment has been configured to flush log writes to the backing disk before returning from the write system call. |
boolean |
getEncrypted()
Return the database environment has been configured to perform encryption. |
ErrorHandler |
getErrorHandler()
Return the function to be called if an error occurs. |
String |
getErrorPrefix()
Return the prefix string that appears before error messages. |
OutputStream |
getErrorStream()
Return the an OutputStream for displaying error messages. |
FeedbackHandler |
getFeedbackHandler()
Return the object's methods to be called to provide feedback. |
boolean |
getInitializeCache()
Return if the database environment is configured with a shared memory buffer pool. |
boolean |
getInitializeCDB()
Return if the database environment is configured for the Concurrent Data Store product. |
boolean |
getInitializeLocking()
Return if the database environment is configured for locking. |
boolean |
getInitializeLogging()
Return if the database environment is configured for logging. |
boolean |
getInitializeRegions()
Return if the database environment has been configured to page-fault shared regions into memory when initially creating or joining a database environment. |
boolean |
getInitializeReplication()
Return if the database environment is configured for replication. |
boolean |
getJoinEnvironment()
Return the handle is configured to join an existing environment. |
byte[][] |
getLockConflicts()
Return the locking conflicts matrix. |
LockDetectMode |
getLockDetectMode()
Return if the deadlock detector is configured to run whenever a lock conflict occurs. |
boolean |
getLockDown()
Return if the database environment is configured to lock shared environment files and memory-mapped databases into memory. |
long |
getLockTimeout()
Return the database environment lock timeout value, in microseconds; a timeout of 0 means no timeout is set. |
boolean |
getLogAutoRemove()
Return if the system has been configured to to automatically remove log files that are no longer needed. |
int |
getLogBufferSize()
Return the size of the in-memory log buffer, in bytes. |
File |
getLogDirectory()
Return the path of a directory to be used as the location of logging files. |
boolean |
getLogInMemory()
Return if the database environment is configured to maintain transaction logs in memory rather than on disk. |
LogRecordHandler |
getLogRecordHandler()
Return the handler for application-specific log records. |
int |
getLogRegionSize()
Return the size of the underlying logging subsystem region. |
int |
getMaxLockers()
Return the maximum number of lockers. |
int |
getMaxLockObjects()
Return the maximum number of locked objects. |
int |
getMaxLocks()
Return the maximum number of locks. |
int |
getMaxLogFileSize()
Return the maximum size of a single file in the log, in bytes. |
MessageHandler |
getMessageHandler()
Return the function to be called with an informational message. |
OutputStream |
getMessageStream()
Return the an OutputStream for displaying informational messages. |
long |
getMMapSize()
Return the maximum file size, in bytes, for a file to be mapped into the process address space. |
long |
getMode()
Return the mode to use when creating underlying files and shared memory segments. |
boolean |
getNoLocking()
Return if the system has been configured to grant all requested mutual exclusion mutexes and database locks without regard for their actual availability. |
boolean |
getNoMMap()
Return if the system has been configured to copy read-only database files into the local cache instead of potentially mapping them into process memory. |
boolean |
getNoPanic()
Return if the system has been configured to ignore any panic state in the database environment. |
boolean |
getOverwrite()
Return if the system has been configured to overwrite files stored in encrypted formats before deleting them. |
PanicHandler |
getPanicHandler()
Return the function to be called if the database environment panics. |
boolean |
getPrivate()
Return if the database environment is configured to only be accessed by a single process. |
boolean |
getReadOnly()
Return if the whether the environment handle is opened read-only. |
long |
getReplicationLimit()
Return the transmit limit in bytes for a single call to Environment.processReplicationMessage . |
ReplicationTransport |
getReplicationTransport()
Return the replication callback function used to transmit data using the replication application's communication infrastructure. |
boolean |
getRunFatalRecovery()
Return the handle is configured to run catastrophic recovery on the database environment before opening it for use. |
boolean |
getRunRecovery()
Return the handle is configured to run normal recovery on the database environment before opening it for use. |
long |
getSegmentId()
Return the base segment ID. |
boolean |
getSystemMemory()
Return if the database environment is configured to allocate memory from system shared memory instead of from memory backed by the filesystem. |
String |
getTemporaryDirectory()
Return the path of a directory to be used as the location of temporary files. |
int |
getTestAndSetSpins()
Return the number of times test-and-set mutexes should spin before blocking. |
boolean |
getThreaded()
Return if the handle is configured to be free-threaded. |
boolean |
getTransactional()
Return if the database environment is configured for transactions. |
int |
getTxnMaxActive()
Return the minimum number of simultaneously active transactions supported by the database environment. |
boolean |
getTxnNoSync()
Return if the system has been configured to not write or synchronously flush the log on transaction commit. |
boolean |
getTxnNotDurable()
Return if the system has been configured to not write log records. |
long |
getTxnTimeout()
Return the database environment transaction timeout value, in microseconds; a timeout of 0 means no timeout is set. |
Date |
getTxnTimestamp()
Return the time to which recovery will be done, or 0 if recovery will be done to the most current possible date. |
boolean |
getTxnWriteNoSync()
Return if the system has been configured to write, but not synchronously flush, the log on transaction commit. |
boolean |
getUseEnvironment()
Return if the database environment is configured to accept information from the process environment when naming files. |
boolean |
getUseEnvironmentRoot()
Return if the database environment is configured to accept information from the process environment when naming files if the process has appropriate permissions. |
boolean |
getVerboseDeadlock()
Return if the database environment is configured to display additional information when doing deadlock detection. |
boolean |
getVerboseRecovery()
Return if the database environment is configured to display additional information when performing recovery. |
boolean |
getVerboseReplication()
Return if the database environment is configured to display additional information when processing replication messages. |
boolean |
getVerboseWaitsFor()
Return if the database environment is configured to display the waits-for table when doing deadlock detection. |
boolean |
getYieldCPU()
Return if the system has been configured to yield the processor immediately after each page or mutex acquisition. |
void |
setAllowCreate(boolean allowCreate)
Configure the database environment to create any underlying files, as necessary. |
void |
setCacheCount(int cacheCount)
Set the number of shared memory buffer pools, that is, the number of caches. |
void |
setCacheSize(long cacheSize)
Set the size of the shared memory buffer pool, that is, the size of the cache. |
void |
setCDBLockAllDatabases(boolean cdbLockAllDatabases)
Configure Concurrent Data Store applications to perform locking on an environment-wide basis rather than on a per-database basis. |
void |
setDirectDatabaseIO(boolean directDatabaseIO)
Configure the database environment to not buffer database files. |
void |
setDirectLogIO(boolean directLogIO)
Configure the database environment to not buffer log files. |
void |
setDsyncLog(boolean dsyncLog)
Configure the database environment to flush log writes to the backing disk before returning from the write system call, rather than flushing log writes explicitly in a separate system call. |
void |
setEncrypted(String password)
Set the password used to perform encryption and decryption. |
void |
setErrorHandler(ErrorHandler errorHandler)
Set the function to be called if an error occurs. |
void |
setErrorPrefix(String errorPrefix)
Set the prefix string that appears before error messages. |
void |
setErrorStream(OutputStream errorStream)
Set an OutputStream for displaying error messages. |
void |
setFeedbackHandler(FeedbackHandler feedbackHandler)
Set an object whose methods are called to provide feedback. |
void |
setInitializeCache(boolean initializeCache)
Configure a shared memory buffer pool in the database environment. |
void |
setInitializeCDB(boolean initializeCDB)
Configure the database environment for the Concurrent Data Store product. |
void |
setInitializeLocking(boolean initializeLocking)
Configure the database environment for locking. |
void |
setInitializeLogging(boolean initializeLogging)
Configure the database environment for logging. |
void |
setInitializeRegions(boolean initializeRegions)
Configure the database environment to page-fault shared regions into memory when initially creating or joining a database environment. |
void |
setInitializeReplication(boolean initializeReplication)
Configure the database environment for replication. |
void |
setJoinEnvironment(boolean joinEnvironment)
Configure the handle to join an existing environment. |
void |
setLockConflicts(byte[][] lockConflicts)
Configure the locking conflicts matrix. |
void |
setLockDetectMode(LockDetectMode lockDetectMode)
Configure if the deadlock detector is to be run whenever a lock conflict occurs. |
void |
setLockDown(boolean lockDown)
Configure the database environment to lock shared environment files and memory-mapped databases into memory. |
void |
setLockTimeout(long lockTimeout)
Set the timeout value for the database environment locks. |
void |
setLogAutoRemove(boolean logAutoRemove)
Configure the system to automatically remove log files that are no longer needed. |
void |
setLogBufferSize(int logBufferSize)
Set the size of the in-memory log buffer, in bytes. |
void |
setLogDirectory(File logDirectory)
Set the path of a directory to be used as the location of logging files. |
void |
setLogInMemory(boolean inmemory)
If set, maintain transaction logs in memory rather than on disk. |
void |
setLogRecordHandler(LogRecordHandler logRecordHandler)
Set a function to process application-specific log records. |
void |
setLogRegionSize(int logRegionSize)
Set the size of the underlying logging area of the database environment, in bytes. |
void |
setMaxLockers(int maxLockers)
Set the maximum number of locking entities supported by the database environment. |
void |
setMaxLockObjects(int maxLockObjects)
Set the maximum number of locked objects supported by the database environment. |
void |
setMaxLocks(int maxLocks)
Set the maximum number of locks supported by the database environment. |
void |
setMaxLogFileSize(int maxLogFileSize)
Set the maximum size of a single file in the log, in bytes. |
void |
setMessageHandler(MessageHandler messageHandler)
Set a function to be called with an informational message. |
void |
setMessageStream(OutputStream messageStream)
Set an OutputStream for displaying informational messages. |
void |
setMMapSize(long mmapSize)
Set the maximum file size, in bytes, for a file to be mapped into the process address space. |
void |
setMode(int mode)
Configure the database environment to use a specific mode when creating underlying files and shared memory segments. |
void |
setNoLocking(boolean noLocking)
Configure the system to grant all requested mutual exclusion mutexes and database locks without regard for their actual availability. |
void |
setNoMMap(boolean noMMap)
Configure the system to copy read-only database files into the local cache instead of potentially mapping them into process memory. |
void |
setNoPanic(boolean noPanic)
Configure the system to ignore any panic state in the database environment. |
void |
setOverwrite(boolean overwrite)
Configure the system to overwrite files stored in encrypted formats before deleting them. |
void |
setPanicHandler(PanicHandler panicHandler)
Set the function to be called if the database environment panics. |
void |
setPrivate(boolean isPrivate)
Configure the database environment to only be accessed by a single process (although that process may be multithreaded). |
void |
setReadOnly(boolean readOnly)
Configure the environment handle to be opened read-only. |
void |
setReplicationLimit(long replicationLimit)
Impose a byte-count limit on the amount of data that will be transmitted from a site in a single call to Environment.processReplicationMessage . |
void |
setReplicationTransport(int envid,
ReplicationTransport replicationTransport)
Initialize the communication infrastructure for a database environment participating in a replicated application. |
void |
setRPCServer(String rpcServer,
long rpcClientTimeout,
long rpcServerTimeout)
Establish a connection to a RPC server for this database environment. |
void |
setRunFatalRecovery(boolean runFatalRecovery)
Configure to run catastrophic recovery on this environment before opening it for normal use. |
void |
setRunRecovery(boolean runRecovery)
Configure to run normal recovery on this environment before opening it for normal use. |
void |
setSegmentId(long segmentId)
Specify a base segment ID for database environment shared memory regions created in system memory on VxWorks or systems supporting X/Open-style shared memory interfaces; for example, UNIX systems supporting shmget and related System V IPC interfaces. |
void |
setSystemMemory(boolean systemMemory)
Configure the database environment to allocate memory from system shared memory instead of from memory backed by the filesystem. |
void |
setTemporaryDirectory(String temporaryDirectory)
Set the path of a directory to be used as the location of temporary files. |
void |
setTestAndSetSpins(int testAndSetSpins)
Set the number of times test-and-set mutexes should spin before blocking. |
void |
setThreaded(boolean threaded)
Configure the handle to be free-threaded; that is, usable by multiple threads within a single address space. |
void |
setTransactional(boolean transactional)
Configure the database environment for transactions. |
void |
setTxnMaxActive(int txnMaxActive)
Configure the database environment to support at least txnMaxActive active transactions. |
void |
setTxnNoSync(boolean txnNoSync)
Configure the system to not write or synchronously flush the log on transaction commit. |
void |
setTxnNotDurable(boolean txnNotDurable)
Configure the system to not write log records. |
void |
setTxnTimeout(long txnTimeout)
Set the timeout value for the database environment transactions. |
void |
setTxnTimestamp(Date txnTimestamp)
Recover to the specified time rather than to the most current possible date. |
void |
setTxnWriteNoSync(boolean txnWriteNoSync)
Configure the system to write, but not synchronously flush, the log on transaction commit. |
void |
setUseEnvironment(boolean useEnvironment)
Configure the database environment to accept information from the process environment when naming files, regardless of the status of the process. |
void |
setUseEnvironmentRoot(boolean useEnvironmentRoot)
Configure the database environment to accept information from the process environment when naming files, if the process has appropriate permissions (for example, users with a user-ID of 0 on UNIX systems). |
void |
setVerboseDeadlock(boolean verboseDeadlock)
Display additional information when doing deadlock detection. |
void |
setVerboseRecovery(boolean verboseRecovery)
Display additional information when performing recovery. |
void |
setVerboseReplication(boolean verboseReplication)
Display additional information when processing replication messages. |
void |
setVerboseWaitsFor(boolean verboseWaitsFor)
Display the waits-for table when doing deadlock detection. |
void |
setYieldCPU(boolean yieldCPU)
Configure the system to yield the processor immediately after each page or mutex acquisition. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final EnvironmentConfig DEFAULT
Constructor Detail |
public EnvironmentConfig()
Method Detail |
public void setTransactional(boolean transactional)
This configuration option should be used when transactional guarantees such as atomicity of multiple operations and durability are important.
transactional
- If true, configure the database environment for transactions.public boolean getTransactional()
This method may be called at any time during the life of the application.
public void setAllowCreate(boolean allowCreate)
allowCreate
- If true, configure the database environment to create any underlying
files, as necessary.public boolean getAllowCreate()
This method may be called at any time during the life of the application.
public void setCacheSize(long cacheSize)
The cache should be the size of the normal working data set of the application, with some small amount of additional memory for unusual situations. (Note: the working set is not the same as the number of pages accessed simultaneously, and is usually much larger.)
The default cache size is 256KB, and may not be specified as less than 20KB. Any cache size less than 500MB is automatically increased by 25% to account for buffer pool overhead; cache sizes larger than 500MB are used as specified. The current maximum size of a single cache is 4GB. (All sizes are in powers-of-two, that is, 256KB is 2^18 not 256,000.)
The database environment's cache size may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_cachesize", one or more whitespace characters, and the cache size specified in three parts: the gigabytes of cache, the additional bytes of cache, and the number of caches, also separated by whitespace characters. For example, "set_cachesize 2 524288000 3" would create a 2.5GB logical cache, split between three physical caches. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
This method may be called at any time during the life of the application.
cacheSize
- The size of the shared memory buffer pool, that is, the size of the
cache.
DatabaseException
- if a failure occurs.public long getCacheSize()
This method may be called at any time during the life of the application.
public void setCacheCount(int cacheCount)
It is possible to specify caches larger than 4GB and/or large enough they cannot be allocated contiguously on some architectures. For example, some releases of Solaris limit the amount of memory that may be allocated contiguously by a process. This method allows applications to break the cache broken up into a number of equally sized, separate pieces of memory.
The database environment's cache size may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_cachesize", one or more whitespace characters, and the cache size specified in three parts: the gigabytes of cache, the additional bytes of cache, and the number of caches, also separated by whitespace characters. For example, "set_cachesize 2 524288000 3" would create a 2.5GB logical cache, split between three physical caches. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
This method may be called at any time during the life of the application.
cacheCount
- The number of shared memory buffer pools, that is, the number of caches.
DatabaseException
- if a failure occurs.public int getCacheCount()
This method may be called at any time during the life of the application.
public void setCDBLockAllDatabases(boolean cdbLockAllDatabases)
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may not be called after the environment has been opened.
cdbLockAllDatabases
- If true, configure Concurrent Data Store applications to perform
locking on an environment-wide basis rather than on a per-database
basis.public boolean getCDBLockAllDatabases()
This method may be called at any time during the life of the application.
public void addDataDir(String dataDir)
Paths specified to Environment.openDatabase
and
Environment.openSecondaryDatabase
will be searched
relative to this path. Paths set using this method are additive, and
specifying more than one will result in each specified directory
being searched for database files. If any directories are
specified, created database files will always be created in the
first path specified.
If no database directories are specified, database files must be named either by absolute paths or relative to the environment home directory.
The database environment's data directories may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_data_dir", one or more whitespace characters, and the directory name.
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may not be called after the environment has been opened. If joining an existing database environment, the information specified to this method must be consistent with the existing environment or corruption can occur.
dataDir
- A directory to be used as a location for database files.
On Windows platforms, this argument will be interpreted as a UTF-8
string, which is equivalent to ASCII for Latin characters.
DatabaseException
- if a failure occurs.public String[] getDataDirs()
This method may be called at any time during the life of the application.
public void setDirectDatabaseIO(boolean directDatabaseIO)
This is intended to avoid to avoid double caching.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
directDatabaseIO
- If true, configure the database environment to not buffer database files.public boolean getDirectDatabaseIO()
This method may be called at any time during the life of the application.
public void setDirectLogIO(boolean directLogIO)
This is intended to avoid to avoid double caching.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
directLogIO
- If true, configure the database environment to not buffer log files.public boolean getDirectLogIO()
This method may be called at any time during the life of the application.
public void setDsyncLog(boolean dsyncLog)
This configuration is only available on some systems (for example, systems supporting the POSIX standard O_DSYNC flag, or systems supporting the Win32 FILE_FLAG_WRITE_THROUGH flag). This configuration may result in inaccurate file modification times and other file-level information for Berkeley DB log files. This configuration may offer a performance increase on some systems and a performance decrease on others.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
dsyncLog
- If true, configure the database environment to flush log writes to
the backing disk before returning from the write system call, rather
than flushing log writes explicitly in a separate system call.public boolean getDsyncLog()
This method may be called at any time during the life of the application.
public void setEncrypted(String password)
Berkeley DB uses the Rijndael/AES (also known as the Advanced Encryption Standard and Federal Information Processing Standard (FIPS) 197) algorithm for encryption or decryption.
public boolean getEncrypted()
This method may be called at any time during the life of the application.
public void setErrorHandler(ErrorHandler errorHandler)
When an error occurs in the Berkeley DB library, an exception is thrown. In some cases, however, the error information returned to the application may be insufficient to completely describe the cause of the error, especially during initial application debugging.
The EnvironmentConfig.setErrorHandler
and DatabaseConfig.setErrorHandler
methods are used to enhance the mechanism for reporting
error messages to the application. In some cases, when an error occurs,
Berkeley DB will invoke the ErrorHandler's object error method. It is
up to this method to display the error message in an appropriate manner.
Alternatively, applications can use EnvironmentConfig.setErrorStream
and DatabaseConfig.setErrorStream
to
display the additional information via an output stream. Applications
should not mix these approaches.
This error-logging enhancement does not slow performance or significantly increase application size, and may be run during normal operation as well as during application debugging.
This method may be called at any time during the life of the application.
errorHandler
- The function to be called if an error occurs.public ErrorHandler getErrorHandler()
This method may be called at any time during the life of the application.
public void setErrorPrefix(String errorPrefix)
This method may be called at any time during the life of the application.
errorPrefix
- The prefix string that appears before error messages.public String getErrorPrefix()
This method may be called at any time during the life of the application.
public void setErrorStream(OutputStream errorStream)
When an error occurs in the Berkeley DB library, an exception is thrown. In some cases, however, the error information returned to the application may be insufficient to completely describe the cause of the error, especially during initial application debugging.
The EnvironmentConfig.setErrorStream
and
EnvironmentConfig.setErrorStream
methods are used to enhance
the mechanism for reporting error messages to the application by setting
a OutputStream to be used for displaying additional Berkeley DB error
messages. In some cases, when an error occurs, Berkeley DB will output
an additional error message to the specified stream.
The error message will consist of the prefix string and a colon
(":") (if a prefix string was previously specified using
EnvironmentConfig.setErrorPrefix
or DatabaseConfig.setErrorPrefix
), an error string, and a trailing newline character.
Setting errorStream to null unconfigures the interface.
Alternatively, applications can use EnvironmentConfig.setErrorHandler
and DatabaseConfig.setErrorHandler
to capture
the additional error information in a way that does not use output
streams. Applications should not mix these approaches.
This error-logging enhancement does not slow performance or significantly increase application size, and may be run during normal operation as well as during application debugging.
This method may be called at any time during the life of the application.
errorStream
- The application-specified OutputStream for error messages.public OutputStream getErrorStream()
This method may be called at any time during the life of the application.
public void setFeedbackHandler(FeedbackHandler feedbackHandler)
Some operations performed by the Berkeley DB library can take non-trivial amounts of time. This method can be used by applications to monitor progress within these operations. When an operation is likely to take a long time, Berkeley DB will call the object's methods with progress information.
It is up to the object's methods to display this information in an appropriate manner.
This method configures only operations performed using a single a
Environment
handle
This method may be called at any time during the life of the application.
feedbackHandler
- An object whose methods are called to provide feedback.public FeedbackHandler getFeedbackHandler()
This method may be called at any time during the life of the application.
public void setInitializeCache(boolean initializeCache)
This subsystem should be used whenever an application is using any Berkeley DB access method.
initializeCache
- If true, configure a shared memory buffer pool in the database
environment.public boolean getInitializeCache()
This method may be called at any time during the life of the application.
public void setInitializeCDB(boolean initializeCDB)
In this mode, Berkeley DB provides multiple reader/single writer access. The only other subsystem that should be specified for this handle is a cache.
initializeCDB
- If true, configure the database environment for the Concurrent Data
Store product.public boolean getInitializeCDB()
This method may be called at any time during the life of the application.
public void setInitializeLocking(boolean initializeLocking)
Locking should be used when multiple processes or threads are going to be reading and writing a database, so they do not interfere with each other. If all threads are accessing the database(s) read-only, locking is unnecessary. When locking is configured, it is usually necessary to run a deadlock detector, as well.
initializeLocking
- If true, configure the database environment for locking.public boolean getInitializeLocking()
This method may be called at any time during the life of the application.
public void setInitializeLogging(boolean initializeLogging)
Logging should be used when recovery from application or system failure is necessary. If the log region is being created and log files are already present, the log files are reviewed; subsequent log writes are appended to the end of the log, rather than overwriting current log entries.
initializeLogging
- If true, configure the database environment for logging.public boolean getInitializeLogging()
This method may be called at any time during the life of the application.
public void setInitializeRegions(boolean initializeRegions)
In some applications, the expense of page-faulting the underlying shared memory regions can affect performance. For example, if the page-fault occurs while holding a lock, other lock requests can convoy, and overall throughput may decrease. This method configures Berkeley DB to page-fault shared regions into memory when initially creating or joining a database environment. In addition, Berkeley DB will write the shared regions when creating an environment, forcing the underlying virtual memory and filesystems to instantiate both the necessary memory and the necessary disk space. This can also avoid out-of-disk space failures later on.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
initializeRegions
- If true, configure the database environment to page-fault shared
regions into memory when initially creating or joining a database
environment.public boolean getInitializeRegions()
This method may be called at any time during the life of the application.
public void setInitializeReplication(boolean initializeReplication)
Replication requires both locking and transactions.
initializeReplication
- If true, configure the database environment for replication.public boolean getInitializeReplication()
This method may be called at any time during the life of the application.
public void setJoinEnvironment(boolean joinEnvironment)
This option allows applications to join an existing environment without knowing which subsystems the environment supports.
joinEnvironment
- If true, configure the handle to join an existing environment.public boolean getJoinEnvironment()
This method may be called at any time during the life of the application.
public void setLockConflicts(byte[][] lockConflicts)
If the locking conflicts matrix is never configured, a standard conflicts array is used.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
lockConflicts
- The locking conflicts matrix. A non-0 value for an array element
indicates the requested_mode and held_mode conflict:
lockConflicts[requested_mode][held_mode]
The not-granted mode must be represented by 0.
DatabaseException
- if a failure occurs.public byte[][] getLockConflicts()
This method may be called at any time during the life of the application.
public void setLockDetectMode(LockDetectMode lockDetectMode)
The database environment's deadlock detector configuration may also be set using the environment's
DB_CONFIG file. The syntax of the entry in that file is a single line
with the string "set_lk_detect", one or more whitespace characters, and the method detect
parameter as a string; for example,
"set_lk_detect DB_LOCK_OLDEST".
Because the DB_CONFIG file is read when the database environment is
opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
Although the method may be called at any time during the life of the application, it should normally be called before opening the database environment.
lockDetectMode
- The lock request(s) to be rejected. As transactions acquire locks
on behalf of a single locker ID, rejecting a lock request associated
with a transaction normally requires the transaction be aborted.
DatabaseException
- if a failure occurs.public LockDetectMode getLockDetectMode()
This method may be called at any time during the life of the application.
public void setLockDown(boolean lockDown)
lockDown
- If true, configure the database environment to lock shared
environment files and memory-mapped databases into memory.public boolean getLockDown()
This method may be called at any time during the life of the application.
public void setLockTimeout(long lockTimeout)
Lock timeouts are checked whenever a thread of control blocks on a lock or when deadlock detection is performed. The lock may have been requested explicitly through the Lock subsystem interfaces, or it may be a lock requested by the database access methods underlying the application. As timeouts are only checked when the lock request first blocks or when deadlock detection is performed, the accuracy of the timeout depends on how often deadlock detection is performed.
Timeout values specified for the database environment may be overridden
on a
per-lock basis by Environment.lockVector
.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may be called at any time during the life of the application.
lockTimeout
- The timeout value, specified as an unsigned 32-bit number of
microseconds, limiting the maximum timeout to roughly 71 minutes.
IllegalArgumentException
- if an invalid parameter was specified.
DatabaseException
- if a failure occurs.public long getLockTimeout()
This method may be called at any time during the life of the application.
public void setLogAutoRemove(boolean logAutoRemove)
Automatic log file removal is likely to make catastrophic recovery impossible.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may be called at any time during the life of the application.
logAutoRemove
- If true, configure the system to automatically remove log files that
are no longer needed.public boolean getLogAutoRemove()
This method may be called at any time during the life of the application.
public void setLogInMemory(boolean inmemory)
When in-memory logs are configured and no more log buffer space is
available, Berkeley DB methods will throw a DatabaseException
.
When choosing log buffer and file sizes for in-memory logs, applications
should ensure the in-memory log buffer size is large enough that no
transaction will ever span the entire buffer, and avoid a state where the
in-memory buffer is full and no space can be freed because a transaction
that started in the first log "file" is still active.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
inmemory
- If true, maintain transaction logs in memory rather than on disk.public boolean getLogInMemory()
This method may be called at any time during the life of the application.
public void setLogRecordHandler(LogRecordHandler logRecordHandler)
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may not be called after the environment has been opened. If joining an existing database environment, the information specified to this method must be consistent with the existing environment or corruption can occur.
logRecordHandler
- The handler for application-specific log records.
DatabaseException
- if a failure occurs.public LogRecordHandler getLogRecordHandler()
This method may be called at any time during the life of the application.
public void setMaxLocks(int maxLocks)
This value is used during environment creation to estimate how much space to allocate for various lock-table data structures. The default value is 1000 locks.
The database environment's maximum number of locks may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_lk_max_locks", one or more whitespace characters, and the number of locks. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
maxLocks
- The maximum number of locks supported by the database environment.
DatabaseException
- if a failure occurs.public int getMaxLocks()
This method may be called at any time during the life of the application.
public void setMaxLockers(int maxLockers)
This value is used during environment creation to estimate how much space to allocate for various lock-table data structures. The default value is 1000 lockers.
The database environment's maximum number of lockers may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_lk_max_lockers", one or more whitespace characters, and the number of lockers. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
maxLockers
- The maximum number simultaneous locking entities supported by the
database environment.
DatabaseException
- if a failure occurs.public int getMaxLockers()
This method may be called at any time during the life of the application.
public void setMaxLockObjects(int maxLockObjects)
This value is used during environment creation to estimate how much space to allocate for various lock-table data structures. The default value is 1000 objects.
The database environment's maximum number of objects may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_lk_max_objects", one or more whitespace characters, and the number of objects. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
maxLockObjects
- The maximum number of locked objects supported by the database
environment.
DatabaseException
- if a failure occurs.public int getMaxLockObjects()
This method may be called at any time during the life of the application.
public void setMaxLogFileSize(int maxLogFileSize)
By default, or if the maxLogFileSize parameter is set to 0, a size
of 10MB is used. If no size is specified by the application, the
size last specified for the database region will be used, or if no
database region previously existed, the default will be used.
Because LogSequenceNumber
file offsets are unsigned four-byte
values, the set value may not be larger than the maximum unsigned
four-byte value.
The database environment's log file size may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_lg_max", one or more whitespace characters, and the size in bytes. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may be called at any time during the life of the application.
maxLogFileSize
- The maximum size of a single file in the log, in bytes.
DatabaseException
- if a failure occurs.public int getMaxLogFileSize()
This method may be called at any time during the life of the application.
public void setLogBufferSize(int logBufferSize)
Log information is stored in-memory until the storage space fills up or transaction commit forces the information to be flushed to stable storage. In the presence of long-running transactions or transactions producing large amounts of data, larger buffer sizes can increase throughput.
By default, or if the value is set to 0, a size of 32K is used.
The database environment's log buffer size may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_lg_bsize", one or more whitespace characters, and the size in bytes. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
logBufferSize
- The size of the in-memory log buffer, in bytes.
DatabaseException
- if a failure occurs.public int getLogBufferSize()
This method may be called at any time during the life of the application.
public void setLogDirectory(File logDirectory)
Log files created by the Log Manager subsystem will be created in this directory. If no logging directory is specified, log files are created in the environment home directory.
For the greatest degree of recoverability from system or application failure, database files and log files should be located on separate physical devices.
The database environment's logging directory may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_lg_dir", one or more whitespace characters, and the directory name. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may not be called after the environment has been opened. If joining an existing database environment, the information specified to this method must be consistent with the existing environment or corruption can occur.
logDirectory
- The directory used to store the logging files.
On Windows platforms, this argument will be interpreted as a UTF-8
string, which is equivalent to ASCII for Latin characters.
DatabaseException
- if a failure occurs.public File getLogDirectory()
This method may be called at any time during the life of the application.
public void setLogRegionSize(int logRegionSize)
By default, or if the value is set to 0, the default size is 60KB. The log region is used to store filenames, and so may need to be increased in size if a large number of files will be opened and registered with the specified database environment's log manager.
The database environment's log region size may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_lg_regionmax", one or more whitespace characters, and the size in bytes. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
logRegionSize
- The size of the logging area in the database environment, in bytes.
DatabaseException
- if a failure occurs.public int getLogRegionSize()
This method may be called at any time during the life of the application.
public void setMessageHandler(MessageHandler messageHandler)
There are interfaces in the Berkeley DB library which either directly
output informational messages or statistical information, or configure
the library to output such messages when performing other operations,
EnvironmentConfig.setVerboseDeadlock
for example.
The EnvironmentConfig.setMessageHandler
and
DatabaseConfig.setMessageHandler
methods are used to display
these messages for the application.
Setting messageHandler to null unconfigures the interface.
Alternatively, you can use EnvironmentConfig.setMessageStream
and DatabaseConfig.setMessageStream
to send the additional
information directly to an output streams. You should not mix these
approaches.
This method may be called at any time during the life of the application.
messageHandler
- The application-specified function for informational messages.public MessageHandler getMessageHandler()
This method may be called at any time during the life of the application.
public void setMessageStream(OutputStream messageStream)
There are interfaces in the Berkeley DB library which either directly
output informational messages or statistical information, or configure
the library to output such messages when performing other operations,
EnvironmentConfig.setVerboseDeadlock
for example.
The EnvironmentConfig.setMessageStream
and
DatabaseConfig.setMessageStream
methods are used to display
these messages for the application. In this case, the message will
include a trailing newline character.
Setting messageStream to null unconfigures the interface.
Alternatively, you can use EnvironmentConfig.setMessageHandler
and DatabaseConfig.setMessageHandler
to capture the additional
information in a way that does not use output streams. You should not
mix these approaches.
This method may be called at any time during the life of the application.
messageStream
- The application-specified OutputStream for informational messages.public OutputStream getMessageStream()
This method may be called at any time during the life of the application.
public void setMMapSize(long mmapSize)
If no value is specified, it defaults to 10MB.
Files that are opened read-only in the pool (and that satisfy a few other criteria) are, by default, mapped into the process address space instead of being copied into the local cache. This can result in better-than-usual performance because available virtual memory is normally much larger than the local cache, and page faults are faster than page copying on many systems. However, it can cause resource starvation in the presence of limited virtual memory, and it can result in immense process sizes in the presence of large databases.
mmapSize
- The maximum file size, in bytes, for a file to be mapped into the
process address space.
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may be called at any time during the life of the application.
DatabaseException
- if a failure occurs.public long getMMapSize()
DatabaseException
- if a failure occurs.public void setMode(int mode)
On UNIX systems or in POSIX environments, files created in the database environment are created with the specified mode (as modified by the process' umask value at the time of creation).
On UNIX systems or in POSIX environments, system shared memory segments created by the library are created with the specified mode, unmodified by the process' umask value.
If is 0, the library will use a default mode of readable and writable by both owner and group.
Created files are owned by the process owner; the group ownership of created files is based on the system and directory defaults, and is not further specified by the library.
mode
- The mode to use when creating underlying files and shared memory
segments.public long getMode()
This method may be called at any time during the life of the application.
public void setNoLocking(boolean noLocking)
This functionality should never be used for purposes other than debugging.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
This method may be called at any time during the life of the application.
noLocking
- If true, configure the system to grant all requested mutual exclusion
mutexes and database locks without regard for their actual availability.public boolean getNoLocking()
This method may be called at any time during the life of the application.
public void setNoMMap(boolean noMMap)
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
noMMap
- If true, configure the system to copy read-only database files into
the local cache instead of potentially mapping them into process memory.public boolean getNoMMap()
This method may be called at any time during the life of the application.
public void setNoPanic(boolean noPanic)
Database environments in a panic state normally refuse all attempts to
call Berkeley DB functions, throwing RunRecoveryException
.
This functionality should never be used for purposes other than
debugging.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
This method may be called at any time during the life of the application.
noPanic
- If true, configure the system to ignore any panic state in the
database environment.public boolean getNoPanic()
This method may be called at any time during the life of the application.
public void setOverwrite(boolean overwrite)
Berkeley DB overwrites files using alternating 0xff, 0x00 and 0xff byte patterns. For file overwriting to be effective, the underlying file must be stored on a fixed-block filesystem. Systems with journaling or logging filesystems will require operating system support and probably modification of the Berkeley DB sources.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
This method may be called at any time during the life of the application.
overwrite
- If true, configure the system to overwrite files stored in encrypted
formats before deleting them.public boolean getOverwrite()
This method may be called at any time during the life of the application.
public void setPanicHandler(PanicHandler panicHandler)
Errors can occur in the Berkeley DB library where the only solution is
to shut down the application and run recovery (for example, if Berkeley
DB is unable to allocate heap memory). In such cases, the Berkeley DB
methods will throw a RunRecoveryException
. It is often easier
to simply exit the application when such errors occur rather than
gracefully return up the stack. This method specifies a function to be
called when RunRecoveryException
is about to be thrown from a
Berkeley DB method.
This method may be called at any time during the life of the application.
panicHandler
- The function to be called if the database environment panics.public PanicHandler getPanicHandler()
This method may be called at any time during the life of the application.
public void setPrivate(boolean isPrivate)
This has two effects on the database environment. First, all underlying data structures are allocated from per-process memory instead of from shared memory that is potentially accessible to more than a single process. Second, mutexes are only configured to work between threads.
This flag should not be specified if more than a single process is accessing the environment because it is likely to cause database corruption and unpredictable behavior. For example, if both a server application and the a Berkeley DB utility are expected to access the environment, the database environment should not be configured as private.
isPrivate
- If true, configure the database environment to only be accessed by
a single process.public boolean getPrivate()
This method may be called at any time during the life of the application.
public void setReadOnly(boolean readOnly)
readOnly
- whether the environment should be opened read-onlypublic boolean getReadOnly()
This method may be called at any time during the life of the application.
public void setReplicationLimit(long replicationLimit)
Environment.processReplicationMessage
.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called before the database environment is opened.
replicationLimit
- The maximum number of bytes that will be sent in a single call to
Environment.processReplicationMessage
.
DatabaseException
- if a failure occurs.public long getReplicationLimit()
Environment.processReplicationMessage
.
This method may be called at any time during the life of the application.
Environment.processReplicationMessage
.
DatabaseException
- if a failure occurs.public void setReplicationTransport(int envid, ReplicationTransport replicationTransport)
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may be called at any time during the life of the application.
envid
- The local environment's ID. It must be a positive integer and
uniquely identify this Berkeley DB database environment.
replicationTransport
- The callback function is used to transmit data using the replication
application's communication infrastructure.public ReplicationTransport getReplicationTransport()
public void setRunFatalRecovery(boolean runFatalRecovery)
A standard part of the recovery process is to remove the existing database environment and create a new one. Applications running recovery must be prepared to re-create the environment because underlying shared regions will be removed and re-created.
If the thread of control performing recovery does not specify the correct database environment initialization information (for example, the correct memory pool cache size), the result can be an application running in an environment with incorrect cache and other subsystem sizes. For this reason, the thread of control performing recovery should specify correct configuration information before recovering the environment; or it should remove the environment after recovery is completed, leaving creation of a correctly sized environment to a subsequent call.
All recovery processing must be single-threaded; that is, only a single thread of control may perform recovery or access a database environment while recovery is being performed. Because it is not an error to run recovery for an environment for which no recovery is required, it is reasonable programming practice for the thread of control responsible for performing recovery and creating the environment to always specify recovery during startup.
This method returns successfully if recovery is run no log files exist, so it is necessary to ensure that all necessary log files are present before running recovery.
runFatalRecovery
- If true, configure to run catastrophic recovery on this environment
before opening it for normal use.public boolean getRunFatalRecovery()
This method may be called at any time during the life of the application.
public void setRunRecovery(boolean runRecovery)
A standard part of the recovery process is to remove the existing database environment and create a new one. Applications running recovery must be prepared to re-create the environment because underlying shared regions will be removed and re-created.
If the thread of control performing recovery does not specify the correct database environment initialization information (for example, the correct memory pool cache size), the result can be an application running in an environment with incorrect cache and other subsystem sizes. For this reason, the thread of control performing recovery should specify correct configuration information before recovering the environment; or it should remove the environment after recovery is completed, leaving creation of a correctly sized environment to a subsequent call.
All recovery processing must be single-threaded; that is, only a single thread of control may perform recovery or access a database environment while recovery is being performed. Because it is not an error to run recovery for an environment for which no recovery is required, it is reasonable programming practice for the thread of control responsible for performing recovery and creating the environment to always specify recovery during startup.
This method returns successfully if recovery is run no log files exist, so it is necessary to ensure that all necessary log files are present before running recovery.
runRecovery
- If true, configure to run catastrophic recovery on this environment
before opening it for normal use.public boolean getRunRecovery()
This method may be called at any time during the life of the application.
public void setSystemMemory(boolean systemMemory)
systemMemory
- If true, configure the database environment to allocate memory from
system shared memory instead of from memory backed by the filesystem.public boolean getSystemMemory()
This method may be called at any time during the life of the application.
public void setRPCServer(String rpcServer, long rpcClientTimeout, long rpcServerTimeout)
After this method is called, subsequent calls to Berkeley DB library interfaces may throw exceptions encapsulating DB_NOSERVER, DB_NOSERVER_ID or DB_NOSERVER_HOME.
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may not be called after the environment has been opened.
rpcServer
- The host to which the client will connect and create a channel for
communication.
rpcClientTimeout
- The number of seconds the client should wait for results to come
back from the server. Once the timeout has expired on any
communication with the server, DatabaseException
encapsulating DB_NOSERVER will be thrown. If this value is zero, a
default timeout is used.
rpcServerTimeout
- The number of seconds the server should allow a client connection
to remain idle before assuming that the client is gone. Once that
timeout has been reached, the server releases all resources
associated with that client connection. Subsequent attempts by that
client to communicate with the server result in an error return,
indicating that an invalid identifier has been given to the server.
This value can be considered a hint to the server. The server may
alter this value based on its own policies or allowed values. If
this value is zero, a default timeout is used.public void setSegmentId(long segmentId)
shmget
and related System V IPC interfaces.
This base segment ID will be used when database environment shared memory regions are first created. It will be incremented a small integer value each time a new shared memory region is created; that is, if the base ID is 35, the first shared memory region created will have a segment ID of 35, and the next one will have a segment ID between 36 and 40 or so. A database environment always creates a master shared memory region; an additional shared memory region for each of the subsystems supported by the environment (Locking, Logging, Memory Pool and Transaction); plus an additional shared memory region for each additional memory pool cache that is supported. Already existing regions with the same segment IDs will be removed.
The intent behind this method is two-fold: without it, applications have no way to ensure that two Berkeley DB applications don't attempt to use the same segment IDs when creating different database environments. In addition, by using the same segment IDs each time the environment is created, previously created segments will be removed, and the set of segments on the system will not grow without bound. The database environment's base segment ID may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_shm_key", one or more whitespace characters, and the ID. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may not be called after the environment has been opened. If joining an existing database environment, the information specified to this method must be consistent with the existing environment or corruption can occur.
segmentId
- The base segment ID for the database environment.
DatabaseException
- if a failure occurs.public long getSegmentId()
This method may be called at any time during the life of the application.
public void setTemporaryDirectory(String temporaryDirectory)
The files created to back in-memory access method databases will be created relative to this path. These temporary files can be quite large, depending on the size of the database.
If no directory is specified, the following alternatives are checked in the specified order. The first existing directory path is used for all temporary files.
- The value of the environment variable TMPDIR.
- The value of the environment variable TEMP.
- The value of the environment variable TMP.
- The value of the environment variable TempFolder.
- The value returned by the GetTempPath interface.
- The directory /var/tmp.
- The directory /usr/tmp.
- The directory /temp.
- The directory /tmp.
- The directory C:/temp.
- The directory C:/tmp.
Note: the environment variables are only checked if the database environment has been configured with one of
EnvironmentConfig.setUseEnvironment
orEnvironmentConfig.setUseEnvironmentRoot
.Note: the GetTempPath interface is only checked on Win/32 platforms.
The database environment's temporary file directory may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_tmp_dir", one or more whitespace characters, and the directory name. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.This method may not be called after the environment has been opened. If joining an existing database environment, the information specified to this method must be consistent with the existing environment or corruption can occur.
- Parameters:
temporaryDirectory
- The directory to be used to store temporary files. On Windows platforms, this argument will be interpreted as a UTF-8 string, which is equivalent to ASCII for Latin characters.
- Throws:
DatabaseException
- if a failure occurs.
public String getTemporaryDirectory()
This method may be called at any time during the life of the application.
public void setTestAndSetSpins(int testAndSetSpins)
The value defaults to 1 on uniprocessor systems and to 50 times the number of processors on multiprocessor systems.
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may be called at any time during the life of the application.
testAndSetSpins
- The number of times test-and-set mutexes should spin before blocking.public int getTestAndSetSpins()
This method may be called at any time during the life of the application.
public void setThreaded(boolean threaded)
This is the default; threading is always assumed in Java, so no special configuration is required.
threaded
- If true, configure the handle to be free-threaded.public boolean getThreaded()
This method may be called at any time during the life of the application.
public void setTxnNoSync(boolean txnNoSync)
This means that transactions exhibit the ACI (atomicity, consistency, and isolation) properties, but not D (durability); that is, database integrity will be maintained, but if the application or system fails, it is possible some number of the most recently committed transactions may be undone during recovery. The number of transactions at risk is governed by how many log updates can fit into the log buffer, how often the operating system flushes dirty buffers to disk, and how often the log is checkpointed.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
txnNoSync
- If true, configure the system to not write or synchronously flush
the log on transaction commit.public boolean getTxnNoSync()
This method may be called at any time during the life of the application.
public void setTxnNotDurable(boolean txnNotDurable)
This means that transactions exhibit the ACI (atomicity, consistency,
and isolation) properties, but not D (durability); that is, database
integrity will be maintained, but if the application or system
fails, integrity will not persist. All database files must be
verified and/or restored from backup after a failure. In order to
ensure integrity after application shut down, all database handles
must be closed without specifying noSync, or all database changes
must be flushed from the database environment cache using the
Environment.checkpoint
.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
txnNotDurable
- If true, configure the system to not write log records.public boolean getTxnNotDurable()
This method may be called at any time during the life of the application.
public void setTxnMaxActive(int txnMaxActive)
This value bounds the size of the memory allocated for transactions. Child transactions are counted as active until they either commit or abort.
When all of the memory available in the database environment for
transactions is in use, calls to Environment.beginTransaction
will fail (until some active transactions complete). If this
interface is never called, the database environment is configured
to support at least 20 active transactions.
The database environment's number of active transactions may also be set using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_tx_max", one or more whitespace characters, and the number of transactions. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may not be called after the environment has been opened. If joining an existing database environment, any information specified to this method will be ignored.
txnMaxActive
- The minimum number of simultaneously active transactions supported
by the database environment.
DatabaseException
- if a failure occurs.public int getTxnMaxActive()
DatabaseException
- if a failure occurs.public void setTxnTimeout(long txnTimeout)
Transaction timeouts are checked whenever a thread of control blocks on a lock or when deadlock detection is performed. The lock is one requested on behalf of a transaction, normally by the database access methods underlying the application. As timeouts are only checked when the lock request first blocks or when deadlock detection is performed, the accuracy of the timeout depends on how often deadlock detection is performed.
Timeout values specified for the database environment may be overridden
on a
per-transaction basis by Transaction.setTxnTimeout
.
This method configures a database environment, including all threads
of control accessing the database environment, not only the operations
performed using a specified Environment
handle.
This method may be called at any time during the life of the application.
txnTimeout
- The timeout value, specified as an unsigned 32-bit number of
microseconds, limiting the maximum timeout to roughly 71 minutes.
IllegalArgumentException
- if an invalid parameter was specified.
DatabaseException
- if a failure occurs.public long getTxnTimeout()
This method may be called at any time during the life of the application.
public void setTxnTimestamp(Date txnTimestamp)
Once a database environment has been upgraded to a new version of Berkeley DB involving a log format change, it is no longer possible to recover to a specific time before that upgrade.
This method configures only operations performed using a single a
Environment
handle, not an entire database environment.
This method may not be called after the environment has been opened.
txnTimestamp
- The recovery timestamp.
Only the seconds (not the milliseconds) of the timestamp are used.
DatabaseException
- if a failure occurs.public Date getTxnTimestamp()
DatabaseException
- if a failure occurs.public void setTxnWriteNoSync(boolean txnWriteNoSync)
This means that transactions exhibit the ACI (atomicity, consistency, and isolation) properties, but not D (durability); that is, database integrity will be maintained, but if the system fails, it is possible some number of the most recently committed transactions may be undone during recovery. The number of transactions at risk is governed by how often the system flushes dirty buffers to disk and how often the log is checkpointed.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
txnWriteNoSync
- If true, configure the system to write, but not synchronously flush,
the log on transaction commit.public boolean getTxnWriteNoSync()
This method may be called at any time during the life of the application.
public void setUseEnvironment(boolean useEnvironment)
Because permitting users to specify which files are used can create security problems, environment information will be used in file naming for all users only if configured to do so.
useEnvironment
- If true, configure the database environment to accept information
from the process environment when naming files.public boolean getUseEnvironment()
This method may be called at any time during the life of the application.
public void setUseEnvironmentRoot(boolean useEnvironmentRoot)
Because permitting users to specify which files are used can create security problems, environment information will be used in file naming for all users only if configured to do so.
useEnvironmentRoot
- If true, configure the database environment to accept information
from the process environment when naming files if the process has
appropriate permissions.public boolean getUseEnvironmentRoot()
This method may be called at any time during the life of the application.
public void setVerboseDeadlock(boolean verboseDeadlock)
This method may be called at any time during the life of the application.
verboseDeadlock
- If true, display additional information when doing deadlock
detection.public boolean getVerboseDeadlock()
This method may be called at any time during the life of the application.
public void setVerboseRecovery(boolean verboseRecovery)
This method may be called at any time during the life of the application.
verboseRecovery
- If true, display additional information when performing recovery.public boolean getVerboseRecovery()
This method may be called at any time during the life of the application.
public void setVerboseReplication(boolean verboseReplication)
Note, to get complete replication logging when debugging replication applications, you must also configure and build the Berkeley DB library with the --enable-diagnostic configuration option as well as call this method.
This method may be called at any time during the life of the application.
verboseReplication
- If true, display additional information when processing replication
messages.public boolean getVerboseReplication()
This method may be called at any time during the life of the application.
public void setVerboseWaitsFor(boolean verboseWaitsFor)
This method may be called at any time during the life of the application.
verboseWaitsFor
- If true, display the waits-for table when doing deadlock detection.public boolean getVerboseWaitsFor()
This method may be called at any time during the life of the application.
public void setYieldCPU(boolean yieldCPU)
This functionality should never be used for purposes other than stress testing.
This method only affects the specified Environment
handle (and
any other library handles opened within the scope of that handle).
For consistent behavior across the environment, all Environment
handles opened in the database environment must either call this method
or the configuration should be specified in the database environment's
DB_CONFIG configuration file.
This method may be called at any time during the life of the application.
yieldCPU
- If true, configure the system to yield the processor immediately
after each page or mutex acquisition.public boolean getYieldCPU()
This method may be called at any time during the life of the application.
|
Berkeley DB version 4.3.29 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |