|
DbEnv::set_flags
|
|
#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
- If set, Berkeley DB Concurrent Data Store applications will perform locking on an environment-wide
basis rather than on a per-database basis. The DB_CDB_ALLDB
flag may be used to configure Berkeley DB only before the DbEnv::open
interface is called.
This call affects only the specified DbEnv handle (and any
handles opened within the scope of that handle). For consistent
behavior across the environment, all DbEnv handles opened in
the environment must either make this same call or the DB_CDB_ALLDB flag
should be specified in the DB_CONFIG configuration file.
- DB_NOLOCKING
- If set, Berkeley DB will grant all requested mutual exclusion mutexes and
database locks without regard for their actual availability. This
functionality should never be used for purposes other than debugging.
This call affects only the specified DbEnv handle (and any
handles opened within the scope of that handle).
- DB_NOMMAP
- If set, Berkeley DB will copy read-only database files 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).
This call affects only the specified DbEnv handle (and any
handles opened within the scope of that handle). For consistent
behavior across the environment, all DbEnv handles opened in
the environment must either make this same call or the DB_NOMMAP flag
should be specified in the DB_CONFIG configuration file.
- DB_NOPANIC
- If set, Berkeley DB will ignore any panic state in the database environment.
(Database environments in a panic state normally refuse all attempts to
call Berkeley DB functions, returning DB_RUNRECOVERY.) This
functionality should never be used for purposes other than debugging.
This call affects only the specified DbEnv handle (and any
handles opened within the scope of that handle).
- DB_PANIC_ENVIRONMENT
- If set, Berkeley DB will set the panic state for the database environment.
(Database environments in a panic state normally refuse all attempts to
call Berkeley DB functions, returning DB_RUNRECOVERY.) This flag may
not be specified using the environment's DB_CONFIG file. This
flag may be used to configure Berkeley DB only after the DbEnv::open
interface is called.
This call affects all threads of control using the database
environment.
- DB_REGION_INIT
- 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.) If set, Berkeley DB will page-fault shared regions
into memory when initially creating or joining a Berkeley DB 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.
The DB_REGION_INIT flag may be used to configure Berkeley DB only
before the DbEnv::open interface is called.
This call affects only the specified DbEnv handle (and any
handles opened within the scope of that handle). For consistent
behavior across the environment, all DbEnv handles opened in
the environment must either make this same call or the DB_REGION_INIT flag
should be specified in the DB_CONFIG configuration file.
- DB_TXN_NOSYNC
- If set, Berkeley DB will 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.
This call affects only the specified DbEnv handle (and any
handles opened within the scope of that handle). For consistent
behavior across the environment, all DbEnv handles opened in
the environment must either make this same call or the DB_TXN_NOSYNC flag
should be specified in the DB_CONFIG configuration file.
- DB_YIELDCPU
- If set, Berkeley DB will yield the processor immediately after each page or
mutex acquisition. This functionality should never be used for purposes
other than stress testing.
This call affects only the specified DbEnv handle (and any
handles opened within the scope of that handle). For consistent
behavior across the environment, all DbEnv handles opened in
the environment must either make this same call or the DB_YIELDCPU flag
should be specified in the DB_CONFIG configuration file.
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_paniccall,
DbEnv::set_recovery_init,
DbEnv::set_rpc_server,
DbEnv::set_shm_key,
DbEnv::set_tas_spins,
DbEnv::set_tmp_dir,
DbEnv::set_timeout,
DbEnv::set_verbose,
DbEnv::strerror
and
DbEnv::version.
Copyright Sleepycat Software
|