File: commit.html

package info (click to toggle)
db 2%3A2.4.14-2.7.7.1.c
  • links: PTS
  • area: main
  • in suites: potato
  • size: 12,716 kB
  • ctags: 9,382
  • sloc: ansic: 35,556; tcl: 8,564; cpp: 4,890; sh: 2,075; makefile: 1,723; java: 1,632; sed: 419; awk: 153; asm: 41
file content (98 lines) | stat: -rw-r--r-- 3,259 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<! "@(#)commit.so	10.9 (Sleepycat) 1/3/99">
<!Copyright 1997, 1998 by Sleepycat Software, Inc.  All rights reserved.>
<html>
<body bgcolor=white>
<head>
<title>Berkeley DB: DbTxn::commit</title>
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btr
ee,hash,hashing,transaction,transactions,locking,logging,access method,access me
thods,java,C,C++">
</head>
<h1>DbTxn::commit</h1>
<hr size=1 noshade>
<tt>
<h3>
<pre>
#include &lt;db_cxx.h&gt;
<p>
int
DbTxn::commit();
</pre>
</h3>
<h1>Description</h1>
<p>
The DbTxn::commit method ends the transaction specified by the <b>tid</b>
argument.
<p>
If <a href="../../api_cxx/DbEnv/appinit.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> was not specified, a commit log record is
written and flushed to disk, as are all previously written log records.
<p>
In the case of nested transactions, if the transaction is a parent
transaction with unresolved (neither committed or aborted) child
transactions, the child transactions are aborted and the commit of the
parent will succeed.
<p>
In the case of nested transactions, if the transaction is a child
transaction, its locks are not released, but are acquired by its parent.
While the commit of the child transaction will succeed, the actual
resolution of the child transaction is postponed until the parent
transaction is committed or aborted, i.e., if its parent transaction
commits, it will be committed, and if its parent transaction aborts, it
will be aborted.
<p>
Any applications that require strict two-phase locking must not release
any locks explicitly, leaving them all to be released by DbTxn::commit.
<p>
The DbTxn::commit
method either returns <b>errno</b> or throws an exception that
encapsulates an <b>errno</b> on failure, and 0 on success.
<p>
<h1>Errors</h1>
If a fatal error occurs in Berkeley DB, the DbTxn::commit method may fail and either
return DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY,
at which point all subsequent database calls will also fail in the same
way.  Methods marked as returning <b>errno</b> will, by default, throw
an exception that encapsulates the error information.  The default error
behavior can be changed, see <a href="../../api_cxx/DbException/class.html">DbException</a>.
<p>
The DbTxn::commit
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),
getpid(3),
<a href="../../api_cxx/DbLockTab/vec.html">DbLockTab::vec</a>,
<a href="../../api_cxx/DbLog/put.html">DbLog::put</a>,
malloc(3),
memcpy(3),
memset(3),
strerror(3),
vfprintf(3),
and
vsnprintf(3).
<p>
In addition, the DbTxn::commit
method may fail and throw an exception
or return <b>errno</b>
for the following conditions:
<dl compact>
<p><dt>EINVAL<dd>The transaction was already aborted.
</dl>
<p>
<h1>Class</h1>
<a href="../../api_cxx/DbTxn/class.html">DbTxn</a>
<p>
<h1>See Also</h1>
<a href="../../api_cxx/DbTxn/abort.html">DbTxn::abort</a>,
DbTxn::commit,
<a href="../../api_cxx/DbTxn/id.html">DbTxn::id</a>
and
<a href="../../api_cxx/DbTxn/prepare.html">DbTxn::prepare</a>.
</tt>
</body>
</html>