Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> DBMS_JOB, Distributed transactions and logging.
Hi,
We have a classic distributed transaction scenario. A local 8i (8.1.7) server initiates the transaction, does some processing, calls a remote procedure on another 8i server over the DB link... Both are running on Solaris.
We are aware of transaction control not working on the remote side in distributed transactions, but we have not much control over the local server processes. The task we are faced with is to log errors on the remote server, and keep them logged (in tables) even if the transaction rolls back.
The approach was to try and use DBMS_JOB in the exception block of the remote procedures. However, it seems that DBMS_JOB does not add a job to the queue unless there is a commit OR unless DBMS_JOB.RUN (implicit commit) is called. Is there a workaround this issue?
Or, alternatively, is there a way to have this work:
LOCAL:
BEGIN
remote_proc_at_db_link;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK; RAISE;
RAISE; -- back to local
END;
It seems as if it is such a commonly needed task... How do others do
it?
Thank you in advance!
Received on Thu Sep 12 2002 - 08:44:44 CDT