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
|
<?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>DbMpoolFile::set_fileid()</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="memp.html" title="Chapter 9. The DbMpoolFile Handle" />
<link rel="prev" href="mempset_clear_len.html" title="DbMpoolFile::set_clear_len()" />
<link rel="next" href="mempset_flags.html" title="DbMpoolFile::set_flags()" />
</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">DbMpoolFile::set_fileid()</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="mempset_clear_len.html">Prev</a> </td>
<th width="60%" align="center">Chapter 9.
The DbMpoolFile Handle
</th>
<td width="20%" align="right"> <a accesskey="n" href="mempset_flags.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="mempset_fileid"></a>DbMpoolFile::set_fileid()</h2>
</div>
</div>
</div>
<pre class="programlisting">#include <db_cxx.h>
int
DbMpoolFile::set_fileid(u_int8_t *fileid); </pre>
<p>
The <code class="methodname">DbMpoolFile::set_fileid()</code> method specifies a unique identifier
for the file. (The shared memory buffer pool functions must be able to
uniquely identify files in order that multiple processes wanting to
share a file will correctly identify it in the cache.)
</p>
<p>
On most UNIX/POSIX systems, the <span class="bold"><strong>fileid</strong></span> field will not need
to be set, and the memory pool functions will use the file's device and inode numbers for
this purpose. On Windows systems, the memory pool functions use the values returned by
<code class="methodname">GetFileInformationByHandle()</code> by default — these values are
known to be constant between processes and over reboot in the case of NTFS (in which they
are the NTFS MFT indices).
</p>
<p>
On other filesystems (for example, FAT or NFS), these default values
are not necessarily unique between processes or across system reboots.
<span class="bold"><strong>Applications wanting to maintain a shared
cache between processes or across system reboots, in which the
cache contains pages from files stored on such filesystems, must
specify a unique file identifier using the <code class="methodname">DbMpoolFile::set_fileid()</code>
method, and each process opening the file must provide the same unique
identifier.</strong></span>
</p>
<p>
This call should not be necessary for most applications.
Specifically, it is not necessary if the cache is not shared
between processes and is reinstantiated after each system reboot, if
the application is using the Berkeley DB access methods instead of
calling the pool functions explicitly, or if the files in the
cache are stored on filesystems in which the default values as
described previously are invariant between process and across system
reboots.
</p>
<p>
The <code class="methodname">DbMpoolFile::set_fileid()</code> method configures a file in the
cache, not only operations performed using the specified
<a class="link" href="memp.html" title="Chapter 9. The DbMpoolFile Handle">DbMpoolFile</a> handle.
</p>
<p>
The <code class="methodname">DbMpoolFile::set_fileid()</code> method may not be called after the
<a class="xref" href="mempfopen.html" title="DbMpoolFile::open()">DbMpoolFile::open()</a>
method is called. If the mpool file already exists when
<code class="methodname">DbMpoolFile::open()</code> is called, the information
specified to <code class="methodname">DbMpoolFile::set_fileid()</code> must be
the same as that historically used to create the mpool file or
corruption can occur.
</p>
<p>
The <code class="methodname">DbMpoolFile::set_fileid()</code> <span>
<span>
method either returns a non-zero error value or throws an
exception that encapsulates a non-zero error value on
failure, and returns 0 on success.
</span>
</span>
</p>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp9041416"></a>Parameters</h3>
</div>
</div>
</div>
<div class="sect3" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="idp9040512"></a>fileid</h4>
</div>
</div>
</div>
<p>
The <span class="bold"><strong>fileid</strong></span> parameter is the unique
identifier for the file. Unique file identifiers must be a
<code class="literal">DB_FILE_ID_LEN</code> length array of bytes.
</p>
</div>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp9034984"></a>Class</h3>
</div>
</div>
</div>
<p>
<a class="link" href="env.html" title="Chapter 5. The DbEnv Handle">DbEnv</a>, <a class="link" href="memp.html" title="Chapter 9. The DbMpoolFile Handle">DbMpoolFile</a>
</p>
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="idp9044784"></a>See Also</h3>
</div>
</div>
</div>
<p>
<a class="xref" href="memp.html#memplist" title="Memory Pools and Related Methods">Memory Pools 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="mempset_clear_len.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="memp.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="mempset_flags.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">DbMpoolFile::set_clear_len() </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> DbMpoolFile::set_flags()</td>
</tr>
</table>
</div>
</body>
</html>
|