File: lock_stat.html

package info (click to toggle)
db4.7 4.7.25-9
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 65,844 kB
  • ctags: 43,162
  • sloc: ansic: 155,831; java: 62,154; tcl: 53,808; sh: 14,078; perl: 13,476; cpp: 10,662; cs: 2,660; makefile: 2,629; awk: 1,749; xml: 197; python: 26; php: 22; asm: 14; sed: 9
file content (166 lines) | stat: -rw-r--r-- 10,177 bytes parent folder | download | duplicates (2)
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 &lt;db_cxx.h&gt;
<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>