DbEnv::set_flags

API Ref

#include <db_cxx.h>

int DbEnv::set_flags(u_int32_t flags, int onoff);

int DbEnv::get_flags(u_int32_t *flagsp)


Description: DbEnv::set_flags

Configure a database environment.

The database environment's flag values may also be configured using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "set_flags", one or more whitespace characters, and the method flag parameter as a string; for example, "set_flags DB_TXN_NOSYNC". Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.

The DbEnv::set_flags method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

Parameters

flags
The flags parameter must be set by bitwise inclusively OR'ing together one or more of the following values:
DB_AUTO_COMMIT
If set, operations for which no explicit transaction handle was specified, and which modify databases in the database environment, will be automatically enclosed within a transaction.

Calling DbEnv::set_flags with the DB_AUTO_COMMIT flag only affects the specified DbEnv handle (and any other Berkeley DB handles opened within the scope of that handle). For consistent behavior across the environment, all DbEnv handles opened in the environment must either set the DB_AUTO_COMMIT flag or the flag should be specified in the DB_CONFIG configuration file.

The DB_AUTO_COMMIT flag may be used to configure Berkeley DB at any time during the life of the application.

DB_CDB_ALLDB
If set, Berkeley DB Concurrent Data Store applications will perform locking on an environment-wide basis rather than on a per-database basis.

Calling DbEnv::set_flags with the DB_CDB_ALLDB flag only affects the specified DbEnv handle (and any other Berkeley DB handles opened within the scope of that handle). For consistent behavior across the environment, all DbEnv handles opened in the environment must either set the DB_CDB_ALLDB flag or the flag should be specified in the DB_CONFIG configuration file.

The DB_CDB_ALLDB flag may be used to configure Berkeley DB only before the DbEnv::open method is called.

DB_DIRECT_DB
Turn off system buffering of Berkeley DB database files to avoid double caching.

Calling DbEnv::set_flags with the DB_DIRECT_DB flag only affects the specified DbEnv handle (and any other Berkeley DB handles opened within the scope of that handle). For consistent behavior across the environment, all DbEnv handles opened in the environment must either set the DB_DIRECT_DB flag or the flag should be specified in the DB_CONFIG configuration file.

The DB_DIRECT_DB flag may be used to configure Berkeley DB at any time during the life of the application.

DB_DIRECT_LOG
Turn off system buffering of Berkeley DB log files to avoid double caching.

Calling DbEnv::set_flags with the DB_DIRECT_LOG flag only affects the specified DbEnv handle (and any other Berkeley DB handles opened within the scope of that handle). For consistent behavior across the environment, all DbEnv handles opened in the environment must either set the DB_DIRECT_LOG flag or the flag should be specified in the DB_CONFIG configuration file.

The DB_DIRECT_LOG flag may be used to configure Berkeley DB at any time during the life of the application.

DB_DSYNC_DB
Configure Berkeley DB to flush database writes to the backing disk before returning from the write system call, rather than flushing database writes explicitly in a separate system call, as necessary. This is only available on some systems (for example, systems supporting the IEEE/ANSI Std 1003.1 (POSIX) standard O_DSYNC flag, or systems supporting the Win32 FILE_FLAG_WRITE_THROUGH flag). This flag may result in inaccurate file modification times and other file-level information for Berkeley DB database files. This flag will almost certainly result in a performance decrease on most systems. This flag is only applicable to certain filesysystem (for example, the Veritas VxFS filesystem), where the filesystem's support for trickling writes back to stable storage behaves badly (or more likely, has been misconfigured).

Calling DbEnv::set_flags with the DB_DSYNC_DB flag only affects the specified DbEnv handle (and any other Berkeley DB handles opened within the scope of that handle). For consistent behavior across the environment, all DbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEnvDbEn