DbEnv::set_lk_detect

APIRef

#include <db_cxx.h>

int DbEnv::set_lk_detect(u_int32_t detect);

Description

Set if the deadlock detector is to be run whenever a lock conflict occurs, and specify which transaction should be aborted in the case of a deadlock. The specified value must be one of the following list:

DB_LOCK_DEFAULT
Use the default policy as specified by db_deadlock.
DB_LOCK_OLDEST
Abort the oldest transaction.
DB_LOCK_RANDOM
Abort a random transaction involved in the deadlock.
DB_LOCK_YOUNGEST
Abort the youngest transaction.

The DbEnv::set_lk_detect interface may only be used to configure Berkeley DB before the DbEnv::open interface is called.

The DbEnv::set_lk_detect 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 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 interface detect argument 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.

Errors

EINVAL
An invalid flag value or parameter was specified.

Called after DbEnv::open was called.

Classes

DbEnv, DbLock

See Also

DbEnv::set_lk_conflicts, DbEnv::set_lk_detect, DbEnv::set_lk_max_locks, DbEnv::set_lk_max_lockers, DbEnv::set_lk_max_objects, DbEnv::set_lk_max, DbEnv::lock_detect, DbEnv::lock_get, DbEnv::lock_id, DbLock::put, DbEnv::lock_stat and DbEnv::lock_vec.

APIRef

Copyright Sleepycat Software