#include <db.h>

int txn_abort(DB_TXN *tid);


The txn_abort function causes an abnormal termination of the transaction. The log is played backward, and any necessary recovery operations are initiated through the recover function specified to DB_ENV->open. After the log processing is completed, all locks held by the transaction are released. As is the case for txn_commit, applications that require strict two-phase locking should not explicitly release any locks.

In the case of nested transactions, aborting a parent transaction causes all children (unresolved or not) of the parent transaction to be aborted.

All cursors opened within the transaction must be closed before the transaction is aborted.

After txn_abort has been called, regardless of its return, the DB_TXN handle may not be accessed again.

The txn_abort function returns a non-zero error value on failure and 0 on success.


The txn_abort 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 txn_abort 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_tx_max, DB_ENV->set_tx_recover, DB_ENV->set_tx_timestamp, txn_abort, txn_begin, txn_checkpoint, txn_commit, txn_discard, txn_id, txn_prepare, txn_recover, and txn_stat.


Copyright Sleepycat Software