mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 17:16:25 +00:00
260 lines
11 KiB
HTML
260 lines
11 KiB
HTML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<title>db_deadlock</title>
|
||
<link rel="stylesheet" href="apiReference.css" type="text/css" />
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
|
||
<link rel="start" href="index.html" title="Berkeley DB C API Reference" />
|
||
<link rel="up" href="utilities.html" title="Appendix A. Berkeley DB Command Line Utilities" />
|
||
<link rel="prev" href="db_checkpoint.html" title="db_checkpoint" />
|
||
<link rel="next" href="db_dump.html" title="db_dump" />
|
||
</head>
|
||
<body>
|
||
<div xmlns="" class="navheader">
|
||
<div class="libver">
|
||
<p>Library Version 11.2.5.3</p>
|
||
</div>
|
||
<table width="100%" summary="Navigation header">
|
||
<tr>
|
||
<th colspan="3" align="center">db_deadlock</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="db_checkpoint.html">Prev</a> </td>
|
||
<th width="60%" align="center">Appendix A.
|
||
Berkeley DB Command Line Utilities
|
||
</th>
|
||
<td width="20%" align="right"> <a accesskey="n" href="db_dump.html">Next</a></td>
|
||
</tr>
|
||
</table>
|
||
<hr />
|
||
</div>
|
||
<div class="sect1" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h2 class="title" style="clear: both"><a id="db_deadlock"></a>db_deadlock</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<pre class="programlisting">db_deadlock [-Vv]
|
||
[-a e | m | n | o | W | w | y] [-h home] [-L file] [-t sec.usec] </pre>
|
||
<p>
|
||
The <span class="command"><strong>db_deadlock</strong></span> utility traverses the database environment lock
|
||
region, and aborts a lock request each time it detects a deadlock or a
|
||
lock request that has timed out. By default, in the case of a
|
||
deadlock, a random lock request is chosen to be aborted.
|
||
</p>
|
||
<p>
|
||
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.
|
||
</p>
|
||
<p>
|
||
The options are as follows:
|
||
</p>
|
||
<div class="itemizedlist">
|
||
<ul type="disc">
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>-a</strong></span>
|
||
</p>
|
||
<p>
|
||
When a deadlock is detected, abort the locker:
|
||
</p>
|
||
<div class="itemizedlist">
|
||
<ul type="circle">
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>m</strong></span>
|
||
</p>
|
||
<p>
|
||
with the most locks
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>n</strong></span>
|
||
</p>
|
||
<p>
|
||
with the fewest locks
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>o</strong></span>
|
||
</p>
|
||
<p>
|
||
with the oldest locks
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>W</strong></span>
|
||
</p>
|
||
<p>
|
||
with the most write locks
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>w</strong></span>
|
||
</p>
|
||
<p>
|
||
with the fewest write locks
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>y</strong></span>
|
||
</p>
|
||
<p>
|
||
with the youngest locks
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>e</strong></span>
|
||
</p>
|
||
<p>
|
||
When lock or transaction timeouts have been specified, abort any lock
|
||
request that has timed out. Note that this option
|
||
does not perform the entire deadlock detection
|
||
algorithm, but instead only checks for timeouts.
|
||
</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>-h</strong></span>
|
||
</p>
|
||
<p>
|
||
Specify a home directory for the database environment; by default, the
|
||
current working directory is used.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>-L</strong></span>
|
||
</p>
|
||
<p>
|
||
Log the execution of the <span class="command"><strong>db_deadlock</strong></span> utility to the specified file in
|
||
the following format, where <span class="emphasis"><em>###</em></span> is the process
|
||
ID, and the date is the time the utility was started.
|
||
</p>
|
||
<pre class="programlisting"> db_deadlock: ### Wed Jun 15 01:23:45 EDT 1995 </pre>
|
||
<p>
|
||
This file will be removed if the <span class="command"><strong>db_deadlock</strong></span>
|
||
utility exits gracefully.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>-t</strong></span>
|
||
</p>
|
||
<p>
|
||
Check the database environment every <span class="bold"><strong>sec</strong></span> seconds plus <span class="bold"><strong>usec</strong></span> microseconds to see if a process has been
|
||
forced to wait for a lock; if one has, review the database environment
|
||
lock structures.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>-V</strong></span>
|
||
</p>
|
||
<p>
|
||
Write the library version number to the standard output, and exit.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>
|
||
<span class="bold"><strong>-v</strong></span>
|
||
</p>
|
||
<p>
|
||
Run in verbose mode, generating messages each time the detector runs.
|
||
</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<p>
|
||
If the <span class="bold"><strong>-t</strong></span> option is not specified,
|
||
<span class="command"><strong>db_deadlock</strong></span> will run once and exit.
|
||
</p>
|
||
<p>
|
||
The <span class="command"><strong>db_deadlock</strong></span> utility uses a Berkeley DB environment (as described
|
||
for the <span class="bold"><strong>-h</strong></span> option, the environment
|
||
variable <span class="bold"><strong>DB_HOME</strong></span>, 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, <span class="command"><strong>db_deadlock</strong></span> should always be given the chance to detach
|
||
from the environment and exit gracefully. To cause <span class="command"><strong>db_deadlock</strong></span> to
|
||
release all environment resources and exit cleanly, send it an
|
||
interrupt signal (SIGINT).
|
||
</p>
|
||
<p>
|
||
The <span class="command"><strong>db_deadlock</strong></span> 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 <span class="command"><strong>db_deadlock</strong></span> utility should be started.
|
||
</p>
|
||
<p>
|
||
The <a class="xref" href="lockdetect.html" title="DB_ENV->lock_detect()">DB_ENV->lock_detect()</a> method
|
||
is the underlying method used by the <span class="command"><strong>db_deadlock</strong></span> utility. See the
|
||
<span class="command"><strong>db_deadlock</strong></span> utility source code for an example of using
|
||
<code class="methodname">DB_ENV->lock_detect()</code> in a
|
||
IEEE/ANSI Std 1003.1 (POSIX) environment.
|
||
</p>
|
||
<p>
|
||
The <span class="command"><strong>db_deadlock</strong></span> utility exits 0 on success, and >0 if an error
|
||
occurs.
|
||
</p>
|
||
<div class="sect2" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h3 class="title"><a id="idp63066824"></a>Environment Variables</h3>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect3" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h4 class="title"><a id="idp63067016"></a>DB_HOME</h4>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
If the <span class="bold"><strong>-h</strong></span> 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 the
|
||
<a class="xref" href="envopen.html" title="DB_ENV->open()">DB_ENV->open()</a> method.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="navfooter">
|
||
<hr />
|
||
<table width="100%" summary="Navigation footer">
|
||
<tr>
|
||
<td width="40%" align="left"><a accesskey="p" href="db_checkpoint.html">Prev</a> </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="u" href="utilities.html">Up</a>
|
||
</td>
|
||
<td width="40%" align="right"> <a accesskey="n" href="db_dump.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">db_checkpoint </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="h" href="index.html">Home</a>
|
||
</td>
|
||
<td width="40%" align="right" valign="top"> db_dump</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|