<!--$Id: txn_begin.html,v 1.1 2003/02/15 04:55:54 zarzycki Exp $--> <!--Copyright 1997-2002 by Sleepycat Software, Inc.--> <!--All rights reserved.--> <!--See the file LICENSE for redistribution information.--> <html> <head> <title>Berkeley DB: DbEnv.txn_begin</title> <meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> <meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> </head> <body bgcolor=white> <a name="2"><!--meow--></a> <table width="100%"><tr valign=top> <td> <h1>DbEnv.txn_begin</h1> </td> <td align=right> <a href="../api_java/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> </td></tr></table> <hr size=1 noshade> <tt> <h3><pre> import com.sleepycat.db.*; <p> public DbTxn txn_begin(DbTxn parent, int flags) throws DbException; </pre></h3> <h1>Description</h1> <p>The DbEnv.txn_begin method creates a new transaction in the environment and returns a <a href="../api_java/txn_class.html">DbTxn</a> that uniquely identifies it. Calling the <a href="../api_java/txn_abort.html">DbTxn.abort</a>, <a href="../api_java/txn_commit.html">DbTxn.commit</a> or <a href="../api_java/txn_discard.html">DbTxn.discard</a> methods will discard the returned handle. <p>If the <b>parent</b> argument is non-null, the new transaction will be a nested transaction, with the transaction indicated by <b>parent</b> as its parent. Transactions may be nested to any level. In the presence of distributed transactions and two-phase commit, only the parental transaction, that is a transaction without a <b>parent</b> specified, should be passed as an argument to <a href="../api_java/txn_prepare.html">DbTxn.prepare</a>. <p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more of the following values: <p><dl compact> <p><dt><a name="Db.DB_DIRTY_READ">Db.DB_DIRTY_READ</a><dd>All read operations performed by the transaction will read modified but not yet committed data. Silently ignored if the <a href="../api_java/db_open.html#DB_DIRTY_READ">Db.DB_DIRTY_READ</a> flag was not specified when the underlying database was opened. <p><dt><a name="Db.DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log when this transaction commits or prepares. This means the transaction will exhibit the ACI (atomicity, consistency, and isolation) properties, but not D (durability); that is, database integrity will be maintained but it is possible that this transaction may be undone during recovery. <p>This behavior may be set for a Berkeley DB environment using the <a href="../api_java/env_set_flags.html">DbEnv.set_flags</a> interface. Any value specified in this interface overrides that setting. <p><dt><a name="Db.DB_TXN_NOWAIT">Db.DB_TXN_NOWAIT</a><dd>If a lock is unavailable for any Berkeley DB operation performed in the context of this transaction, throw a <a href="../api_java/lockng_class.html">DbLockNotGrantedException</a> immediately instead of blocking on the lock. <p><dt><a name="Db.DB_TXN_SYNC">Db.DB_TXN_SYNC</a><dd>Synchronously flush the log when this transaction commits or prepares. This means the transaction will exhibit all of the ACID (atomicity, consistency, isolation, and durability) properties. <p>This behavior is the default for Berkeley DB environments unless the <a href="../api_java/env_set_flags.html#DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a> flag was specified to the <a href="../api_java/env_set_flags.html">DbEnv.set_flags</a> interface. Any value specified in this interface overrides that setting. </dl> <p><b>Note: A transaction may not span threads; that is, each transaction must begin and end in the same thread, and each transaction may be used only by a single thread.</b> <p><b>Note: Cursors may not span transactions; that is, each cursor must be opened and closed within a single transaction.</b> <p><b>Note: A parent transaction may not issue any Berkeley DB operations -- except for DbEnv.txn_begin, <a href="../api_java/txn_abort.html">DbTxn.abort</a> and <a href="../api_java/txn_commit.html">DbTxn.commit</a> -- while it has active child transactions (child transactions that have not yet been committed or aborted).</b> <p>The DbEnv.txn_begin method throws an exception that encapsulates a non-zero error value on failure. <h1>Errors</h1> <p>The DbEnv.txn_begin method may fail and throw an exception encapsulating a non-zero error for the following conditions: <p><dl compact> <p><dt>ENOMEM<dd>The maximum number of concurrent transactions has been reached. </dl> <p>The DbEnv.txn_begin method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods. If a catastrophic error has occurred, the DbEnv.txn_begin method may fail and throw a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls will fail in the same way. <h1>Class</h1> <a href="../api_java/env_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a> <h1>See Also</h1> <a href="../api_java/txn_list.html">Transaction Subsystem and Related Methods</a> </tt> <table width="100%"><tr><td><br></td><td align=right> <a href="../api_java/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a> </td></tr></table> <p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> </body> </html>