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


#include <db.h>

int txn_checkpoint(const DB_TXNMGR *txnp, u_int32_t kbyte, u_int32_t min);


The txn_checkpoint function flushes the underlying memory pool, writes a checkpoint record to the log and then flushes the log.

If either kbyte or min is non-zero, the checkpoint is only done if more than min minutes have passed since the last checkpoint, or if more than kbyte kilobytes of log data have been written since the last checkpoint.

The txn_checkpoint function returns the value of errno on failure, 0 on success, and DB_INCOMPLETE if there were pages that needed to be written but that memp_sync was unable to write immediately. In this case, the txn_checkpoint call should be retried.

The txn_checkpoint function is the underlying function used by the db_checkpoint utility. See the db_checkpoint utility source code for an example of using txn_checkpoint in a POSIX 1003.1 environment.


If a fatal error occurs in Berkeley DB, the txn_checkpoint function may fail and return DB_RUNRECOVERY, at which point all subsequent database calls will also return DB_RUNRECOVERY.

The txn_checkpoint function may fail and return errno for any of the errors specified for the following Berkeley DB and C library functions: abort(3), fcntl(3), fflush(3), fprintf(3), free(3), getpid(3), log_compare, log_put, malloc(3), memcpy(3), memp_sync, memset(3), strerror(3), time(3), vfprintf(3), and vsnprintf(3).

In addition, the txn_checkpoint function may fail and return errno for the following conditions:

An invalid flag value or parameter was specified.

See Also

txn_abort, txn_begin, txn_checkpoint, txn_close, txn_commit, txn_id, txn_open, txn_prepare, txn_stat and txn_unlink.