libdb/docs/api_reference/C/db_deadlock.html
2012-11-14 16:35:20 -05:00

260 lines
11 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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-&gt;lock_detect()">DB_ENV-&gt;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-&gt;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 &gt;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-&gt;open()">DB_ENV-&gt;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>