# DbEnv::set_recovery_init

`

###

    #include <db_cxx.h>

    int
    DbEnv::set_recovery_init(int (*db_recovery_init_fcn)(DbEnv *));

# Description

Applications installing application-specific recovery methods need to be called before Berkeley DB performs recovery so they may add their recovery methods to Berkeley DB's.

The DbEnv::set_recovery_init method supports this functionality. The db_recovery_init_fcn method must be declared with one argument, a reference to the enclosing Berkeley DB environment. This method will be called after the DbEnv::open has been called, but before recovery is started.

If the db_recovery_init_fcn method returns a non-zero value, no recovery will be performed, and DbEnv::open will return the same value to its caller.

The DbEnv::set_recovery_init interface may be used only to configure Berkeley DB before the DbEnv::open interface is called.

The DbEnv::set_recovery_init 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.

# Errors

The DbEnv::set_recovery_init method may fail and throw an exception or return a non-zero error for the following conditions:

EINVAL
  An invalid flag value or parameter was specified.

  Called after DbEnv::open was called.

The DbEnv::set_recovery_init method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods. If a catastrophic error has occurred, the DbEnv::set_recovery_init method may fail and either return DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY, in which case all subsequent Berkeley DB calls will fail in the same way.

# Class

DbEnv

# See Also

DbEnv::close, DbEnv::err, DbEnv::errx DbEnv::open, DbEnv::remove, DbEnv::set_alloc, DbEnv::set_cachesize, DbEnv::set_data_dir, DbEnv::set_errcall, DbEnv::set_errfile, DbEnv::set_error_stream, DbEnv::set_errpfx, DbEnv::set_feedback, DbEnv::set_flags, DbEnv::set_paniccall, DbEnv::set_recovery_init, DbEnv::set_rpc_server, DbEnv::set_shm_key, DbEnv::set_tas_spins, DbEnv::set_tmp_dir, DbEnv::set_timeout, DbEnv::set_verbose, DbEnv::strerror and DbEnv::version.`

Copyright Sleepycat Software