2
<!--Copyright 1997-2002 by Sleepycat Software, Inc.-->
3
<!--All rights reserved.-->
4
<!--See the file LICENSE for redistribution information.-->
7
<title>Berkeley DB: DbTxn</title>
8
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
9
<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
12
<a name="2"><!--meow--></a>
13
<table width="100%"><tr valign=top>
18
<a href="../api_cxx/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a>
23
#include <db_cxx.h>
27
DB_TXN *DbTxn::get_DB_TXN();
28
const DB_TXN *DbTxn::get_const_DB_TXN() const;
29
static DbTxn *DbTxn::get_DbTxn(DB_TXN *txn);
30
static const DbTxn *DbTxn::get_const_DbTxn(const DB_TXN *txn);
35
<p>The DbTxn object is the handle for a transaction. Methods off
36
the DbTxn handle are used to configure, abort and commit the
37
transaction. DbTxn handles are provided to <a href="../api_cxx/db_class.html">Db</a> methods
38
in order to transactionally protect those database operations.
39
<p>DbTxn handles are not free-threaded; transactions handles may
40
be used by multiple threads, but only serially, that is, the application
41
must 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
43
not be accessed again, regardless of the method's return. In addition,
44
parent transactions may not issue any Berkeley DB operations while they have
45
active child transactions (child transactions that have not yet been
46
committed 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>
47
and <a href="../api_cxx/txn_commit.html">DbTxn::commit</a>.
48
<p>Each DbTxn object has an associated DB_TXN struct, which
49
is used by the underlying implementation of Berkeley DB and its C-language
50
API. The DbTxn::get_DB_TXN method returns a pointer to this struct.
51
Given a const DbTxn object, DbTxn::get_const_DB_TXN returns a
52
const pointer to the same struct.
53
<p>Given a DB_TXN struct, the Db::get_DbTxn method returns the
54
corresponding DbTxn object, if there is one. If the
55
DB_TXN object was not associated with a DbTxn (that is,
56
it was not returned from a call to DbTxn::get_DB_TXN), then the result
57
of DbTxn::get_DbTxn is undefined. Given a const DB_TXN struct,
58
DbTxn::get_const_DbTxn returns the associated const DbTxn
59
object, if there is one.
60
<p>These methods may be useful for Berkeley DB applications including both C
61
and C++ language software. It should not be necessary to use these
62
calls in a purely C++ application.
64
<a href="../api_cxx/env_class.html">DbEnv</a>, DbTxn
66
<a href="../api_cxx/txn_list.html">Transaction Subsystem and Related Methods</a>
68
<table width="100%"><tr><td><br></td><td align=right>
69
<a href="../api_cxx/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../reftoc.html"><img src="../images/ref.gif" alt="Ref"></a>
71
<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>