Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Transaction aborts after installing ODAC 12c Release 3

geek_dadFeb 3 2015 — edited Oct 10 2015

I have .net code that used a transaction scope which works fine using ODAC 11g Release 4, but fails with "Unable to enlist in a distributed transaction" using ODAC 12c Release 1,2, or 3.  The transaction to a single database.  I am at a loss for what could be the issue.

This issue occurs on both Windows 7 and Windows Server 2008 R2.

I have reviewed the trace logs for both the Microsoft Distributed Transaction Server, and the Oracle Services for Microsoft Transactions Services.  The MSDTC trace logs indicate that the transaction abort was request was received from the calling application ("RECEIVED_ABORT_REQUEST_FROM_BEGINNER").  The ORAMTS trace logs indicate an OCI error and that there was an attempt to begin a distributed transaction with out logging on ("OCI_ERROR - 2048." ,  "ORA-02048: attempt to begin distributed transaction without logging on")

I can reproduce this error with a simple code example with just tried to insert records into a table.  If I change the data provider to "System.Data.OracleClient", or uninstall 12c and install 11g this code works fine.

DataSet1TableAdapters.DataTable1TableAdapter da = new DataSet1TableAdapters.DataTable1TableAdapter();

           

            using (TransactionScope scope = new TransactionScope())

            {

                Transaction txn = Transaction.Current;

                try

                {

                   da.Insert(0, "This ia a title");

                    scope.Complete();

                    lblmessage.Text = "Transaction Succeeded.";

                }

                catch (Exception ex)

                {

                    txn.Rollback();

                    lblmessage.Text = "Transaction Failed.";

                }

Can anyone provide any ideas what is happening?  I really would like to use ODAC 12c.

Thanks.

This post has been answered by Alex Keh-Oracle on May 29 2015
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 7 2015
Added on Feb 3 2015
7 comments
2,828 views