DbEnv::set_lk_conflicts

API Ref

#include <db_cxx.h>

int DbEnv::set_lk_conflicts(u_int8_t *conflicts, int nmodes);

int DbEnv::get_lk_conflicts(const u_int8_t **lk_conflictsp, int *lk_modesp);


Description: DbEnv::set_lk_conflicts

Set the locking conflicts matrix.

If DbEnv::set_lk_conflicts is never called, a standard conflicts array is used; see Standard Lock Modes for more information.

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

The DbEnv::set_lk_conflicts method may not be called after the DbEnv::open method is called. If the database environment already exists when DbEnv::open is called, the information specified to DbEnv::set_lk_conflicts will be ignored.

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

Parameters

conflicts
The conflicts parameter is the new locking conflicts matrix. The conflicts parameter is an nmodes by nmodes array. A non-0 value for the array element indicates that requested_mode and held_mode conflict:
conflicts[requested_mode][held_mode]

The not-granted mode must be represented by 0.

nmodes
The nmodes parameter is the size of the lock conflicts matrix.

Errors

The DbEnv::set_lk_conflicts method may fail and throw DbException, encapsulating one of the following non-zero errors, or return one of the following non-zero errors:

EINVAL
If the method was called after DbEnv::open was called; or if an invalid flag value or parameter was specified.

If the conflicts array could not be copied, the DbEnv::set_lk_conflicts method will fail and either return ENOMEM or throw a DbMemoryException.


Description: dbenv_get_lk_conflicts

The DbEnv::get_lk_conflicts method returns the current conflicts array.

The DbEnv::get_lk_conflicts method may be called at any time during the life of the application.

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

Parameters

lk_conflictsp
The lk_conflictsp parameter references memory into which a pointer to the current conflicts array is copied.
lk_modesp
The lk_modesp parameter references memory into which the size of the current conflicts array is copied.

Class

DbEnv, DbLock

See Also

Locking Subsystem and Related Methods

APIRef

Copyright (c) 1996,2007 Oracle. All rights reserved.