1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6 <title>Getting Started with Berkeley DB Transaction Processing</title> 7 <link rel="stylesheet" href="gettingStarted.css" type="text/css" /> 8 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /> 9 <link rel="start" href="index.html" title="Getting Started with Berkeley DB Transaction Processing" /> 10 <link rel="next" href="preface.html" title="Preface" /> 11 </head> 12 <body> 13 <div class="navheader"> 14 <table width="100%" summary="Navigation header"> 15 <tr> 16 <th colspan="3" align="center">Getting Started with Berkeley DB Transaction Processing</th> 17 </tr> 18 <tr> 19 <td width="20%" align="left"> </td> 20 <th width="60%" align="center"> </th> 21 <td width="20%" align="right"> <a accesskey="n" href="preface.html">Next</a></td> 22 </tr> 23 </table> 24 <hr /> 25 </div> 26 <div class="book" lang="en" xml:lang="en"> 27 <div class="titlepage"> 28 <div> 29 <div> 30 <h1 class="title"><a id="id1473594"></a>Getting Started with Berkeley DB Transaction Processing</h1> 31 </div> 32 <div> 33 <div class="legalnotice"> 34 <a id="id1473774"></a> 35 <p class="legalnotice-title"> 36 <b>Legal Notice</b> 37 </p> 38 <p> 39 This documentation is distributed under an open source license. 40 You may review the terms of this license at: 41 <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> 42 43 44 </p> 45 <p> 46 Oracle, Berkeley DB, 47 48 49 and 50 Sleepycat are trademarks or registered trademarks of 51 Oracle. All rights to these marks are reserved. 52 No third-party use is permitted without the 53 express prior written consent of Oracle. 54 </p> 55 <p> 56 <span class="trademark">Java</span>™ and all Java-based marks are a trademark 57 or registered trademark of Sun Microsystems, 58 Inc, in the United States and other countries. 59 </p> 60 <p> 61 To obtain a copy of this document's original source code, please 62 submit a request to the Oracle Technology Network forum at: 63 <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> 64 65 66 </p> 67 </div> 68 </div> 69 <div> 70 <p class="pubdate">4/12/2010</p> 71 </div> 72 </div> 73 <hr /> 74 </div> 75 <div class="toc"> 76 <p> 77 <b>Table of Contents</b> 78 </p> 79 <dl> 80 <dt> 81 <span class="preface"> 82 <a href="preface.html">Preface</a> 83 </span> 84 </dt> 85 <dd> 86 <dl> 87 <dt> 88 <span class="sect1"> 89 <a href="preface.html#conventions">Conventions Used in this Book</a> 90 </span> 91 </dt> 92 <dd> 93 <dl> 94 <dt> 95 <span class="sect2"> 96 <a href="preface.html#moreinfo">For More Information</a> 97 </span> 98 </dt> 99 </dl> 100 </dd> 101 </dl> 102 </dd> 103 <dt> 104 <span class="chapter"> 105 <a href="introduction.html">1. Introduction</a> 106 </span> 107 </dt> 108 <dd> 109 <dl> 110 <dt> 111 <span class="sect1"> 112 <a href="introduction.html#txnintro">Transaction Benefits</a> 113 </span> 114 </dt> 115 <dt> 116 <span class="sect1"> 117 <a href="sysfailure.html">A Note on System Failure</a> 118 </span> 119 </dt> 120 <dt> 121 <span class="sect1"> 122 <a href="apireq.html">Application Requirements</a> 123 </span> 124 </dt> 125 <dt> 126 <span class="sect1"> 127 <a href="multithread-intro.html">Multi-threaded 128 <span>and Multi-process</span> 129 Applications</a> 130 </span> 131 </dt> 132 <dt> 133 <span class="sect1"> 134 <a href="recovery-intro.html">Recoverability</a> 135 </span> 136 </dt> 137 <dt> 138 <span class="sect1"> 139 <a href="perftune-intro.html">Performance Tuning</a> 140 </span> 141 </dt> 142 </dl> 143 </dd> 144 <dt> 145 <span class="chapter"> 146 <a href="enabletxn.html">2. Enabling Transactions</a> 147 </span> 148 </dt> 149 <dd> 150 <dl> 151 <dt> 152 <span class="sect1"> 153 <a href="enabletxn.html#environments">Environments</a> 154 </span> 155 </dt> 156 <dd> 157 <dl> 158 <dt> 159 <span class="sect2"> 160 <a href="enabletxn.html#filenaming">File Naming</a> 161 </span> 162 </dt> 163 <dt> 164 <span class="sect2"> 165 <a href="enabletxn.html#errorsupport">Error Support</a> 166 </span> 167 </dt> 168 <dt> 169 <span class="sect2"> 170 <a href="enabletxn.html#sharedmemory">Shared Memory Regions</a> 171 </span> 172 </dt> 173 <dt> 174 <span class="sect2"> 175 <a href="enabletxn.html#security">Security Considerations</a> 176 </span> 177 </dt> 178 </dl> 179 </dd> 180 <dt> 181 <span class="sect1"> 182 <a href="envopen.html">Opening a Transactional Environment and 183 184 <span>Store or Database</span> 185 186 </a> 187 </span> 188 </dt> 189 </dl> 190 </dd> 191 <dt> 192 <span class="chapter"> 193 <a href="usingtxns.html">3. Transaction Basics</a> 194 </span> 195 </dt> 196 <dd> 197 <dl> 198 <dt> 199 <span class="sect1"> 200 <a href="usingtxns.html#commitresults">Committing a Transaction</a> 201 </span> 202 </dt> 203 <dd> 204 <dl> 205 <dt> 206 <span class="sect2"> 207 <a href="usingtxns.html#nodurabletxn">Non-Durable Transactions</a> 208 </span> 209 </dt> 210 </dl> 211 </dd> 212 <dt> 213 <span class="sect1"> 214 <a href="abortresults.html">Aborting a Transaction</a> 215 </span> 216 </dt> 217 <dt> 218 <span class="sect1"> 219 <a href="autocommit.html">Auto Commit</a> 220 </span> 221 </dt> 222 <dt> 223 <span class="sect1"> 224 <a href="nestedtxn.html">Nested Transactions</a> 225 </span> 226 </dt> 227 <dt> 228 <span class="sect1"> 229 <a href="txncursor.html">Transactional Cursors</a> 230 </span> 231 </dt> 232 <dd> 233 <dl> 234 <dt> 235 <span class="sect2"> 236 <a href="txncursor.html#dplcursors">Using Transactional DPL Cursors</a> 237 </span> 238 </dt> 239 </dl> 240 </dd> 241 <dt> 242 <span class="sect1"> 243 <a href="txnindices.html">Secondary Indices with Transaction Applications</a> 244 </span> 245 </dt> 246 <dt> 247 <span class="sect1"> 248 <a href="maxtxns.html">Configuring the Transaction Subsystem</a> 249 </span> 250 </dt> 251 </dl> 252 </dd> 253 <dt> 254 <span class="chapter"> 255 <a href="txnconcurrency.html">4. Concurrency</a> 256 </span> 257 </dt> 258 <dd> 259 <dl> 260 <dt> 261 <span class="sect1"> 262 <a href="txnconcurrency.html#concurrenthandles">Which DB Handles are Free-Threaded</a> 263 </span> 264 </dt> 265 <dt> 266 <span class="sect1"> 267 <a href="blocking_deadlocks.html">Locks, Blocks, and Deadlocks</a> 268 </span> 269 </dt> 270 <dd> 271 <dl> 272 <dt> 273 <span class="sect2"> 274 <a href="blocking_deadlocks.html#locks">Locks</a> 275 </span> 276 </dt> 277 <dt> 278 <span class="sect2"> 279 <a href="blocking_deadlocks.html#blocks">Blocks</a> 280 </span> 281 </dt> 282 <dt> 283 <span class="sect2"> 284 <a href="blocking_deadlocks.html#deadlocks">Deadlocks</a> 285 </span> 286 </dt> 287 </dl> 288 </dd> 289 <dt> 290 <span class="sect1"> 291 <a href="lockingsubsystem.html">The Locking Subsystem</a> 292 </span> 293 </dt> 294 <dd> 295 <dl> 296 <dt> 297 <span class="sect2"> 298 <a href="lockingsubsystem.html#configuringlock">Configuring the Locking Subsystem</a> 299 </span> 300 </dt> 301 <dt> 302 <span class="sect2"> 303 <a href="lockingsubsystem.html#configdeadlkdetect">Configuring Deadlock Detection</a> 304 </span> 305 </dt> 306 <dt> 307 <span class="sect2"> 308 <a href="lockingsubsystem.html#deadlockresolve">Resolving Deadlocks</a> 309 </span> 310 </dt> 311 </dl> 312 </dd> 313 <dt> 314 <span class="sect1"> 315 <a href="isolation.html">Isolation</a> 316 </span> 317 </dt> 318 <dd> 319 <dl> 320 <dt> 321 <span class="sect2"> 322 <a href="isolation.html#degreesofisolation">Supported Degrees of Isolation</a> 323 </span> 324 </dt> 325 <dt> 326 <span class="sect2"> 327 <a href="isolation.html#dirtyreads">Reading Uncommitted Data</a> 328 </span> 329 </dt> 330 <dt> 331 <span class="sect2"> 332 <a href="isolation.html#readcommitted">Committed Reads</a> 333 </span> 334 </dt> 335 <dt> 336 <span class="sect2"> 337 <a href="isolation.html#snapshot_isolation">Using Snapshot Isolation</a> 338 </span> 339 </dt> 340 </dl> 341 </dd> 342 <dt> 343 <span class="sect1"> 344 <a href="txn_ccursor.html">Transactional Cursors and Concurrent Applications</a> 345 </span> 346 </dt> 347 <dd> 348 <dl> 349 <dt> 350 <span class="sect2"> 351 <a href="txn_ccursor.html#cursordirtyreads">Using Cursors with Uncommitted Data</a> 352 </span> 353 </dt> 354 </dl> 355 </dd> 356 <dt> 357 <span class="sect1"> 358 <a href="readmodifywrite.html">Read/Modify/Write</a> 359 </span> 360 </dt> 361 <dt> 362 <span class="sect1"> 363 <a href="txnnowait.html">No Wait on Blocks</a> 364 </span> 365 </dt> 366 <dt> 367 <span class="sect1"> 368 <a href="reversesplit.html">Reverse BTree Splits</a> 369 </span> 370 </dt> 371 </dl> 372 </dd> 373 <dt> 374 <span class="chapter"> 375 <a href="filemanagement.html">5. Managing DB Files</a> 376 </span> 377 </dt> 378 <dd> 379 <dl> 380 <dt> 381 <span class="sect1"> 382 <a href="filemanagement.html#checkpoints">Checkpoints</a> 383 </span> 384 </dt> 385 <dt> 386 <span class="sect1"> 387 <a href="backuprestore.html">Backup Procedures</a> 388 </span> 389 </dt> 390 <dd> 391 <dl> 392 <dt> 393 <span class="sect2"> 394 <a href="backuprestore.html#copyutilities">About Unix Copy Utilities</a> 395 </span> 396 </dt> 397 <dt> 398 <span class="sect2"> 399 <a href="backuprestore.html#standardbackup">Offline Backups</a> 400 </span> 401 </dt> 402 <dt> 403 <span class="sect2"> 404 <a href="backuprestore.html#hotbackup">Hot Backup</a> 405 </span> 406 </dt> 407 <dt> 408 <span class="sect2"> 409 <a href="backuprestore.html#incrementalbackups">Incremental Backups</a> 410 </span> 411 </dt> 412 </dl> 413 </dd> 414 <dt> 415 <span class="sect1"> 416 <a href="recovery.html">Recovery Procedures</a> 417 </span> 418 </dt> 419 <dd> 420 <dl> 421 <dt> 422 <span class="sect2"> 423 <a href="recovery.html#normalrecovery">Normal Recovery</a> 424 </span> 425 </dt> 426 <dt> 427 <span class="sect2"> 428 <a href="recovery.html#catastrophicrecovery">Catastrophic Recovery</a> 429 </span> 430 </dt> 431 </dl> 432 </dd> 433 <dt> 434 <span class="sect1"> 435 <a href="architectrecovery.html">Designing Your Application for Recovery</a> 436 </span> 437 </dt> 438 <dd> 439 <dl> 440 <dt> 441 <span class="sect2"> 442 <a href="architectrecovery.html#multithreadrecovery">Recovery for Multi-Threaded Applications</a> 443 </span> 444 </dt> 445 <dt> 446 <span class="sect2"> 447 <a href="architectrecovery.html#multiprocessrecovery">Recovery in Multi-Process Applications</a> 448 </span> 449 </dt> 450 </dl> 451 </dd> 452 <dt> 453 <span class="sect1"> 454 <a href="hotfailover.html">Using Hot Failovers</a> 455 </span> 456 </dt> 457 <dt> 458 <span class="sect1"> 459 <a href="logfileremoval.html">Removing Log Files</a> 460 </span> 461 </dt> 462 <dt> 463 <span class="sect1"> 464 <a href="logconfig.html">Configuring the Logging Subsystem</a> 465 </span> 466 </dt> 467 <dd> 468 <dl> 469 <dt> 470 <span class="sect2"> 471 <a href="logconfig.html#logfilesize">Setting the Log File Size</a> 472 </span> 473 </dt> 474 <dt> 475 <span class="sect2"> 476 <a href="logconfig.html#logregionsize">Configuring the Logging Region Size</a> 477 </span> 478 </dt> 479 <dt> 480 <span class="sect2"> 481 <a href="logconfig.html#inmemorylogging">Configuring In-Memory Logging</a> 482 </span> 483 </dt> 484 <dt> 485 <span class="sect2"> 486 <a href="logconfig.html#logbuffer">Setting the In-Memory Log Buffer Size</a> 487 </span> 488 </dt> 489 </dl> 490 </dd> 491 </dl> 492 </dd> 493 <dt> 494 <span class="chapter"> 495 <a href="wrapup.html">6. Summary and Examples</a> 496 </span> 497 </dt> 498 <dd> 499 <dl> 500 <dt> 501 <span class="sect1"> 502 <a href="wrapup.html#anatomy">Anatomy of a Transactional Application</a> 503 </span> 504 </dt> 505 <dt> 506 <span class="sect1"> 507 <a href="txnexample_java.html">Base API Transaction Example</a> 508 </span> 509 </dt> 510 <dd> 511 <dl> 512 <dt> 513 <span class="sect2"> 514 <a href="txnexample_java.html#txnguideexample">TxnGuide.java</a> 515 </span> 516 </dt> 517 <dt> 518 <span class="sect2"> 519 <a href="txnexample_java.html#payloaddata">PayloadData.java</a> 520 </span> 521 </dt> 522 <dt> 523 <span class="sect2"> 524 <a href="txnexample_java.html#dbwriter">DBWriter.java</a> 525 </span> 526 </dt> 527 </dl> 528 </dd> 529 <dt> 530 <span class="sect1"> 531 <a href="txnexample_dpl.html">DPL Transaction Example</a> 532 </span> 533 </dt> 534 <dd> 535 <dl> 536 <dt> 537 <span class="sect2"> 538 <a href="txnexample_dpl.html#txnguideexample_dpl">TxnGuide.java</a> 539 </span> 540 </dt> 541 <dt> 542 <span class="sect2"> 543 <a href="txnexample_dpl.html#payloaddataentity">PayloadDataEntity.java</a> 544 </span> 545 </dt> 546 <dt> 547 <span class="sect2"> 548 <a href="txnexample_dpl.html#storewriter">StoreWriter.java</a> 549 </span> 550 </dt> 551 </dl> 552 </dd> 553 <dt> 554 <span class="sect1"> 555 <a href="inmem_txnexample_java.html">Base API In-Memory Transaction Example</a> 556 </span> 557 </dt> 558 </dl> 559 </dd> 560 </dl> 561 </div> 562 </div> 563 <div class="navfooter"> 564 <hr /> 565 <table width="100%" summary="Navigation footer"> 566 <tr> 567 <td width="40%" align="left"> </td> 568 <td width="20%" align="center"> </td> 569 <td width="40%" align="right"> <a accesskey="n" href="preface.html">Next</a></td> 570 </tr> 571 <tr> 572 <td width="40%" align="left" valign="top"> </td> 573 <td width="20%" align="center"> </td> 574 <td width="40%" align="right" valign="top"> Preface</td> 575 </tr> 576 </table> 577 </div> 578 </body> 579</html> 580