Name

DBMS_DEFER.TRANSACTION

Synopsis

The TRANSACTION procedure allows you to specify destination sites for the ensuing call(s) to the CALL procedure. It marks a transaction as “deferred”—that is, the transaction contains RPCs. This call is optional because CALL also calls it. There are two main reasons why you might wish to identify destinations this way:

  • You might wish to override the destinations in the DBA_REPSITES data dictionary view.

  • You might be making several calls to CALL and not wish to specify the destinations in the nodes parameter individually each time.

The TRANSACTION procedure is overloaded in such a way that the nodes parameter is optional. You can specify either:

PROCEDURE DBMS_DEFER.TRANSACTION;

or:

PROCEDURE DBMS_DEFER.TRANSACTION
   (nodes IN node_list_t);

If specified, nodes is a PL/SQL table containing the list of nodes that should receive the RPC. If you do not specify the nodes parameter, the ensuing call(s) to CALL will queue the calls to destinations in DEFDEFAULTDEST. If you do specify the nodes parameter, you must populate it with the global name of target destinations.

Exceptions

Exception Name

Number

Description

malformedcall

–23304

Transaction is not properly formed, or transaction terminated.

ORA-23319

–23319

Parameter value is not appropriate.

ORA-23352

–23352

node_list_t contains duplicates.

Restrictions

You can call the TRANSACTION procedure only in conjunction with CALL.

Get Oracle Distributed Systems now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.