#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: