typedef struct __db_txn DB_TXN;
The DB_TXN object is the handle for a transaction. Methods off 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.
Copyright Sleepycat Software