<?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>Getting Started with Berkeley DB Transaction Processing</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="Getting Started with Berkeley DB Transaction Processing" /> <link rel="next" href="preface.html" title="Preface" /> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">Getting Started with Berkeley DB Transaction Processing</th> </tr> <tr> <td width="20%" align="left"> </td> <th width="60%" align="center"> </th> <td width="20%" align="right"> <a accesskey="n" href="preface.html">Next</a></td> </tr> </table> <hr /> </div> <div class="book" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h1 class="title"><a id="id1473594"></a>Getting Started with Berkeley DB Transaction Processing</h1> </div> <div> <div class="legalnotice"> <a id="id1473774"></a> <p class="legalnotice-title"> <b>Legal Notice</b> </p> <p> This documentation is distributed under an open source license. You may review the terms of this license at: <a class="ulink" href="http://www.oracle.com/technology/software/products/berkeley-db/htdocs/oslicense.html" target="_top">http://www.oracle.com/technology/software/products/berkeley-db/htdocs/oslicense.html</a> </p> <p> Oracle, Berkeley DB, and Sleepycat are trademarks or registered trademarks of Oracle. All rights to these marks are reserved. No third-party use is permitted without the express prior written consent of Oracle. </p> <p> <span class="trademark">Java</span>™ and all Java-based marks are a trademark or registered trademark of Sun Microsystems, Inc, in the United States and other countries. </p> <p> To obtain a copy of this document's original source code, please submit a request to the Oracle Technology Network forum at: <a class="ulink" href="http://forums.oracle.com/forums/forum.jspa?forumID=271" target="_top">http://forums.oracle.com/forums/forum.jspa?forumID=271</a> </p> </div> </div> <div> <p class="pubdate">4/12/2010</p> </div> </div> <hr /> </div> <div class="toc"> <p> <b>Table of Contents</b> </p> <dl> <dt> <span class="preface"> <a href="preface.html">Preface</a> </span> </dt> <dd> <dl> <dt> <span class="sect1"> <a href="preface.html#conventions">Conventions Used in this Book</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="preface.html#moreinfo">For More Information</a> </span> </dt> </dl> </dd> </dl> </dd> <dt> <span class="chapter"> <a href="introduction.html">1. Introduction</a> </span> </dt> <dd> <dl> <dt> <span class="sect1"> <a href="introduction.html#txnintro">Transaction Benefits</a> </span> </dt> <dt> <span class="sect1"> <a href="sysfailure.html">A Note on System Failure</a> </span> </dt> <dt> <span class="sect1"> <a href="apireq.html">Application Requirements</a> </span> </dt> <dt> <span class="sect1"> <a href="multithread-intro.html">Multi-threaded <span>and Multi-process</span> Applications</a> </span> </dt> <dt> <span class="sect1"> <a href="recovery-intro.html">Recoverability</a> </span> </dt> <dt> <span class="sect1"> <a href="perftune-intro.html">Performance Tuning</a> </span> </dt> </dl> </dd> <dt> <span class="chapter"> <a href="enabletxn.html">2. Enabling Transactions</a> </span> </dt> <dd> <dl> <dt> <span class="sect1"> <a href="enabletxn.html#environments">Environments</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="enabletxn.html#filenaming">File Naming</a> </span> </dt> <dt> <span class="sect2"> <a href="enabletxn.html#errorsupport">Error Support</a> </span> </dt> <dt> <span class="sect2"> <a href="enabletxn.html#sharedmemory">Shared Memory Regions</a> </span> </dt> <dt> <span class="sect2"> <a href="enabletxn.html#security">Security Considerations</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="envopen.html">Opening a Transactional Environment and <span>Store or Database</span> </a> </span> </dt> </dl> </dd> <dt> <span class="chapter"> <a href="usingtxns.html">3. Transaction Basics</a> </span> </dt> <dd> <dl> <dt> <span class="sect1"> <a href="usingtxns.html#commitresults">Committing a Transaction</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="usingtxns.html#nodurabletxn">Non-Durable Transactions</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="abortresults.html">Aborting a Transaction</a> </span> </dt> <dt> <span class="sect1"> <a href="autocommit.html">Auto Commit</a> </span> </dt> <dt> <span class="sect1"> <a href="nestedtxn.html">Nested Transactions</a> </span> </dt> <dt> <span class="sect1"> <a href="txncursor.html">Transactional Cursors</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="txncursor.html#dplcursors">Using Transactional DPL Cursors</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="txnindices.html">Secondary Indices with Transaction Applications</a> </span> </dt> <dt> <span class="sect1"> <a href="maxtxns.html">Configuring the Transaction Subsystem</a> </span> </dt> </dl> </dd> <dt> <span class="chapter"> <a href="txnconcurrency.html">4. Concurrency</a> </span> </dt> <dd> <dl> <dt> <span class="sect1"> <a href="txnconcurrency.html#concurrenthandles">Which DB Handles are Free-Threaded</a> </span> </dt> <dt> <span class="sect1"> <a href="blocking_deadlocks.html">Locks, Blocks, and Deadlocks</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="blocking_deadlocks.html#locks">Locks</a> </span> </dt> <dt> <span class="sect2"> <a href="blocking_deadlocks.html#blocks">Blocks</a> </span> </dt> <dt> <span class="sect2"> <a href="blocking_deadlocks.html#deadlocks">Deadlocks</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="lockingsubsystem.html">The Locking Subsystem</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="lockingsubsystem.html#configuringlock">Configuring the Locking Subsystem</a> </span> </dt> <dt> <span class="sect2"> <a href="lockingsubsystem.html#configdeadlkdetect">Configuring Deadlock Detection</a> </span> </dt> <dt> <span class="sect2"> <a href="lockingsubsystem.html#deadlockresolve">Resolving Deadlocks</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="isolation.html">Isolation</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="isolation.html#degreesofisolation">Supported Degrees of Isolation</a> </span> </dt> <dt> <span class="sect2"> <a href="isolation.html#dirtyreads">Reading Uncommitted Data</a> </span> </dt> <dt> <span class="sect2"> <a href="isolation.html#readcommitted">Committed Reads</a> </span> </dt> <dt> <span class="sect2"> <a href="isolation.html#snapshot_isolation">Using Snapshot Isolation</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="txn_ccursor.html">Transactional Cursors and Concurrent Applications</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="txn_ccursor.html#cursordirtyreads">Using Cursors with Uncommitted Data</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="readmodifywrite.html">Read/Modify/Write</a> </span> </dt> <dt> <span class="sect1"> <a href="txnnowait.html">No Wait on Blocks</a> </span> </dt> <dt> <span class="sect1"> <a href="reversesplit.html">Reverse BTree Splits</a> </span> </dt> </dl> </dd> <dt> <span class="chapter"> <a href="filemanagement.html">5. Managing DB Files</a> </span> </dt> <dd> <dl> <dt> <span class="sect1"> <a href="filemanagement.html#checkpoints">Checkpoints</a> </span> </dt> <dt> <span class="sect1"> <a href="backuprestore.html">Backup Procedures</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="backuprestore.html#copyutilities">About Unix Copy Utilities</a> </span> </dt> <dt> <span class="sect2"> <a href="backuprestore.html#standardbackup">Offline Backups</a> </span> </dt> <dt> <span class="sect2"> <a href="backuprestore.html#hotbackup">Hot Backup</a> </span> </dt> <dt> <span class="sect2"> <a href="backuprestore.html#incrementalbackups">Incremental Backups</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="recovery.html">Recovery Procedures</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="recovery.html#normalrecovery">Normal Recovery</a> </span> </dt> <dt> <span class="sect2"> <a href="recovery.html#catastrophicrecovery">Catastrophic Recovery</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="architectrecovery.html">Designing Your Application for Recovery</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="architectrecovery.html#multithreadrecovery">Recovery for Multi-Threaded Applications</a> </span> </dt> <dt> <span class="sect2"> <a href="architectrecovery.html#multiprocessrecovery">Recovery in Multi-Process Applications</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="hotfailover.html">Using Hot Failovers</a> </span> </dt> <dt> <span class="sect1"> <a href="logfileremoval.html">Removing Log Files</a> </span> </dt> <dt> <span class="sect1"> <a href="logconfig.html">Configuring the Logging Subsystem</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="logconfig.html#logfilesize">Setting the Log File Size</a> </span> </dt> <dt> <span class="sect2"> <a href="logconfig.html#logregionsize">Configuring the Logging Region Size</a> </span> </dt> <dt> <span class="sect2"> <a href="logconfig.html#inmemorylogging">Configuring In-Memory Logging</a> </span> </dt> <dt> <span class="sect2"> <a href="logconfig.html#logbuffer">Setting the In-Memory Log Buffer Size</a> </span> </dt> </dl> </dd> </dl> </dd> <dt> <span class="chapter"> <a href="wrapup.html">6. Summary and Examples</a> </span> </dt> <dd> <dl> <dt> <span class="sect1"> <a href="wrapup.html#anatomy">Anatomy of a Transactional Application</a> </span> </dt> <dt> <span class="sect1"> <a href="txnexample_java.html">Base API Transaction Example</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="txnexample_java.html#txnguideexample">TxnGuide.java</a> </span> </dt> <dt> <span class="sect2"> <a href="txnexample_java.html#payloaddata">PayloadData.java</a> </span> </dt> <dt> <span class="sect2"> <a href="txnexample_java.html#dbwriter">DBWriter.java</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="txnexample_dpl.html">DPL Transaction Example</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="txnexample_dpl.html#txnguideexample_dpl">TxnGuide.java</a> </span> </dt> <dt> <span class="sect2"> <a href="txnexample_dpl.html#payloaddataentity">PayloadDataEntity.java</a> </span> </dt> <dt> <span class="sect2"> <a href="txnexample_dpl.html#storewriter">StoreWriter.java</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="inmem_txnexample_java.html">Base API In-Memory Transaction Example</a> </span> </dt> </dl> </dd> </dl> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"> </td> <td width="20%" align="center"> </td> <td width="40%" align="right"> <a accesskey="n" href="preface.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top"> </td> <td width="20%" align="center"> </td> <td width="40%" align="right" valign="top"> Preface</td> </tr> </table> </div> </body> </html>