)I&Berkeley DB: DbLog::put[P

DbLog::put





#include <db_cxx.h>

int9DbLog::put(DbLsn *lsn, const Dbt *data, u_int32_t flags);





Description



lThe DbLog::put method appends records to the log. The DbLsn ofHthe put record is returned in the lsn argument. The flags3argument 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.z

DB_CURLSN
The DbLsn of the next record to be put is returned in thelsn argument.].W

DB_FLUSH
The log is forced to disk after this record is written, guaranteeingithat all records with DbLsn values less than or equal to theEone being put are on disk before this function returns (this functionpis most often used for a transaction commit, see DbTxn::commit formore information).

BThe caller is responsible for providing any necessary structure to data.E(For example, in a write-ahead logging protocol, the application mustCunderstand what part of data is an operation code, what part7is redo information, and what part is undo information.DIn addition, most transaction managers will store in data thejDbLsn of the previous log record for the same transaction, toIsupport chaining back through the transaction's log records during undo.)



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



Errors

QIf a fatal error occurs in Berkeley DB, the DbLog::put method may fail and eitherIreturn DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY,Gat which point all subsequent database calls will also fail in the sameFway. Methods marked as returning errno will, by default, throwHan exception that encapsulates the error information. The default error\behavior can be changed, see DbException.

The DbLog::put&method may fail and throw an exceptionKfor 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), memcpy(3), memset(3),open(3),sigfillset(3),sigprocmask(3), snprintf(3),stat(3), strerror(3), strlen(3),time(3), unlink(3), vfprintf(3), vsnprintf(3),and write(3).

JIn addition, the DbLog::flush&method may fail and throw an exceptionor return errnofor the following conditions:

B

EINVAL
An invalid flag value or parameter was specified.

>The record to be logged is larger than the maximum log record.





Class

2DbLog



See Also

>DbLog::archive,:DbLog::close,>DbLog::compare,8DbLog::file,:DbLog::flush,6DbLog::get,8DbLog::open, DbLog::put,FDbLog::db_register,8DbLog::stat,;DbLog::unlinkandJDbLog::db_unregister.
ÿÿ