1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
<?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_ENV->close()</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="env.html" title="Chapter 5. The DB_ENV Handle" />
<link rel="prev" href="envadd_data_dir.html" title="DB_ENV->add_data_dir()" />
<link rel="next" href="envcreate.html" title="db_env_create" />
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">DB_ENV->close()</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="envadd_data_dir.html">Prev</a> </td>
<th width="60%" align="center">Chapter 5.
The DB_ENV Handle
</th>
<td width="20%" align="right"> <a accesskey="n" href="envcreate.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="envclose"></a>DB_ENV->close()</h2>
</div>
</div>
</div>
<pre class="programlisting">#include <db.h>
int
DB_ENV->close(DB_ENV *dbenv, u_int32_t flags); </pre>
<p>
The <code class="methodname">DB_ENV->close()</code> method closes the Berkeley DB environment,
freeing any allocated resources and closing any underlying subsystems.
</p>
<p>
The <a class="link" href="env.html" title="Chapter 5. The DB_ENV Handle">DB_ENV</a> handle should
not be closed while any other handle that refers to it is not yet
closed; for example, database environment handles must not be closed
while database handles remain open, or transactions in the environment
have not yet been committed or aborted. Specifically, this includes the
<a class="link" href="db.html" title="Chapter 2. The DB Handle">DB</a>,
<a class="link" href="dbc.html" title="Chapter 3. The DBcursor Handle">DBcursor</a>,
<a class="link" href="txn.html" title="Chapter 12. The DB_TXN Handle">DB_TXN</a>,
<a class="link" href="logc.html" title="The DB_LOGC Handle">DB_LOGC</a> and
<a class="link" href="memp.html" title="Chapter 8. The DB_MPOOLFILE Handle">DB_MPOOLFILE</a> handles.
</p>
<p>
Where the environment was initialized with the
<a class="link" href="envopen.html#envopen_DB_INIT_LOCK">DB_INIT_LOCK</a> flag,
calling <code class="methodname">DB_ENV->close()</code> does not release any locks still held by the
closing process, providing functionality for long-lived locks.
Processes that want to have all their locks released can do so by
issuing the appropriate <a class="xref" href="lockvec.html" title="DB_ENV->lock_vec()">DB_ENV->lock_vec()</a> call.
</p>
<p>
Where the environment was initialized with the
<a class="link" href="envopen.html#envopen_DB_INIT_MPOOL">DB_INIT_MPOOL</a> flag,
calling <code class="methodname">DB_ENV->close()</code> implies calls to
<a class="xref" href="mempfclose.html" title="DB_MPOOLFILE->close()">DB_MPOOLFILE->close()</a> for any
remaining open files in the memory pool that were returned to this
process by calls to <a class="xref" href="mempfopen.html" title="DB_MPOOLFILE->open()">DB_MPOOLFILE->open()</a>. It does
not imply a call to <a class="xref" href="mempfsync.html" title="DB_MPOOLFILE->sync()">DB_MPOOLFILE->sync()</a> for those
files.
</p>
<p>
Where the environment was initialized with the
<a class="link" href="envopen.html#envopen_DB_INIT_TXN">DB_INIT_TXN</a> flag,
calling <code class="methodname">DB_ENV->close()</code> aborts any unresolved transactions.
Applications should not depend on this behavior for transactions
involving Berkeley DB databases; all such transactions should be
explicitly resolved. The problem with depending on this semantic is
that aborting an unresolved transaction involving database operations
requires a database handle. Because the database handles should have
been closed before calling <code class="methodname">DB_ENV->close()</code>, it will not be possible
to abort the transaction, and recovery will have to be run on the
Berkeley DB environment before further operations are done.
</p>
<p>
Where log cursors were created using the
<a class="xref" href="logcursor.html" title="DB_ENV->log_cursor()">DB_ENV->log_cursor()</a> method,
calling <code class="methodname">DB_ENV->close()</code> does not imply closing those cursors.
</p>
<p>
In multithreaded applications, only a single thread may call the
<code class="methodname">DB_ENV->close()</code> method.
</p>
<p>
After <code class="methodname">DB_ENV->close()</code> has been called, regardless of its return, the
Berkeley DB environment handle may not be accessed again.
</p>
<p>
The <code class="methodname">DB_ENV->close()</code> <span>
<span>
method returns a non-zero error value on failure and 0 on success.
</span>
</span>
</p>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="id1660579"></a>Parameters</h3>
</div>
</div>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="id1660937"></a>flags</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>flags</strong></span> parameter is currently
unused, and must be set to 0.
</p>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="id1661084"></a>Class</h3>
</div>
</div>
</div>
<p>
<a class="link" href="env.html" title="Chapter 5. The DB_ENV Handle">DB_ENV</a>
</p>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="id1660580"></a>See Also</h3>
</div>
</div>
</div>
<p>
<a class="xref" href="env.html#envlist" title="Database Environments and Related Methods">Database Environments and Related Methods</a>
</p>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="envadd_data_dir.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="env.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="envcreate.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">DB_ENV->add_data_dir() </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> db_env_create</td>
</tr>
</table>
</div>
</body>
</html>
|