Berkeley DB: DbLog::db_register
Полезная информация


#include <db_cxx.h>

int DbLog::db_register(const Db *dbp, const char *name, DBTYPE type, u_int32_t *fidp);


The DbLog::db_register method registers a file name with the log manager and copies a file identification number into the memory location referenced by fidp.

This file identification number should be used in all subsequent log messages that refer to operations on the file. The log manager records all file name to file identification number mappings at each checkpoint so that a recovery process can identify the file to which a record in the log refers.

The DbLog::db_register method is called when an access method registers the open of a file. The dbp parameter should be a pointer to the Db object which is being returned by the access method.

The type parameter should be one of the types of databases specified in Db::open, e.g., DB_HASH.

The DbLog::db_register method either returns errno or throws an exception that encapsulates an errno on failure, and 0 on success.


If a fatal error occurs in Berkeley DB, the DbLog::db_register method may fail and either return DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY, at which point all subsequent database calls will also fail in the same way. Methods marked as returning errno will, by default, throw an exception that encapsulates the error information. The default error behavior can be changed, see DbException.

The DbLog::db_register method may fail and throw an exception for any of the errors specified for the following Berkeley DB and C library functions: abort(3), close(3), dbenv->db_paniccall(3), fcntl(3), fflush(3), fprintf(3), free(3), fsync(3), getenv(3), getpid(3), getuid(3), isdigit(3), lseek(3), malloc(3), memcmp(3), memcpy(3), memset(3), open(3), realloc(3), sigfillset(3), sigprocmask(3), snprintf(3), stat(3), strerror(3), strlen(3), time(3), unlink(3), vfprintf(3), vsnprintf(3), and write(3).

In addition, the DbLog::db_register method may fail and throw an exception or return errno for the following conditions:

An invalid flag value or parameter was specified.



See Also

DbLog::archive, DbLog::close, DbLog::compare, DbLog::file, DbLog::flush, DbLog::get, DbLog::open, DbLog::put, DbLog::db_register, DbLog::stat, DbLog::unlink and DbLog::db_unregister.