DbEnv::txn_begin |
#include <db_cxx.h>int DbEnv::txn_begin(DbTxn *parent, DbTxn **tid, u_int32_t flags);
The DbEnv::txn_begin method creates a new transaction in the environment and copies a pointer to a DbTxn that uniquely identifies it into the memory to which tid refers. Calling the DbTxn::abort, DbTxn::commit or DbTxn::discard methods will discard the returned handle.
Note: Transactions may only span threads if they do so serially; that is, each transaction must be active in only a single thread of control at a time. This restriction holds for parents of nested transactions as well; not two children may be concurrently active in more than one thread of control at any one time.
Note: Cursors may not span transactions; that is, each cursor must be opened and closed within a single transaction.
Note: A parent transaction may not issue any Berkeley DB operations -- except for DbEnv::txn_begin, DbTxn::abort and DbTxn::commit -- while it has active child transactions (child transactions that have not yet been committed or aborted).
The DbEnv::txn_begin 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.
This behavior may be set for a Berkeley DB environment using the DbEnv::set_flags method. Any value specified to this method overrides that setting.
This behavior is the default for Berkeley DB environments unless the DB_TXN_NOSYNC flag was specified to the DbEnv::set_flags method. Any value specified to this method overrides that setting.
If the maximum number of concurrent transactions has been reached, the DbEnv::txn_begin method will fail and either return ENOMEM or throw a DbMemoryException exception.
Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.