void (*db_paniccall_fcn)(DbEnv *dbenv, int errval));
Errors can occur in the Berkeley DB library where the only solution is to shut
down the application and run recovery (for example, if Berkeley DB is unable
to allocate heap memory). In these cases, when the C++ error model has
been configured so that the individual Berkeley DB methods return error codes
(see DbException for more information), the value
DB_RUNRECOVERY is returned by Berkeley DB methods.
In these cases, it is also often simpler to shut down the application
when such errors occur rather than to try to gracefully return up the
stack. The DbEnv::set_paniccall and Db::set_paniccall methods
are used to specify methods to be called when
DB_RUNRECOVERY is about to be returned from a Berkeley DB interface.
When called, the dbenv argument will be a reference to the
current environment, and the errval argument is the error value
that would have been returned to the calling method.
For Db handles opened inside of Berkeley DB environments, calling the
Db::set_paniccall method affects the entire environment and is equivalent to calling
the DbEnv::set_paniccall method.
The Db::set_paniccall interface may be called at any time during the life of
The Db::set_paniccall 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.
Databases and Related Methods
Copyright Sleepycat Software