int DbLog::put(DbLsn *lsn, const Dbt *data, u_int32_t flags);
The DbLog::put method appends records to the log. The DbLsn of the put record is returned in the lsn argument. The flags argument may be set to one of the following values:
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.)
The DbLog::put method either returns errno or throws an exception that encapsulates an errno on failure, and 0 on success.
The DbLog::put 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), 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).
In addition, the DbLog::flush method may fail and throw an exception or return errno for the following conditions:
The record to be logged is larger than the maximum log record.