Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: DML through DBLink
If A calls B and B calls C each of the callers should wait until the
called procedure completes and control is returned to the caller. This
is true for non-distributed and distributed transactions.
So when C compltes control is returned to B which then continues processing the next statement after the call. When B is complete control is returned back to A which then continues.
I am not sure what kind of error you are experiencing but if A is hanging then take a look at the error handling in all three routines. Failure to capture and respond to errors is a common cause of problems.
Also look at the distributed transaction dictionary views. If a distributed transaction has a problem information about the transaction should appear in dba_2pc_neighbors, dba_2pc_pending, deftran, and deftrandest.
Also remember that a distributed select is a transaction and needs to be committed to release resources held for two-phase commit.
Why does it seem that a select over a db link requires a commit after
execution?
http://www.jlcomp.demon.co.uk/faq/dblink_commit.html
If none of this helps then run session traces and Oranet traces on the processes.
HTH -- Mark D Powell -- Received on Mon May 15 2006 - 08:43:18 CDT