Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: How can I avoid getting ORA-02074: cannot Rollback in a distributed transaction ?

Re: How can I avoid getting ORA-02074: cannot Rollback in a distributed transaction ?

From: Per Bengtsson <per.x.bengtsson_at_telia.se>
Date: 29 Oct 2002 04:08:10 -0800
Message-ID: <99af783d.0210290408.78868e9c@posting.google.com>


Hello ! I solved this myself through Metalink:

Problem Description



You are receiving the following error trying to call a stored procedure that
involves a database link, and contains a commit or rollback, via OLEDB or ODBC.
ORA-02074: cannot COMMIT or ROLLBACK in a distributed transaction

Solution Description



Ole DB: set distribtx=0 in the connection string ODBC: check the option in the DSN configuration entitled "disable MTS support"

Explanation



This is a change in behavior due to the underlying architecture needed to support transactions within a Microsoft Transaction Server environment. Disabling support for MTS resolves this issue.

per.x.bengtsson_at_telia.se (Per Bengtsson) wrote in message news:<99af783d.0210250431.781418ce_at_posting.google.com>...
> I get "ORA-02074: cannot Rollback in a distributed transaction" and
> "ORA-02074: cannot Set Savepoint in a distributed transaction" when calling
> a Stored Procedure from a (Delphi) ADO application using OraOLEDB.
>
> How can I get around it ?
> Do I have to remove all ROLLBACK, COMMIT and SET SAVEPOINT from the
> procedure ?
> I tried to call ADOConnection.BeginTrans and ADOConnection.CommitTrans before and
> after the call to the procedure but it didn't help.
>
> Need help !
>
> /Per Bengtsson
Received on Tue Oct 29 2002 - 06:08:10 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US