The db_deadlock utility traverses the database lock structures
and aborts a lock request each time it detects a deadlock. By default,
a random lock request is chosen to be aborted. This utility should be
run as a background daemon, or the underlying Berkeley DB deadlock detection
interfaces should be called in some other way, whenever there are
multiple threads or processes accessing a database and at least one of
them is modifying it.
The options are as follows:
-a
When a deadlock is detected, abort the oldest (o) lock request or the
youngest (y) lock request.
-h
Specify a home directory for the database environment; by
default, the current working directory is used.
-L
Log the execution of the db_deadlock utility to the specified file in the
following format, where ### is the process ID, and the date
is the time the utility was started.
db_deadlock: ### Wed Jun 15 01:23:45 EDT 1995
This file will be removed if the db_deadlock utility exits gracefully.
-t
Initiate a pass over the database locks at least every sec
seconds.
-V
Write the version number to the standard output and exit.
-v
Run in verbose mode, generating messages each time the detector runs.
-w
Make a single pass over the database locks every time a process is
forced to wait for a lock.
At least one of the -t and -w options must be specified.
The db_deadlock utility uses a Berkeley DB environment (as described for the
-h option, the environment variable DB_HOME, or,
because the utility was run in a directory containing a Berkeley DB
environment). In order to avoid environment corruption when using a Berkeley DB
environment, db_deadlock should always be given the chance to detach from
the environment and exit gracefully. To cause db_deadlock to release all
environment resources and exit cleanly, send it an interrupt signal
(SIGINT).
The db_deadlock utility does not attempt to create the Berkeley DB
shared memory regions if they do not already exist. The application
which creates the region should be started first, and then, once the
region is created, the db_deadlock utility should be started.
The db_deadlock utility exits 0 on success, and >0 if an error occurs.
Environment Variables
DB_HOME
If the -h option is not specified and the environment variable
DB_HOME is set, it is used as the path of the database home, as described
in DBENV->open.