head 1.2; access; symbols RPM_4_2_1:1.1.1.5 RPM_4_2:1.1.1.5 RPM_4_1_1:1.1.1.5 RPM_4_1:1.1.1.4 RPM_4_0_5:1.1.1.3 RPM_4_0_4:1.1.1.2 RPM_4_0_3:1.1.1.1 RPM:1.1.1; locks; strict; comment @# @; 1.2 date 2008.01.02.09.53.26; author rse; state dead; branches; next 1.1; commitid z4cpSiAhOCXk5PLs; 1.1 date 2001.07.23.20.45.36; author rse; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2001.07.23.20.45.36; author rse; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 2002.01.08.00.30.09; author rse; state Exp; branches; next 1.1.1.3; 1.1.1.3 date 2003.01.18.13.48.59; author rse; state Exp; branches; next 1.1.1.4; 1.1.1.4 date 2001.12.06.00.08.05; author rse; state Exp; branches; next 1.1.1.5; 1.1.1.5 date 2003.01.18.14.04.57; author rse; state Exp; branches; next ; desc @@ 1.2 log @remove the ancient RPM 4.2.1 source tree copy @ text @ Berkeley DB: DbEnv::set_lk_detect

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_MAXLOCKS
Abort the transaction with the greatest number of locks.
DB_LOCK_MINLOCKS
Abort the transaction with the fewest locks.
DB_LOCK_MINWRITE
Abort the transaction with the fewest write locks.
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 be used only 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

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

Called after DbEnv::open was called.

The DbEnv::set_lk_detect 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_lk_detect 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, DbLock

See Also

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

APIRef

Copyright Sleepycat Software @ 1.1 log @Initial revision @ text @d1 1 a1 1 @ 1.1.1.1 log @Import: RPM 4.0.3 @ text @@ 1.1.1.2 log @Import: RPM 4.0.4 @ text @d1 1 a1 1 d17 1 a17 1 APIRef d28 3 a30 6

Set if the deadlock detector is to be run whenever a lock conflict occurs, and specify what lock request(s) should be rejected. As transactions acquire locks on behalf of a single locker ID, rejecting a lock request associated with a transaction normally requires the transaction be aborted. The specified value must be one of the following list: d32 10 a41 14

DB_LOCK_DEFAULT
Use whatever lock policy was specified when the database environment was created. If no lock policy has yet been specified, set the lock policy to DB_LOCK_RANDOM.
DB_LOCK_EXPIRE
Reject lock requests which have timed out. No other deadlock detection is performed.
DB_LOCK_MAXLOCKS
Reject the lock request for the locker ID with the greatest number of locks.
DB_LOCK_MINLOCKS
Reject the lock request for the locker ID with the fewest number of locks.
DB_LOCK_MINWRITE
Reject the lock request for the locker ID with the fewest number of write locks.
DB_LOCK_OLDEST
Reject the lock request for the oldest locker ID.
DB_LOCK_RANDOM
Reject the lock request for a random locker ID.
DB_LOCK_YOUNGEST
Reject the lock request for the youngest locker ID. d70 1 d77 1 a77 2 DbEnv::lock_id_free, DbEnv::lock_put, d83 1 a83 1 APIRef @ 1.1.1.3 log @Import: RPM 4.0.5 @ text @d1 2 a2 2 a3 1 d50 2 a51 8

The DbEnv::set_lk_detect method configures a database environment, not only operations performed using the specified DbEnv handle.

The DbEnv::set_lk_detect interface may not be called after the DbEnv::open interface is called. If the database environment already exists when DbEnv::open is called, the information specified to DbEnv::set_lk_detect must be consistent with the existing environment or an error will be returned. d68 4 a71 4 If a catastrophic error has occurred, the DbEnv::set_lk_detect method may fail and either return DB_RUNRECOVERY or throw a DbRunRecoveryException, in which case all subsequent Berkeley DB calls will fail in the same way. d73 1 a73 1 DbEnv, DbLock d75 13 a87 1 Locking Subsystem and Related Methods @ 1.1.1.4 log @Import: RPM 4.1 @ text @d1 2 a2 2 d4 1 d51 8 a58 2

The DbEnv::set_lk_detect interface may be used only to configure Berkeley DB before the DbEnv::open interface is called. d75 4 a78 4 If a catastrophic error has occurred, the DbEnv::set_lk_detect 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. d80 1 a80 1 DbEnv, DbLock d82 1 a82 13 DbEnv::set_lk_conflicts, DbEnv::set_lk_detect, DbEnv::set_lk_max_lockers, DbEnv::set_lk_max_locks, DbEnv::set_lk_max_objects, DbEnv::lock_detect, DbEnv::lock_get, DbEnv::lock_id, DbEnv::lock_id_free, DbEnv::lock_put, DbEnv::lock_stat, and DbEnv::lock_vec. @ 1.1.1.5 log @Import: RPM 4.1.1 @ text @d1 2 a2 2 a3 1 d50 2 a51 8

The DbEnv::set_lk_detect method configures a database environment, not only operations performed using the specified DbEnv handle.

The DbEnv::set_lk_detect interface may not be called after the DbEnv::open interface is called. If the database environment already exists when DbEnv::open is called, the information specified to DbEnv::set_lk_detect must be consistent with the existing environment or an error will be returned. d68 4 a71 4 If a catastrophic error has occurred, the DbEnv::set_lk_detect method may fail and either return DB_RUNRECOVERY or throw a DbRunRecoveryException, in which case all subsequent Berkeley DB calls will fail in the same way. d73 1 a73 1 DbEnv, DbLock d75 13 a87 1 Locking Subsystem and Related Methods @