1<!--$Id: txn_class.so,v 10.25 2005/05/17 15:25:50 bostic Exp $-->
2<!--Copyright (c) 1997,2008 Oracle.  All rights reserved.-->
3<!--See the file LICENSE for redistribution information.-->
4<html>
5<head>
6<title>Berkeley DB: DbTxn</title>
7<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
8<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++">
9</head>
10<body bgcolor=white>
11<table width="100%"><tr valign=top>
12<td>
13<b>DbTxn</b>
14</td>
15<td align=right>
16<a href="../api_cxx/api_core.html"><img src="../images/api.gif" alt="API"></a>
17<a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a></td>
18</tr></table>
19<hr size=1 noshade>
20<tt>
21<b><pre>
22#include &lt;db_cxx.h&gt;
23<p>
24class DbTxn {
25public:
26	DB_TXN *DbTxn::get_DB_TXN();
27	const DB_TXN *DbTxn::get_const_DB_TXN() const;
28	static DbTxn *DbTxn::get_DbTxn(DB_TXN *txn);
29	static const DbTxn *DbTxn::get_const_DbTxn(const DB_TXN *txn);
30	...
31};
32</pre></b>
33<hr size=1 noshade>
34<b>Description: DbTxn</b>
35<p>The DbTxn object is the handle for a transaction.  Methods of
36the DbTxn handle are used to configure, abort and commit the
37transaction.  DbTxn handles are provided to <a href="../api_cxx/db_class.html">Db</a> methods
38in order to transactionally protect those database operations.</p>
39<p>DbTxn handles are not free-threaded; transactions handles may
40be used by multiple threads, but only serially, that is, the application
41must serialize access to the DbTxn handle.  Once the
42<a href="../api_cxx/txn_abort.html">DbTxn::abort</a> or <a href="../api_cxx/txn_commit.html">DbTxn::commit</a> methods are called, the handle may
43not be accessed again, regardless of the method's return. In addition,
44parent transactions may not issue any Berkeley DB operations while they have
45active child transactions (child transactions that have not yet been
46committed or aborted) except for <a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>, <a href="../api_cxx/txn_abort.html">DbTxn::abort</a>
47and <a href="../api_cxx/txn_commit.html">DbTxn::commit</a>.</p>
48<p>Each DbTxn object has an associated DB_TXN struct, which
49is used by the underlying implementation of Berkeley DB and its C-language
50API.  The DbTxn::get_DB_TXN method returns a pointer to this struct.
51Given a const DbTxn object, DbTxn::get_const_DB_TXN returns a
52const pointer to the same struct.</p>
53<p>Given a DB_TXN struct, the Db::get_DbTxn method returns the
54corresponding DbTxn object, if there is one.  If the
55DB_TXN object was not associated with a DbTxn (that is,
56it was not returned from a call to DbTxn::get_DB_TXN), then the result
57of DbTxn::get_DbTxn is undefined.  Given a const DB_TXN struct,
58DbTxn::get_const_DbTxn returns the associated const DbTxn
59object, if there is one.</p>
60<p>These methods may be useful for Berkeley DB applications including  both C
61and C++ language software.  It should not be necessary to use these
62calls in a purely C++ application.</p>
63<hr size=1 noshade>
64<br><b>Class</b>
65<a href="../api_cxx/env_class.html">DbEnv</a>, DbTxn
66<br><b>See Also</b>
67<a href="../api_cxx/txn_list.html">Transaction Subsystem and Related Methods</a>
68</tt>
69<table width="100%"><tr><td><br></td><td align=right>
70<a href="../api_cxx/api_core.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
71</td></tr></table>
72<p><font size=1>Copyright (c) 1996,2008 Oracle.  All rights reserved.</font>
73</body>
74</html>
75