You may use the two-phase commit protocol in RDML to distribute
transactions. To use the two-phase commit protocol with RDML,
you must either recompile any existing application programs that
were compiled with Oracle Rdb V3.1 or earlier, or you must write new
application programs. With RDML, the two-phase commit protocol is
not the default.
RDML provides the following ways for application programs to use
the two-phase commit protocol:
o By implicitly calling DECdtm system services calls in either
of two ways:
- Using the /DISTRIBUTED_TRANSACTION qualifier in the
precompiler command line
- Using the DISTRIBUTED_TRANSACTION keyword in the
START_TRANSACTION statement
o By explicitly calling the DECdtm system service calls
and using variables to pass the value of the distributed
transaction identifier (TID)
If your application starts a distributed transaction that
includes other read/write database management products that
support the two-phase commit protocol, your application
must explicitly invoke the DECdtm system service calls. For
example, if your application starts a distributed transaction
using Oracle Rdb and Oracle CODASYL DBMS, your application must
explicitly call SYS$START_TRANS and SYS$END_TRANS.
In addition, you must use the full DISTRIBUTED_TRANSACTION
clause in the START_TRANSACTION statement.
The implementation of RDML with distributed transactions is
very similar to using RDBPRE with distributed transactions. See
the "Oracle Rdb Guide to Distributed Transactions" for a complete
description of using RDBPRE with distributed transactions and the
"RDML Reference Manual" and the "Guide to Using RDO, RDBPRE, and
RDML" for more information.