73 lines
2.7 KiB
Plaintext
73 lines
2.7 KiB
Plaintext
m4_comment([$Id: env_failchk.so,v 10.7 2007/09/21 20:06:01 bostic Exp $])
|
|
|
|
define(M4PAGELOCAL, [dbenv_failchk])
|
|
include(m4/m4.seealso)
|
|
|
|
m4_pf_header(m4_ref(dbenv_failchk),
|
|
ifelse(M4API, C_API, [dnl
|
|
int
|
|
DB_ENV-__GT__failchk(DB_ENV *dbenv, u_int32_t flags);
|
|
])
|
|
ifelse(M4API, CXX_API, [dnl
|
|
int
|
|
DbEnv::failchk(u_int32_t flags);
|
|
]))
|
|
|
|
m4_p([dnl
|
|
The m4_refT(dbenv_failchk) checks for threads of control (either a true
|
|
thread or a process) that have exited while manipulating m4_db library
|
|
data structures, while holding a logical database lock, or with an
|
|
unresolved transaction (that is, a transaction that was never aborted
|
|
or committed). For more information, see m4_link(M4RELDIR/ref/cam/app,
|
|
Architecting Data Store and Concurrent Data Store applications), and
|
|
m4_link(M4RELDIR/ref/transapp/app, Architecting Transactional Data Store
|
|
applications).])
|
|
|
|
m4_p([dnl
|
|
The m4_refT(dbenv_failchk) is based on the "thread_id" and "is_alive"
|
|
functions specified to the m4_refT(dbenv_set_thread_id). Applications
|
|
calling the m4_refT(dbenv_failchk) must have already called the
|
|
m4_refT(dbenv_set_isalive), on the same m4_ref(DbEnv), and must have
|
|
configured their database environment using the
|
|
m4_refT(dbenv_set_thread_count).])
|
|
|
|
m4_p([dnl
|
|
If m4_ref(dbenv_failchk) determines a thread of control exited while
|
|
holding database read locks, it will release those locks. If
|
|
m4_ref(dbenv_failchk) determines a thread of control exited with an
|
|
unresolved transaction, the transaction will be aborted. In either of
|
|
these cases, m4_ref(dbenv_failchk) will return 0 and the application may
|
|
continue to use the database environment.])
|
|
|
|
m4_p([dnl
|
|
In either of these cases, the m4_refT(dbenv_failchk) will also report
|
|
the process and thread IDs associated with any released locks or
|
|
aborted transactions. The information is printed to a specified output
|
|
channel (see the m4_refT(dbenv_set_msgfile) for more information), or
|
|
passed to an application callback function (see the
|
|
m4_refT(dbenv_set_msgcall) for more information).])
|
|
|
|
m4_p([dnl
|
|
If m4_ref(dbenv_failchk) determines a thread of control has exited such
|
|
that database environment recovery is required, it will return
|
|
m4_ref(DB_RUNRECOVERY). In this case, the application should not
|
|
continue to use the database environment. For a further description as
|
|
to the actions the application should take when this failure occurs, see
|
|
m4_link(M4RELDIR/ref/cam/fail, Handling failure in Data Store and
|
|
Concurrent Data Store applications), and
|
|
m4_link(M4RELDIR/ref/transapp/fail, Handling failure in Transactional
|
|
Data Store applications).])
|
|
|
|
m4_when(dbenv_failchk, before, dbenv_open)
|
|
|
|
m4_return(dbenv_failchk, std)
|
|
|
|
m4_parambegin
|
|
m4_unusedflags
|
|
m4_paramend
|
|
|
|
m4_err(dbenv_failchk, einval)
|
|
|
|
m4_seealso(DbEnv)
|
|
m4_page_footer
|