Oracle XA applications can access other Oracle Database instances through database links with these restrictions:
They must use the shared server configuration.
The transaction processing monitors (TPMs) use shared servers to open the connection to an Oracle Database A. Then the operating system network connection required for the database link is opened by the dispatcher instead of a dedicated server process. This
allows different services or threads to operate on the transaction.
If this restriction is not satisfied, then when you use database links within an XA transaction, it creates an operating system network connection between the dedicated server process and the other Oracle Database B. Because this network connection cannot be
moved from one dedicated server process to another, you cannot detach from this dedicated server process of database A. Then when you access the database B through a database link, you receive an ORA-24777 error.
The other database being accessed must be another Oracle Database.
If these restrictions are satisfied, Oracle Database allows such links and propagates the transaction protocol (prepare, rollback, and commit) to the other Oracle Database instances.
If using the shared server configuration is not possible, then access the remote database through the Pro*C/C++ application by using EXECSQLAT syntax.
The init.ora parameter OPEN_LINKS_PER_INSTANCE specifies
the number of open database link connections that can be migrated. Thesedblink connections
are used by XA transactions so that the connections are cached after a transaction is committed. Another transaction can use the database link connection if the user who created the connection also created the transaction. This parameter is different from
the init.ora parameter OPEN_LINKS,
which specifies the maximum number of concurrent open connections (including database links) to remote databases in one session. The OPEN_LINKS parameter
does not apply to XA applications.
This document is being delivered to you via Oracle Support‘s Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.
APPLIES TO:
Oracle Server - Enterprise Edition - Version 10.2.0.5 to 11.2.0.3 [Release 10.2 to 11.2]
Information in this document applies to any platform.
SYMPTOMS
ORA-24777 reported by a JDBC/XA application when utilising a database link between two Oracle databases.
CAUSE
An ORA-24777 is a warning that you are trying to utilise a database link within an XA coordinated transaction and the connection to the source database which is trying to use the database link has been made through a dedicated
server connection.
This is not allowed and this is documented in following entry