diff options
| author | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-07-20 20:00:05 +0100 |
|---|---|---|
| committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-07-20 20:00:05 +0100 |
| commit | 3ef782d3745ea8f25a3151561a3cfb882190210e (patch) | |
| tree | 86b9c2f5fde051dd0bced99b3fc9f5a3ba08db69 /docs/programmer_reference/stl_txn_usage.html | |
| download | berkeleydb-3ef782d3745ea8f25a3151561a3cfb882190210e.tar.gz | |
Tarball conversion
Diffstat (limited to 'docs/programmer_reference/stl_txn_usage.html')
| -rw-r--r-- | docs/programmer_reference/stl_txn_usage.html | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/docs/programmer_reference/stl_txn_usage.html b/docs/programmer_reference/stl_txn_usage.html new file mode 100644 index 00000000..117c20a8 --- /dev/null +++ b/docs/programmer_reference/stl_txn_usage.html @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>Using transactions in dbstl</title> + <link rel="stylesheet" href="gettingStarted.css" type="text/css" /> + <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /> + <link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" /> + <link rel="up" href="stl.html" title="Chapter 7. Standard Template Library API" /> + <link rel="prev" href="stl_db_advanced_usage.html" title="Using advanced Berkeley DB features with dbstl" /> + <link rel="next" href="stl_mt_usage.html" title="Using dbstl in multithreaded applications" /> + </head> + <body> + <div xmlns="" class="navheader"> + <div class="libver"> + <p>Library Version 11.2.5.3</p> + </div> + <table width="100%" summary="Navigation header"> + <tr> + <th colspan="3" align="center">Using transactions in dbstl</th> + </tr> + <tr> + <td width="20%" align="left"><a accesskey="p" href="stl_db_advanced_usage.html">Prev</a> </td> + <th width="60%" align="center">Chapter 7. Standard Template Library API</th> + <td width="20%" align="right"> <a accesskey="n" href="stl_mt_usage.html">Next</a></td> + </tr> + </table> + <hr /> + </div> + <div class="sect1" lang="en" xml:lang="en"> + <div class="titlepage"> + <div> + <div> + <h2 class="title" style="clear: both"><a id="stl_txn_usage"></a>Using transactions in dbstl</h2> + </div> + </div> + </div> + <p> + When using transactions with dbstl, you must call the dbstl transaction + functions instead of the corresponding methods from the Berkeley DB C + or C++ transaction API. That is, you must use + <code class="methodname">dbstl::begin_txn()</code>, + <code class="methodname">dbstl::commit_txn()</code> and + <code class="methodname">dbstl::abort_txn()</code> in order to + begin/commit/abort transactions. +</p> + <p> + A container can be configured to use auto commit by setting the + <a href="../api_reference/C/envset_flags.html#envset_flags_DB_AUTO_COMMIT" class="olink">DB_AUTO_COMMIT</a> flag when the environment or database handle is + opened. In this case, any container method that supports auto commit + will automatically form an independent transaction if the method + is not in an external transactional context; Otherwise, + the operation will become part of that transaction. + +</p> + <p> + You can configure the flags used internally by dbstl when it is + creating and committing these independent transactions required by auto + commit. To do so, use the + <code class="methodname">db_container::set_txn_begin_flags()</code> and/or + <code class="methodname">db_container::set_commit_flags()</code> methods. +</p> + <p> + When a transaction is committed or aborted, dbstl will automatically + close any cursors opened for use by the transaction. For this reason, + any iterators opened within the transaction context should not be used + after the transaction commits or aborts. +</p> + <p> + You can use nested transactions explicitly and externally, by calling + <code class="methodname">dbstl::begin_txn()</code> in a context already + operating under the protection of a transaction. But you can not + designate which transaction is the parent transaction. The parent + transaction is automatically the most recently created and unresolved + transaction in current thread. +</p> + <p> + It is also acceptable to use explicit transactions in a container + configured for auto commit. The operation performed by the method will + become part of the provided external transaction. +</p> + <p> + Finally, transactions and iterators cannot be shared among multiple + threads. That is, they are not free-threaded, or thread-safe. +</p> + </div> + <div class="navfooter"> + <hr /> + <table width="100%" summary="Navigation footer"> + <tr> + <td width="40%" align="left"><a accesskey="p" href="stl_db_advanced_usage.html">Prev</a> </td> + <td width="20%" align="center"> + <a accesskey="u" href="stl.html">Up</a> + </td> + <td width="40%" align="right"> <a accesskey="n" href="stl_mt_usage.html">Next</a></td> + </tr> + <tr> + <td width="40%" align="left" valign="top">Using advanced Berkeley DB features with dbstl </td> + <td width="20%" align="center"> + <a accesskey="h" href="index.html">Home</a> + </td> + <td width="40%" align="right" valign="top"> Using dbstl in multithreaded applications</td> + </tr> + </table> + </div> + </body> +</html> |
