#include <db_cxx.h> int DbTxn::discard(u_int32_t flags);
The DbTxn::discard()
method frees up all the per-process resources
associated with the specified DbTxn handle, neither
committing nor aborting the transaction. This call may be used only
after calls to
DbEnv::txn_recover()
when
there are multiple global transaction managers recovering transactions
in a single Berkeley DB environment. Any transactions returned by
DbEnv::txn_recover()
that are not handled by the current global transaction manager should
be discarded using DbTxn::discard()
.
All open cursors in the transaction are closed and the first cursor close error, if any, is returned.
The DbTxn::discard()
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.
The errors values that this method returns include the error values of Dbc::close()
and the following:
A transactional database environment operation was selected to resolve a deadlock.
DbDeadlockException is thrown if
your Berkeley DB API is configured to throw exceptions.
Otherwise, DB_LOCK_DEADLOCK
is returned.
A Berkeley DB Concurrent Data Store database environment configured for lock timeouts was unable to grant a lock in the allowed time.
You attempted to open a database handle that is configured for no waiting exclusive locking, but the exclusive lock could not be immediately obtained. See Db::set_lk_exclusive() for more information.
DbLockNotGrantedException is thrown if
your Berkeley DB API is configured to throw exceptions.
Otherwise, DB_LOCK_NOTGRANTED
is returned.
After DbTxn::discard()
has been called, regardless of its return,
the DbTxn handle may not
be accessed again.
The DbTxn::discard()
method may fail and throw a DbException
exception, encapsulating one of the following non-zero errors, or return one
of the following non-zero errors: