Doug,
This is a case where something slipped by in one
release, but was caught in a later release (shades of
Personal Oracle 8.0.3 which had complete EE
functionality by mistake). 8i doesn't support
autonomous transactions within distributed
transactions, but it wasn't officially prevented with
the ORA-164 error until 8.1.6+.
Supposedly this functionality will be available in 9i,
but not necessarily the first release.
HTH,
- Anita
- Doug C <dcowles_at_i84.net> wrote:
> Recently upgraded a development database from 8.1.5
> to 8.1.7 with the
> u080105 script. There is now a certain type of
> code that errors out with a
> ORA-00164 autonomous transaction disallowed within
> distributed transaction.
> But the same code works on 8.1.5, as if a piece of
> functionality was actually
> cut out by the upgrade.
>
> There's a metalink hit on a forum where an Oracle
> rep makes the following
> statement:
>
> "Autonomous transaction are not supported in a
> distributed transaction.
> Database links and autonomous transactions are two
> database technologies that do
> in fact not work together. "
>
> Also..
>
> "Autonomous transaction are not supported in a
> distributed transaction. In 8i
> this will be the case. We are considering extending
> autonomous transactions to
> be able to be used even in a distributed
> transaction, in the future releases. "
>
> Ok.. so it sounds like it shouldn't work in *ANY*
> Oracle release.. but it works
> in 8.1.5 -
>
> Here's a basic piece of the code that *works* in
> 8.1.5 and does *not* in a LATER
> release ... 8.1.7
>
> The database link is clearly the "distributed"
> problem that is bothering it..
>
> CREATE OR REPLACE PROCEDURE vwmtest AS
>
> v_date DATE;
>
> PROCEDURE write_log IS
> pragma AUTONOMOUS_TRANSACTION;
> BEGIN
> insert into ofs_log values
>
('VWMTEST','D',0,SYSDATE,SYSDATE,0,0,0,0,1,'F','B','3');
> ----- just a log
> table - we want to make an entry regardless of
> whether the parent transaction
> completes.
> commit;
> EXCEPTION
> WHEN OTHERS THEN dbms_output.put_line('OThers
> failure in write_log');
> END write_log;
>
> BEGIN -- the source of the problem
> SELECT super_date INTO v_date
> from AREMOTETABLE_at_ADATABASELINK
> where part = 54;
>
> WRITE_LOG; -- the autonomous transaction
>
> EXCEPTION
> WHEN OTHERS
> THEN dbms_output.put_line('Others error in
> vwmtest');
>
>
> END vwmtest;
>
>
> I've left some of the table definitions out but the
> concept is clear. Despite
> the info I found on Oracle's knowledge baset.. This
> WORKS on a PRIOR release..
> 8.1.5...
>
> Any ideas?
>
>
> Thanks,
> Doug
> --
> Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> --
> Author: Doug C
> INET: dcowles_at_i84.net
>
> Fat City Network Services -- (858) 538-5051 FAX:
> (858) 538-5051
> San Diego, California -- Public Internet
> access / Mailing Lists
>
> To REMOVE yourself from this mailing list, send an
> E-Mail message
> to: ListGuru_at_fatcity.com (note EXACT spelling of
> 'ListGuru') and in
> the message BODY, include a line containing: UNSUB
> ORACLE-L
> (or the name of mailing list you want to be removed
> from). You may
> also send the HELP command for other information
> (like subscribing).
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail - only $35
a year!
http://personal.mail.yahoo.com/
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: A. Bardeen
INET: abardeen1_at_yahoo.com
Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051
San Diego, California -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).
Received on Mon Jun 04 2001 - 06:29:34 CDT