DbLock
NAME
DbLock - lock class
SYNOPSIS
#include <db_cxx.h>
int
DbLock::put(DbLockTab *lt);
unsigned int
DbLock::get_lock_id();
void
DbLock::set_lock_id(unsigned int);
DBLock::DbLock(unsigned int);
DBLock::DbLock();
DBLock::DbLock(const DbLock &);
DbLock &DBLock::operator = (const DbLock &);
DESCRIPTION
The DB library is a family of classes that provides a mod-
ular programming interface to transactions and record-ori-
ented file access. The library includes support for
transactions, locking, logging and file page caching, as
well as various indexed access methods. Many of the
classes (e.g., the file page caching class) are useful
independent of the other DB classes, although some classes
are explicitly based on other classes (e.g., transactions
and logging). For a general description of the DB pack-
age, see db_intro(3).
This manual page describes the specific details of the
locking interface. The DbLock class is used in conjunc-
tion with DbLockTab(3) to provide general-purpose locking.
While designed to work with the other Db classes, these
classes are also useful for more general locking purposes.
Locks can be shared between processes. In most cases,
when multiple threads or processes are using locking, the
deadlock detector, db_deadlock(1), should be run.
DbLock::put
The DbLock::put method is a simple interface to the
DbLockTab::vec functionality, and is equivalent to calling
the DbLockTab::vec method with a single element list
array, for which the op field is DB_LOCK_PUT and the lock
field is represented by the DbLock object. The
DbLock::put method returns success and failure as
described for the DbLockTab::vec method.
DbLock::get_lock_id
The DbLock::get_lock_id method gets the underlying repre-
sentation of the lock id. Direct manipulation of the
an exception that encapsulates the error information. The
default error behavior can be changed, see DbException(3).
The DbLock::put method may fail and throw a DbException(3)
or return errno for any of the errors specified for the
following DB and library functions: DbLock::detect(3),
fcntl(2), fflush(3), lseek(2), memcpy(3), memset(3),
mmap(2), munmap(2), strerror(3), and write(2).
In addition, the DbLock::put method may fail and throw a
DbException(3) or return errno for the following condi-
tions:
[EACCES]
An attempt was made to release lock held by another
locker.
[EINVAL]
An invalid flag value or parameter was specified.
BUGS
If a process dies while holding locks, those locks remain
held and are never released. In this case, all processes
should exit as quickly as possible, so that db_recover can
be run.
SEE ALSO
db_archive(1), db_checkpoint(1), db_deadlock(1), db_dump(1),
db_load(1), db_recover(1), db_stat(1), db_intro(3), db_jump(3),
db_thread(3), Db(3), Dbc(3), DbEnv(3), DbException(3), DbInfo(3),
DbLock(3), DbLocktab(3), DbLog(3), DbLsn(3), DbMpool(3),
DbMpoolFile(3), Dbt(3), DbTxn(3), DbTxnMgr(3)