|
DB_ENV->log_put
|
|
#include <db.h>
int
DB_ENV->log_put(DB_ENV *env,
DB_LSN *lsn, const DBT *data, u_int32_t flags);
Description
The DB_ENV->log_put function appends records to the log. The DB_LSN of
the put record is returned in the lsn argument. The flags
argument may be set to one of the following values:
- DB_CHECKPOINT
- The log should write a checkpoint record, recording any information
necessary to make the log structures recoverable after a crash.
- DB_CURLSN
- The DB_LSN of the next record to be put is returned in the
lsn argument.
- DB_FLUSH
- The log is forced to disk after this record is written, guaranteeing
that all records with DB_LSN values less than or equal to the
one being "put" are on disk before DB_ENV->log_put returns.
The caller is responsible for providing any necessary structure to
data. (For example, in a write-ahead logging protocol, the
application must understand what part of data is an operation
code, what part is redo information, and what part is undo information.
In addition, most transaction managers will store in data the
DB_LSN of the previous log record for the same transaction, to
support chaining back through the transaction's log records during
undo.)
The DB_ENV->log_put function returns a non-zero error value on failure and 0 on success.
Errors
The DB_ENV->log_flush function may fail and return a non-zero error for the following conditions:
- EINVAL
- An invalid flag value or parameter was specified.
The record to be logged is larger than the maximum log record.
The DB_ENV->log_put function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
If a catastrophic error has occurred, the DB_ENV->log_put function may fail and return
DB_RUNRECOVERY, in which case all subsequent Berkeley DB calls will fail
in the same way.
See Also
DB_ENV->set_lg_bsize,
DB_ENV->set_lg_dir,
DB_ENV->set_lg_max,
DB_ENV->set_lg_regionmax,
DB_ENV->log_archive,
log_compare,
DB_ENV->log_cursor,
DB_ENV->log_file,
DB_ENV->log_flush,
DB_ENV->log_put,
DB_ENV->log_register,
DB_ENV->log_stat,
DB_ENV->log_unregister,
DB_LOGC->close
and
DB_LOGC->get.
Copyright Sleepycat Software
|