Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> AUTONOMOUS_TRANSACTION and distributed transactions (ORA-01476)
I have something like this:
PROCEDURE log_error_autonomous (...) IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
...
END;
PROCEDURE log_error_normal (...) IS
BEGIN
...
END;
PROCEDURE log_error (...) IS
BEGIN
log_error_autonomous(...);
EXCEPTION
WHEN OTHERS THEN
log_error_normal(...);
END;
I allways use log_error(). It calls autonomous version of logging
procedure. If that call fails (for example, because of ORA-01476) it
calls normal logging procedure. Anyway, that is what I planned. But
instead, I allways get ORA-01476 which doesn't result in calling the
log_normal() procedure within exception handler. Error simply
propagates all the way to the top. What is happening? Is there some
another way to know which function to call (autonomous or normal),
based on the fact that distributed transaction is maybe in progress?
Received on Mon Oct 28 2002 - 07:25:08 CST
![]() |
![]() |