int DbTxnMgr::begin(DbTxn *parent, DbTxn **tid);
The DbTxnMgr::begin method creates a new transaction in the transaction manager, copying a pointer to a DbTxn that uniquely identifies it into the memory referenced by tid.
If the parent argument is non-NULL, the new transaction will be a nested transaction, with the transaction indicated by parent as its parent. Transactions may be nested to any level.
Note: transactions may not span threads, i.e., each transaction must begin and end in the same thread, and each transaction may only be used by a single thread.
Note: transactions may not span cursors, i.e., each transaction may only be used by a single cursor.
The DbTxnMgr::begin method either returns errno or throws an exception that encapsulates an errno on failure, and 0 on success.
The DbTxnMgr::begin method may fail and throw an exception for any of the errors specified for the following Berkeley DB and C library functions: abort(3), fcntl(3), fflush(3), fprintf(3), free(3), fsync(3), getpid(3), DbLog::put, lseek(3), memset(3), mmap(3), munmap(3), shmat(3), shmdt(3), strerror(3), vfprintf(3), vsnprintf(3), and write(3).
In addition, the DbTxnMgr::begin method may fail and throw an exception or return errno for the following conditions: