### Berkeley DB Reference Guide: Distributed Transactions |

# XA Introduction

Berkeley DB can be used as an XA-compliant resource manager. The XA implementation is known to work with the Tuxedo(tm) transaction manager.

The XA support is encapsulated in the resource manager switch db_xa_switch, which defines the following functions:

>     __db_xa_close     Close the resource manager.
>     __db_xa_commit    Commit the specified transaction.
>     __db_xa_complete  Wait for asynchronous operations to
>                       complete.
>     __db_xa_end       Disassociate the application from a
>                       transaction.
>     __db_xa_forget    Forget about a transaction that was heuristically
>                       completed. (Berkeley DB does not support heuristic
>                       completion.)
>     __db_xa_open      Open the resource manager.
>     __db_xa_prepare   Prepare the specified transaction.
>     __db_xa_recover   Return a list of prepared, but not yet
>                       committed transactions.
>     __db_xa_rollback  Abort the specified transaction.
>     __db_xa_start     Associate the application with a
>                       transaction.

The Berkeley DB resource manager does not support the following optional XA features:

- Asynchronous operations
- Transaction migration

The Tuxedo System is available from BEA Systems, Inc.

For additional information on Tuxedo, see

> Building Client/Server Applications Using Tuxedo, by Hall (John Wiley & Sons, Inc.).

For additional information on XA Resource Managers, see

> X/Open CAE Specification Distributed Transaction Processing: The XA Specification, X/Open Document Number: XO/CAE/91/300.

For additional information on The Tuxedo System, see

> The Tuxedo System, by Andrade, Carges, Dwyer and Felts (Addison Wesley Longman).

Copyright Sleepycat Software