summaryrefslogtreecommitdiff
path: root/docs/programmer_reference/xa_faq.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/programmer_reference/xa_faq.html')
-rw-r--r--docs/programmer_reference/xa_faq.html132
1 files changed, 86 insertions, 46 deletions
diff --git a/docs/programmer_reference/xa_faq.html b/docs/programmer_reference/xa_faq.html
index cbc84922..29026a0a 100644
--- a/docs/programmer_reference/xa_faq.html
+++ b/docs/programmer_reference/xa_faq.html
@@ -14,7 +14,7 @@
<body>
<div xmlns="" class="navheader">
<div class="libver">
- <p>Library Version 11.2.5.3</p>
+ <p>Library Version 12.1.6.1</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
@@ -22,9 +22,7 @@
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="xa_xa_restrict.html">Prev</a> </td>
- <th width="60%" align="center">Chapter 13. 
- Distributed Transactions
- </th>
+ <th width="60%" align="center">Chapter 13.  Distributed Transactions </th>
<td width="20%" align="right"> <a accesskey="n" href="apprec.html">Next</a></td>
</tr>
</table>
@@ -42,62 +40,105 @@
<ol type="1">
<li>
<span class="bold">
- <strong>Is it possible to mix XA and non-XA transactions?</strong>
+ <strong>Is it possible to mix XA and non-XA
+ transactions?</strong>
</span>
- <p>Yes. It is also possible for XA and non-XA transactions to coexist in
-the same Berkeley DB environment. To do this, specify the same environment
-to the non-XA <a href="../api_reference/C/envopen.html" class="olink">DB_ENV-&gt;open()</a> calls as was specified in the Tuxedo
-configuration file.</p>
+ <p>
+ Yes. It is also possible for XA and non-XA
+ transactions to coexist in the same Berkeley DB
+ environment. To do this, specify the same environment
+ to the non-XA <a href="../api_reference/C/envopen.html" class="olink">DB_ENV-&gt;open()</a> calls as was specified in the
+ Tuxedo configuration file.
+ </p>
</li>
<li>
<span class="bold">
- <strong>Does converting an application to run within XA change any of
-the already existing C/C++ API calls it does?</strong>
+ <strong>Does converting an application to
+ run within XA change any of the already existing C/C++
+ API calls it does?</strong>
</span>
- <p>When converting an application to run under XA, the application's Berkeley DB calls are unchanged, with three exceptions:</p>
+ <p>
+ When converting an application to run under XA, the
+ application's Berkeley DB calls are unchanged, with
+ three exceptions:
+ </p>
<div class="orderedlist">
<ol type="a">
- <li>The application must specify the <a href="../api_reference/C/dbcreate.html#dbcreate_DB_XA_CREATE" class="olink">DB_XA_CREATE</a> flag to
-the <a href="../api_reference/C/dbcreate.html" class="olink">db_create()</a> function.</li>
- <li>Unless the application is performing an operation for a non-XA transaction, the application should never explicitly call <a href="../api_reference/C/txncommit.html" class="olink">DB_TXN-&gt;commit()</a>, <a href="../api_reference/C/txnabort.html" class="olink">DB_TXN-&gt;abort()</a>, and <a href="../api_reference/C/txnbegin.html" class="olink">DB_ENV-&gt;txn_begin()</a>, and those calls should be replaced by calls into the Tuxedo transaction manager.</li>
- <li>Unless the application is performing an operation for a non-XA transaction, the application should specify a transaction argument of NULL to Berkeley DB methods taking transaction arguments (for example, <a href="../api_reference/C/dbput.html" class="olink">DB-&gt;put()</a> or <a href="../api_reference/C/dbcursor.html" class="olink">DB-&gt;cursor()</a>).</li>
+ <li>
+ The application must specify the
+ <a href="../api_reference/C/dbcreate.html#dbcreate_DB_XA_CREATE" class="olink">DB_XA_CREATE</a> flag to the <a href="../api_reference/C/dbcreate.html" class="olink">db_create()</a>
+ function.
+ </li>
+ <li>
+ Unless the application is performing an
+ operation for a non-XA transaction, the
+ application should never explicitly call
+ <a href="../api_reference/C/txncommit.html" class="olink">DB_TXN-&gt;commit()</a>, <a href="../api_reference/C/txnabort.html" class="olink">DB_TXN-&gt;abort()</a>, and <a href="../api_reference/C/txnbegin.html" class="olink">DB_ENV-&gt;txn_begin()</a>, and those
+ calls should be replaced by calls into the Tuxedo
+ transaction manager.
+ </li>
+ <li>
+ Unless the application is performing an
+ operation for a non-XA transaction, the
+ application should specify a transaction argument
+ of NULL to Berkeley DB methods taking transaction
+ arguments (for example, <a href="../api_reference/C/dbput.html" class="olink">DB-&gt;put()</a> or
+ <a href="../api_reference/C/dbcursor.html" class="olink">DB-&gt;cursor()</a>).
+ </li>
</ol>
</div>
- <p>Otherwise, the application should be unchanged.</p>
+ <p>
+ Otherwise, the application should be
+ unchanged.
+ </p>
</li>
<li>
<span class="bold">
- <strong>How does Berkeley DB recovery interact with recovery by the Tuxedo
-transaction manager?</strong>
+ <strong>How does Berkeley DB recovery
+ interact with recovery by the Tuxedo transaction
+ manager?</strong>
</span>
- <p>Recovery is completed in two steps. First, each resource manager should
-recover its environment(s). This can be done via a program that calls
-<a href="../api_reference/C/envopen.html" class="olink">DB_ENV-&gt;open()</a> or by calling the <a href="../api_reference/C/db_recover.html" class="olink">db_recover</a> utility. If using the <a href="../api_reference/C/db_recover.html" class="olink">db_recover</a> utility, then the option
-should be specified so that the regions that are recovered persist after
-the utility exits. Any transactions that were prepared, but neither
-completed nor aborted, are restored to their prepared state so that they
-may be aborted or committed via the Tuxedo recovery mechanisms. After
-each resource manager has recovered, then Tuxedo recovery may begin.
-Tuxedo will interact with each resource manager via the __db_xa_recover
-function which returns the list of prepared, but not yet completed
-transactions. It should issue a commit or abort for each one, and only
-after having completed each transaction will normal processing resume.</p>
- <p>Finally, standard log file archival and catastrophic recovery procedures
-should occur independently of XA operation.</p>
+ <p>
+ Recovery is completed in two steps. First, each
+ resource manager should recover its environment(s).
+ This can be done via a program that calls <a href="../api_reference/C/envopen.html" class="olink">DB_ENV-&gt;open()</a> or
+ by calling the <a href="../api_reference/C/db_recover.html" class="olink">db_recover</a> utility. If using the
+ <a href="../api_reference/C/db_recover.html" class="olink">db_recover</a> utility, then the
+ teoption should be specified so that
+ the regions that are recovered persist after the
+ utility exits. Any transactions that were prepared,
+ but neither completed nor aborted, are restored to
+ their prepared state so that they may be aborted or
+ committed via the Tuxedo recovery mechanisms. After
+ each resource manager has recovered, then Tuxedo
+ recovery may begin. Tuxedo will interact with each
+ resource manager via the __db_xa_recover function
+ which returns the list of prepared, but not yet
+ completed transactions. It should issue a commit or
+ abort for each one, and only after having completed
+ each transaction will normal processing resume.
+ </p>
+ <p>
+ Finally, standard log file archival and catastrophic
+ recovery procedures should occur independently of XA
+ operation.
+ </p>
</li>
<li>
<span class="bold">
- <strong>Does Berkeley DB provide multi-threaded support for XA transactions?</strong>
+ <strong>Does Berkeley DB provide
+ multi-threaded support for XA transactions?</strong>
</span>
- <p>
-Yes.
-For information on how to build multi-threaded servers for XA transactions,
-see <a class="ulink" href="http://download.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/pgc/pgthr.html" target="_top">http://download.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/pgc/pgthr.html</a>.
-All databases used by servers should be opened with handles created with the <a href="../api_reference/C/dbcreate.html#dbcreate_DB_XA_CREATE" class="olink">DB_XA_CREATE</a> flag in the <a href="../api_reference/C/dbcreate.html" class="olink">db_create()</a> method and must be opened in the tpsvrinit routine.
-Note that the environment parameter of the <a href="../api_reference/C/dbcreate.html" class="olink">db_create()</a> method must be assigned NULL.
-For more information on the tpsvrinit routine, see <a class="ulink" href="http://download.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/pgc/pgthr.html" target="_top">http://download.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/pgc/pgthr.html</a>.
-
-</p>
+ <p>
+ Yes. For information on how to build multi-threaded
+ servers for XA transactions, see <a class="ulink" href="http://download.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/pgc/pgthr.html" target="_top">http://download.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/pgc/pgthr.html</a>.
+ All databases used by servers should be opened
+ with handles created with the <a href="../api_reference/C/dbcreate.html#dbcreate_DB_XA_CREATE" class="olink">DB_XA_CREATE</a> flag in
+ the <a href="../api_reference/C/dbcreate.html" class="olink">db_create()</a> method and must be opened in the
+ tpsvrinit routine. Note that the environment parameter
+ of the <a href="../api_reference/C/dbcreate.html" class="olink">db_create()</a> method must be assigned NULL. For
+ more information on the tpsvrinit routine, see <a class="ulink" href="http://download.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/pgc/pgthr.html" target="_top">http://download.oracle.com/docs/cd/E13161_01/tuxedo/docs10gr3/pgc/pgthr.html</a>.
+ </p>
</li>
</ol>
</div>
@@ -117,9 +158,8 @@ For more information on the tpsvrinit routine, see <a class="ulink" href="http:/
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
- <td width="40%" align="right" valign="top"> Chapter 14. 
- Application Specific Logging and Recovery
- </td>
+ <td width="40%" align="right" valign="top"> Chapter 14.  Application Specific Logging and
+ Recovery </td>
</tr>
</table>
</div>