dotConnect Transaction problem with Oracle RAC

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
kellyjcook
Posts: 4
Joined: Fri 16 Oct 2009 17:37

dotConnect Transaction problem with Oracle RAC

Post by kellyjcook » Fri 16 Oct 2009 17:54

We are getting an error running against an Oracle 11g RAC environment when NOT using direct mode.

Our environment is a 64-bit windows machine running a DotNet 2.0 console app. The oracle client is 11g (latest download) and the Devart version of dotConnect is also the latest release.

If I use direct mode with the following connection string it works perfectly:



This is basically doing direct mode to one node of the RAC cluster.

If I try and go through the Oracle client with this connection string:



I get the following error:

"The underlying provider failed on Commit." at System.Data.EntityClient.EntityTransaction.Commit()

kellyjcook
Posts: 4
Joined: Fri 16 Oct 2009 17:37

Post by kellyjcook » Fri 16 Oct 2009 19:12

To update this with a further (and more troubling note) it appears that the records are being created on Oracle, so from the oracle driver/db side the transaction does not fail.

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Mon 19 Oct 2009 08:59

Could you please post here innerException of the error you have mentioned? It should contain the details of the error.

kellyjcook
Posts: 4
Joined: Fri 16 Oct 2009 17:37

Inner Exception

Post by kellyjcook » Mon 19 Oct 2009 12:49

Message: Devart.Data.Oracle.OracleException - ORA-24776: cannot start a new transaction
Stack Trace: at Devart.Data.Oracle.an.b(Int32 A_0)
at Devart.Data.Oracle.at.a(Boolean A_0)
at Devart.Data.Oracle.OracleInternalConnection.Commit()
at Devart.Data.Oracle.OracleTransaction.Commit()
at System.Data.EntityClient.EntityTransaction.Commit(),

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Mon 19 Oct 2009 14:40

Do you use TransactionScope when this error occurs?

kellyjcook
Posts: 4
Joined: Fri 16 Oct 2009 17:37

Post by kellyjcook » Mon 19 Oct 2009 15:27

Yes.

using (TransactionScope _wellScope_ = new TransactionScope(TransactionScopeOption.Required, TimeSpan.MaxValue))
{

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Mon 19 Oct 2009 16:24

The reason of the error can be the following: several transactions are opened for the same connection in several threads. Is it possible in your code?

johoya
Posts: 2
Joined: Mon 21 Dec 2009 07:20

Post by johoya » Thu 13 May 2010 07:20

I have the same problem. My web service may has several transactions are opened for the same connection in several threads.

dotConnect for Oracle version: 5.60.124

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Mon 17 May 2010 12:12

Please avoid the situation when the same connection is used in several transactions.

Post Reply