Berkeley DB: DbEnv::set_tx_recover
Description: Berkeley DB: An embedded database programmatic toolkit.
Keywords: embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++

# DbEnv::set_tx_recover |

`

###

    #include <db_cxx.h>

    int
    DbEnv::set_tx_recover(int (*)(DbEnv *dbenv,
        Dbt *log_rec, DbLsn *lsnp, db_recops op, void *info));

# Description

Set the method that is called by DbTxn::abort during transaction abort.

This method must return the value of errno on failure and 0 on success. It takes four arguments:

log_rec
  A log record.

lsnp
  A pointer to a log sequence number.

op
  A variable set to one of the following values:

  DB_TXN_BACKWARD_ROLL
    The log is being read backward to determine which transactions have been committed and to abort those operations that were not. Undo the operation described by the log record.

  DB_TXN_FORWARD_ROLL
    The log is being played forward, any transaction IDs encountered that have not been entered into the list referenced by info should be ignored. Redo the operation described by the log record.

  DB_TXN_OPENFILES
    The log is being read to open all the files required to perform recovery. User defined operations will not normally see this operation.

  DB_TXN_ABORT
    The log is being read backwards during a transaction abort. Undo the operation described by the log record.

info
  An opaque pointer used to reference the list of transaction IDs encountered during recovery.

If no recover function is specified, the default is that only Berkeley DB access method operations are transaction protected, and the default recover function will be used.

The DbEnv::set_tx_recover interface may only be used to configure Berkeley DB before the DbEnv::open interface is called.

The DbEnv::set_tx_recover 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.

# Errors

EINVAL
  An invalid flag value or parameter was specified.

  Called after DbEnv::open was called.

### Classes

DbEnv, DbTxn

# See Also

DbEnv::set_tx_max, DbEnv::set_tx_recover, DbEnv::set_tx_timestamp, DbTxn::abort, DbEnv::txn_begin, DbEnv::txn_checkpoint, DbTxn::commit, DbTxn::id, DbTxn::prepare and DbEnv::txn_stat.`

Copyright Sleepycat Software