DbEnv::set_flags

APIRef

#include <db_cxx.h>

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

Description

The flags value must be set to 0 or by bitwise inclusively OR'ing together one or more of the following values. If onoff is zero, the specified flags are cleared, otherwise they are set.

DB_CDB_ALLDB
For Berkeley DB Concurrent Data Store applications, perform locking on an environment-wide basis rather than per-database. This flag may only be used to configure Berkeley DB before the DbEnv::open interface is called.

DB_NOMMAP
Copy read-only database files in this environment into the local cache instead of potentially mapping them into process memory (see the description of the DbEnv::set_mp_mmapsize method for further information).

DB_TXN_NOSYNC
Do not synchronously flush the log on transaction commit or prepare. This means that transactions exhibit the ACI (atomicity, consistency and isolation) properties, but not D (durability), i.e., database integrity will be maintained but it is possible that some number of the most recently committed transactions may be undone during recovery instead of being redone.

The number of transactions that are potentially at risk is governed by how often the log is checkpointed (see db_checkpoint for more information) and how many log updates can fit on a single log page.

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.

The database environment's flag values 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_flags", one or more whitespace characters, and the interface flag argument 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.

Errors

EINVAL
An invalid flag value or parameter was specified.

Class

DbEnv

See Also

DbEnv::close, DbEnv::open, DbEnv::remove, DbEnv::err, DbEnv::strerror, DbEnv::version, DbEnv::set_cachesize, DbEnv::set_errcall, DbEnv::set_errfile, DbEnv::set_error_stream, DbEnv::set_errpfx, DbEnv::set_flags, DbEnv::set_mutexlocks, DbEnv::set_paniccall, and DbEnv::set_verbose.

APIRef

Copyright Sleepycat Software