#include <db.h> typedef struct __db_txn DB_TXN;
            The DB_TXN object is the handle for a transaction. Methods of
            the DB_TXN handle are used to configure, abort and commit the
            transaction. DB_TXN handles are provided to 
            DB methods in order
            to transactionally protect those database operations.
        
            DB_TXN handles are not free-threaded; transactions handles
            may be used by multiple threads, but only serially, that is, the application must
            serialize access to the DB_TXN handle. Once the 
            DB_TXN->abort() or 
            DB_TXN->commit() methods are called, the handle
            may not be accessed again, regardless of the method's return. In addition, parent
            transactions may not issue any Berkeley DB operations while they have active child
            transactions (child transactions that have not yet been committed or aborted) except for
            DB_ENV->txn_begin(), 
            DB_TXN->abort() and 
            DB_TXN->commit().