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
|
<!--$Id: lock_stat.so,v 10.71 2008/03/21 18:20:27 ubell Exp $-->
<!--Copyright (c) 1997,2008 Oracle. All rights reserved.-->
<!--See the file LICENSE for redistribution information.-->
<html>
<head>
<title>Berkeley DB: DbEnv::lock_stat</title>
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++">
</head>
<body bgcolor=white>
<table width="100%"><tr valign=top>
<td>
<b>DbEnv::lock_stat</b>
</td>
<td align=right>
<a href="../api_cxx/api_core.html"><img src="../images/api.gif" alt="API"></a>
<a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a></td>
</tr></table>
<hr size=1 noshade>
<tt>
<b><pre>
#include <db_cxx.h>
<p>
int
DbEnv::lock_stat(DB_LOCK_STAT **statp, u_int32_t flags);
<p>
int
DbEnv::lock_stat_print(u_int32_t flags);
</pre></b>
<hr size=1 noshade>
<b>Description: DbEnv::lock_stat</b>
<p>The DbEnv::lock_stat method returns the locking subsystem statistics.</p>
<p>The DbEnv::lock_stat method creates a statistical structure of type
DB_LOCK_STAT and copies a pointer to it into a user-specified memory
location.</p>
<p>Statistical structures are stored in allocated memory. If application-specific allocation
routines have been declared (see <a href="../api_cxx/env_set_alloc.html">DbEnv::set_alloc</a> for more
information), they are used to allocate the memory; otherwise, the
standard C library <b>malloc</b>(3) is used. The caller is
responsible for deallocating the memory. To deallocate the memory, free
the memory reference; references inside the returned memory need not be
individually freed.</p>
<p>The following DB_LOCK_STAT fields will be filled in:</p>
<br>
<b>u_int32_t st_id;</b><ul compact><li>The last allocated locker ID.</ul>
<b>u_int32_t st_cur_maxid;</b><ul compact><li>The current maximum unused locker ID.</ul>
<b>u_int32_t st_nmodes;</b><ul compact><li>The number of lock modes.</ul>
<b>u_int32_t st_maxlocks;</b><ul compact><li>The maximum number of locks possible.</ul>
<b>u_int32_t st_maxlockers;</b><ul compact><li>The maximum number of lockers possible.</ul>
<b>u_int32_t st_maxobjects;</b><ul compact><li>The maximum number of lock objects possible.</ul>
<b>u_int32_t st_partitions;</b><ul compact><li>The number of lock table partitions.</ul>
<b>u_int32_t st_nlocks;</b><ul compact><li>The number of current locks.</ul>
<b>u_int32_t st_maxnlocks;</b><ul compact><li>The maximum number of locks at any one time. Note that if there is more
than one partition, this is the sum of the maximum across all partitions.</ul>
<b>u_int32_t st_maxhlocks;</b><ul compact><li>The maximum number of locks in any hash bucket at any one time.</ul>
<b>u_int32_t st_locksteals;</b><ul compact><li>The maximum number of locks stolen by for an empty partition.</ul>
<b>u_int32_t st_maxlsteals;</b><ul compact><li>The maximum number of lock steals for any one partition.</ul>
<b>u_int32_t st_nlockers;</b><ul compact><li>The number of current lockers.</ul>
<b>u_int32_t st_maxnlockers;</b><ul compact><li>The maximum number of lockers at any one time.</ul>
<b>u_int32_t st_nobjects;</b><ul compact><li>The number of current lock objects.</ul>
<b>u_int32_t st_maxnobjects;</b><ul compact><li>The maximum number of lock objects at any one time. Note that if there is more
than one partition this is the sum of the maximum across all partitions.</ul>
<b>u_int32_t st_maxhobjects;</b><ul compact><li>The maximum number of objects in any hash bucket at any one time.</ul>
<b>u_int32_t st_objectsteals;</b><ul compact><li>The maximum number of objects stolen by for an empty partition.</ul>
<b>u_int32_t st_maxosteals;</b><ul compact><li>The maximum number of object steals for any one partition.</ul>
<b>u_int32_t st_nrequests;</b><ul compact><li>The total number of locks requested.</ul>
<b>u_int32_t st_nreleases;</b><ul compact><li>The total number of locks released.</ul>
<b>u_int32_t st_nupgrade;</b><ul compact><li>The total number of locks upgraded.</ul>
<b>u_int32_t st_ndowngrade;</b><ul compact><li>The total number of locks downgraded.</ul>
<b>u_int32_t st_lock_wait;</b><ul compact><li>The number of lock requests not immediately available due to conflicts,
for which the thread of control waited.</ul>
<b>u_int32_t st_lock_nowait;</b><ul compact><li>The number of lock requests not immediately available due to conflicts,
for which the thread of control did not wait.</ul>
<b>u_int32_t st_ndeadlocks;</b><ul compact><li>The number of deadlocks.</ul>
<b>u_int32_t st_locktimeout;</b><ul compact><li>Lock timeout value.</ul>
<b>u_int32_t st_nlocktimeouts;</b><ul compact><li>The number of lock requests that have timed out.</ul>
<b>u_int32_t st_txntimeout;</b><ul compact><li>Transaction timeout value.</ul>
<b>u_int32_t st_ntxntimeouts;</b><ul compact><li>The number of transactions that have timed out. This value is also a
component of <b>st_ndeadlocks</b>, the total number of deadlocks
detected.</ul>
<b>u_int32_t st_objs_wait;</b><ul compact><li>The number of requests to allocate or deallocate an object
for which the thread of control waited.</ul>
<b>u_int32_t st_objs_nowait;</b><ul compact><li>The number of requests to allocate or deallocate an object
for which the thread of control did not wait.</ul>
<b>u_int32_t st_lockers_wait;</b><ul compact><li>The number of requests to allocate or deallocate a locker
for which the thread of control waited.</ul>
<b>u_int32_t st_lockers_nowait;</b><ul compact><li>The number of requests to allocate or deallocate a locker
for which the thread of control did not wait.</ul>
<b>u_int32_t st_hash_len;</b><ul compact><li>Maximum length of a lock hash bucket.</ul>
<b>roff_t st_regsize;</b><ul compact><li>The size of the lock region, in bytes.</ul>
<b>u_int32_t st_part_wait;</b><ul compact><li>The number of times that a thread of control was forced to wait before
obtaining the lock partition mutex.</ul>
<b>u_int32_t st_part_nowait;</b><ul compact><li>The number of times that a thread of control was able to obtain
the lock partition mutex without waiting.</ul>
<b>u_int32_t st_part_max_wait;</b><ul compact><li>The maximum number of times that a thread of control was forced to wait before
obtaining any one lock partition mutex.</ul>
<b>u_int32_t st_part_max_nowait;</b><ul compact><li>The number of times that a thread of control was able to obtain
any one lock partition mutex without waiting.</ul>
<b>u_int32_t st_region_wait;</b><ul compact><li>The number of times that a thread of control was forced to wait before
obtaining the lock region mutex.</ul>
<b>u_int32_t st_region_nowait;</b><ul compact><li>The number of times that a thread of control was able to obtain
the lock region mutex without waiting.</ul>
<br>
<p>The DbEnv::lock_stat method may not be called before the <a href="../api_cxx/env_open.html">DbEnv::open</a> method is called.</p>
<p>The DbEnv::lock_stat 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.
</p>
<b>Parameters</b> <br>
<b>flags</b><ul compact><li>The <b>flags</b> parameter must be set to 0 or
the following value:
<br>
<b><a name="DB_STAT_CLEAR">DB_STAT_CLEAR</a></b><ul compact><li>Reset statistics after returning their values.</ul>
<br></ul>
<b>statp</b><ul compact><li>The <b>statp</b> parameter references memory into which
a pointer to the allocated statistics structure is copied.</ul>
<br>
<br><b>Errors</b>
<p>The DbEnv::lock_stat method
may fail and throw
<a href="../api_cxx/except_class.html">DbException</a>,
encapsulating one of the following non-zero errors, or return one of
the following non-zero errors:</p>
<br>
<b>EINVAL</b><ul compact><li>An
invalid flag value or parameter was specified.</ul>
<br>
<hr size=1 noshade>
<b>Description: DbEnv::lock_stat_print</b>
<p>The DbEnv::lock_stat_print method displays the
locking subsystem statistical information, as described for the DbEnv::lock_stat method.
The information is printed to a specified output channel (see the
<a href="../api_cxx/env_set_msgfile.html">DbEnv::set_msgfile</a> method for more information), or passed to an
application callback function (see the <a href="../api_cxx/env_set_msgcall.html">DbEnv::set_msgcall</a> method for
more information).</p>
<p>The DbEnv::lock_stat_print method may not be called before the <a href="../api_cxx/env_open.html">DbEnv::open</a> method is called.</p>
<p>The DbEnv::lock_stat_print 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.
</p>
<b>Parameters</b> <br>
<b>flags</b><ul compact><li>The <b>flags</b> parameter must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one
or more of the following values:
<br>
<b><a name="DB_STAT_ALL">DB_STAT_ALL</a></b><ul compact><li>Display all available information.</ul>
<b><a name="DB_STAT_CLEAR">DB_STAT_CLEAR</a></b><ul compact><li>Reset statistics after displaying their values.</ul>
<b><a name="DB_STAT_LOCK_CONF">DB_STAT_LOCK_CONF</a></b><ul compact><li>Display the lock conflict matrix.</ul>
<b><a name="DB_STAT_LOCK_LOCKERS">DB_STAT_LOCK_LOCKERS</a></b><ul compact><li>Display the lockers within hash chains.</ul>
<b><a name="DB_STAT_LOCK_OBJECTS">DB_STAT_LOCK_OBJECTS</a></b><ul compact><li>Display the lock objects within hash chains.</ul>
<b><a name="DB_STAT_LOCK_PARAMS">DB_STAT_LOCK_PARAMS</a></b><ul compact><li>Display the locking subsystem parameters.</ul>
<br></ul>
<br>
<hr size=1 noshade>
<br><b>Class</b>
<a href="../api_cxx/env_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
<br><b>See Also</b>
<a href="../api_cxx/lock_list.html">Locking Subsystem and Related Methods</a>
</tt>
<table width="100%"><tr><td><br></td><td align=right>
<a href="../api_cxx/api_core.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
</td></tr></table>
<p><font size=1>Copyright (c) 1996,2008 Oracle. All rights reserved.</font>
</body>
</html>
|