# DbEnv.set_recovery_init

`

###

    import com.sleepycat.db.*;

    public interface DbRecoveryInit
    {
    	public abstract int db_recovery_init_fcn(DbEnv dbenv);
    }
    public class DbEnv
    {
    	public void set_recovery_init(DbRecoveryInit db_recovery_init_fcn)
    		throws DbException;
    	...
    }

# 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 throws an exception that encapsulates a non-zero error value on failure.

# Errors

The DbEnv.set_recovery_init method may fail and throw an exception encapsulating 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 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 throw a DbRunRecoveryException, in which case all subsequent Berkeley DB calls will fail in the same way.

# Class

DbEnv

# See Also

DbEnv.close, DbEnv.get_version_string, DbEnv.open, DbEnv.remove, DbEnv.set_cachesize, DbEnv.set_data_dir, DbEnv.set_errcall, DbEnv.set_error_stream, DbEnv.set_errpfx, DbEnv.set_feedback, DbEnv.set_flags, DbEnv.set_mutexlocks, DbEnv.set_pageyield, DbEnv.set_panicstate, DbEnv.set_recovery_init, DbEnv.set_rpc_server, DbEnv.set_region_init, DbEnv.set_shm_key, DbEnv.set_tas_spins, DbEnv.set_tmp_dir, DbEnv.set_verbose, and DbEnv.strerror.`

Copyright Sleepycat Software