DB_ENV->set_errcall()
Prev | Chapter 5. The DB_ENV Handle | Next

## DB_ENV->set_errcall()

    #include <db.h>

    void
    DB_ENV->set_errcall(DB_ENV *dbenv, void (*db_errcall_fcn)
        (const DB_ENV *dbenv, const char *errpfx, const char *msg));

When an error occurs in the Berkeley DB library, a Berkeley DB error or an error return value is returned by the interface. In some cases, however, the errno value may be insufficient to completely describe the cause of the error, especially during initial application debugging.

The `DB_ENV->set_errcall()` and DB_ENV->set_errcall() methods are used to enhance the mechanism for reporting error messages to the application. In some cases, when an error occurs, Berkeley DB will call db_errcall_fcn with additional error information. It is up to the db_errcall_fcn function to display the error message in an appropriate manner.

Setting db_errcall_fcn to NULL unconfigures the callback interface.

Alternatively, you can use the DB->set_errfile() or DB->set_errfile() methods to display the additional information via a C library `FILE *`.

This error-logging enhancement does not slow performance or significantly increase application size, and may be run during normal operation as well as during application debugging.

The `DB_ENV->set_errcall()` method configures operations performed using the specified DB_ENV handle, not all operations performed on the underlying database environment.

The `DB_ENV->set_errcall()` method may be called at any time during the life of the application.

### Note

Berkeley DB is not re-entrant. Callback functions should not attempt to make library calls (for example, to release locks or close open handles). Re-entering Berkeley DB is not guaranteed to work correctly, and the results are undefined.

### Parameters

#### db_errcall_fcn

The db_errcall_fcn parameter is the application-specified error reporting function. The function takes three parameters:

- `dbenv`

  The dbenv parameter is the enclosing database environment.

- `errpfx`

  The errpfx parameter is the prefix string (as previously set by DB->set_errpfx() or DB_ENV->set_errpfx()).

- `msg`

  The msg parameter is the error message string.

### Class

DB_ENV

### See Also

Database Environments and Related Methods

Prev | Up | Next
DB_ENV->set_event_notify() | Home | DB_ENV->set_errfile()