#include <db.h> int DB_ENV->lock_stat(DB_ENV *env, DB_LOCK_STAT **statp, u_int32_t flags);
The DB_ENV->lock_stat()
method returns the locking subsystem
statistics.
The DB_ENV->lock_stat()
method creates a statistical structure of
type DB_LOCK_STAT and copies a pointer to it into a user-specified
memory location.
Statistical structures are stored in allocated memory. If application-specific allocation routines have been declared (see DB_ENV->set_alloc() for more information), they are used to allocate the memory; otherwise, the standard C library malloc(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.
The following DB_LOCK_STAT fields will be filled in:
u_int32_t st_id;
The last allocated locker ID.
u_int32_t st_cur_maxid;
The current maximum unused locker ID.
int st_nmodes;
The number of lock modes.
u_int32_t st_maxlocks;
The maximum number of locks possible.
u_int32_t st_maxlockers;
The maximum number of lockers possible.
u_int32_t st_maxobjects;
The maximum number of lock objects possible.
u_int32_t st_partitions;
The number of lock table partitions.
u_int32_t st_nlocks;
The number of current locks.
u_int32_t st_maxnlocks;
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.
u_int32_t st_maxhlocks;
The maximum number of locks in any hash bucket at any one time.
uintmax_t st_locksteals;
The maximum number of locks stolen by an empty partition.
uintmax_t st_maxlsteals;
The maximum number of lock steals for any one partition.
u_int32_t st_nlockers;
The number of current lockers.
u_int32_t st_maxnlockers;
The maximum number of lockers at any one time.
u_int32_t st_nobjects;
The number of current lock objects.
u_int32_t st_maxnobjects;
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.
u_int32_t st_maxhobjects;
The maximum number of objects in any hash bucket at any one time.
uintmax_t st_objectsteals;
The maximum number of objects stolen by an empty partition.
uintmax_t st_maxosteals;
The maximum number of object steals for any one partition.
uintmax_t st_nrequests;
The total number of locks requested.
uintmax_t st_nreleases;
The total number of locks released.
uintmax_t st_nupgrade;
The total number of locks upgraded.
uintmax_t st_ndowngrade;
The total number of locks downgraded.
uintmax_t st_lock_wait;
The number of lock requests not immediately available due to conflicts, for which the thread of control waited.
uintmax_t st_lock_nowait;
The number of lock requests not immediately available due to conflicts, for which the thread of control did not wait.
uintmax_t st_ndeadlocks;
The number of deadlocks.
db_timeout_t st_locktimeout;
Lock timeout value.
uintmax_t st_nlocktimeouts;
The number of lock requests that have timed out.
u_int32_t st_txntimeout;
Transaction timeout value.
uintmax_t st_ntxntimeouts;
The number of transactions that have timed out. This value is also a component of st_ndeadlocks, the total number of deadlocks detected.
uintmax_t st_objs_wait;
The number of requests to allocate or deallocate an object for which the thread of control waited.
uintmax_t st_objs_nowait;
The number of requests to allocate or deallocate an object for which the thread of control did not wait.
uintmax_t st_lockers_wait;
The number of requests to allocate or deallocate a locker for which the thread of control waited.
uintmax_t st_lockers_nowait;
The number of requests to allocate or deallocate a locker for which the thread of control did not wait.
u_int32_t st_hash_len;
Maximum length of a lock hash bucket.
roff_t st_regsize;
The size of the lock region, in bytes.
uintmax_t st_part_wait;
The number of times that a thread of control was forced to wait before obtaining the lock partition mutex.
uintmax_t st_part_nowait;
The number of times that a thread of control was able to obtain the lock partition mutex without waiting.
uintmax_t st_part_max_wait;
The maximum number of times that a thread of control was forced to wait before obtaining any one lock partition mutex.
uintmax_t st_part_max_nowait;
The number of times that a thread of control was able to obtain any one lock partition mutex without waiting.
uintmax_t st_region_wait;
The number of times that a thread of control was forced to wait before obtaining the lock region mutex.
uintmax_t st_region_nowait;
The number of times that a thread of control was able to obtain the lock region mutex without waiting.
The DB_ENV->lock_stat()
method may not be called before the
DB_ENV->open() method is called.
The DB_ENV->lock_stat()
method returns a non-zero error value on
failure and 0 on success.
The flags parameter must be set to 0 or the following value:
The DB_ENV->lock_stat()
method may fail and return one of the following non-zero errors: