# DB_ENV->set_paniccall

`

###

    #include <db.h>

    int
    DB_ENV->set_paniccall(DB_ENV *dbenv,
        void (*paniccall)(DB_ENV *, int errval));

# Description

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, the value DB_RUNRECOVERY is returned by Berkeley DB.

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 DB_ENV->set_paniccall and DB->set_paniccall functions are used to specify functions 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 function.

The DB_ENV->set_paniccall interface may be used to configure Berkeley DB at any time during the life of the application.

The DB_ENV->set_paniccall function returns a non-zero error value on failure and 0 on success.

# See Also

db_env_create, DB_ENV->close, DB_ENV->err, DB_ENV->errx DB_ENV->open, DB_ENV->remove, DB_ENV->set_alloc, DB_ENV->set_cachesize, DB_ENV->set_data_dir, DB_ENV->set_errcall, DB_ENV->set_errfile, DB_ENV->set_errpfx, DB_ENV->set_feedback, DB_ENV->set_flags, DB_ENV->set_paniccall, DB_ENV->set_recovery_init, DB_ENV->set_rpc_server, DB_ENV->set_shm_key, DB_ENV->set_tas_spins, DB_ENV->set_tmp_dir, DB_ENV->set_timeout, DB_ENV->set_verbose, db_strerror and db_version.`

Copyright Sleepycat Software