<p>Berkeley DB can be used as an XA-compliant resource manager. The XA
implementation is known to work with the Tuxedo transaction
manager.</p>
<p>The XA support is encapsulated in the resource manager switch
db_xa_switch, which defines the following functions:</p>
<divclass="itemizedlist">
<ultype="disc">
<li><spanclass="emphasis"><em>__db_xa_close.</em></span> Close the resource manager.</li>
<li><spanclass="emphasis"><em>__db_xa_commit. </em></span> Commit the specified transaction.</li>
<li><spanclass="emphasis"><em>__db_xa_complete.</em></span> Wait for asynchronous operations to complete.</li>
<li><spanclass="emphasis"><em>__db_xa_end. </em></span> Disassociate the application from a transaction.</li>
<li><spanclass="emphasis"><em>__db_xa_forget.</em></span> Forget about a transaction that was heuristically completed. (Berkeley DB does not support heuristic completion.)</li>
<li><spanclass="emphasis"><em>__db_xa_open.</em></span> Open the resource manager.</li>
<li><spanclass="emphasis"><em>__db_xa_prepare.</em></span> Prepare the specified transaction.</li>
<li><spanclass="emphasis"><em>__db_xa_recover.</em></span> Return a list of prepared, but not yet committed transactions.</li>
<li><spanclass="emphasis"><em>__db_xa_rollback.</em></span> Abort the specified transaction.</li>
<li><spanclass="emphasis"><em>__db_xa_start.</em></span> Associate the application with a transaction.</li>
</ul>
</div>
<p>The Berkeley DB resource manager does not support the following optional
XA features:</p>
<divclass="itemizedlist">
<ultype="disc">
<li>Asynchronous operations</li>
<li>Transaction migration</li>
</ul>
</div>
<p>The Tuxedo System is available from <aclass="ulink"href="http://www.oracle.com/us/bea/index.html"target="_top">Oracle BEA Systems</a>.</p>