DbEnv::log_put

API Ref

#include <db_cxx.h>

int DbEnv::log_put(DbLsn *lsn, const Dbt *data, u_int32_t flags);


Description: DbEnv::log_put

The DbEnv::log_put method appends records to the log. The DbLsn of the put record is returned in the lsn parameter.

The DbEnv::log_put method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

Parameters

data
The data parameter is the record to write to the log.

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 DbLsn of the previous log record for the same transaction, to support chaining back through the transaction's log records during undo.)

flags
The flags parameter must be set to 0 or the following value:

DB_FLUSH
The log is forced to disk after this record is written, guaranteeing that all records with DbLsn values less than or equal to the one being "put" are on disk before DbEnv::log_put returns.

lsn
The lsn parameter references memory into which the DbLsn of the put record is copied.

Errors

The DbEnv::log_flush method may fail and throw DbException, encapsulating one of the following non-zero errors, or return one of the following non-zero errors:

EINVAL
If the record to be logged is larger than the maximum log record; or if an invalid flag value or parameter was specified.

Class

DbEnv, DbLogc, DbLsn

See Also

Logging Subsystem and Related Methods

APIRef

Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.