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 set to 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 be used only 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); that is, database integrity will be maintained, but it is possible that some number of the most recently committed transactions may be undone during recovery.

The number of transactions 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 into the log buffer.

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

The DbEnv::set_flags method may fail and throw an exception or return a non-zero error for the following conditions:

EINVAL
An invalid flag value or parameter was specified.

The DbEnv::set_flags method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. If a catastrophic error has occurred, the DbEnv::set_flags method may fail and either return DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY, in which case all subsequent Berkeley DB calls will fail in the same way.

Class

DbEnv

See Also

DbEnv::close, DbEnv::err, DbEnv::errx DbEnv::open, DbEnv::remove, DbEnv::set_alloc, DbEnv::set_cachesize, DbEnv::set_data_dir, DbEnv::set_errcall, DbEnv::set_errfile, DbEnv::set_error_stream, DbEnv::set_errpfx, DbEnv::set_feedback, DbEnv::set_flags, DbEnv::set_mutexlocks, DbEnv::set_pageyield, DbEnv::set_paniccall, DbEnv::set_panicstate, DbEnv::set_recovery_init, DbEnv::set_rpc_server, DbEnv::set_region_init, DbEnv::set_shm_key, DbEnv::set_tas_spins, DbEnv::set_tmp_dir, DbEnv::set_verbose, DbEnv::strerror and DbEnv::version.

APIRef

Copyright Sleepycat Software