Transaction isolation level can't be changed while a transaction

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for MySQL
Post Reply
lonegunman
Posts: 1
Joined: Mon 14 Mar 2016 15:48

Transaction isolation level can't be changed while a transaction

Post by lonegunman » Mon 14 Mar 2016 15:56

Hello,

The exception keep occuring randomly, like (http://forums.devart.com/viewtopic.php?t=16471). I've capture a dump, it shows that none of 5 connections in connection pool has transaction. My exception stacktrace is:
> 在 Devart.Data.MySql.bj.a()
> 在 Devart.Data.MySql.bj.i()
> 在 Devart.Data.MySql.ae.a(aa[]& A_0, Int32& A_1, Boolean A_2)
> 在 Devart.Data.MySql.ae.a(Byte[] A_0, Int32 A_1, Boolean A_2, String A_3)
> 在 Devart.Data.MySql.g.e()
> 在 Devart.Data.MySql.g.m()
> 在 Devart.Data.MySql.MySqlCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords)
> 在 Devart.Common.DbCommandBase.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
> 在 Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
> 在 Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
> 在 System.Data.Common.DbCommand.ExecuteReader()
> 在 Devart.Common.DbCommandBase.ExecuteNonQuery()
> 在 Devart.Data.MySql.MySqlTransaction..ctor(MySqlConnection A_0, IsolationLevel A_1)
> 在 Devart.Data.MySql.MySqlInternalConnection.BeginTransaction(IsolationLevel il)
> 在 Devart.Common.DbConnectionBase.BeginDbTransaction(IsolationLevel isolationLevel)
> 在 Devart.Data.MySql.MySqlConnection.BeginDbTransaction(IsolationLevel isolationLevel)
> 在 System.Data.Common.DbConnection.BeginTransaction(IsolationLevel isolationLevel)
> 在 System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.<BeginTransaction>b__0(DbConnection t, BeginTransactionInterceptionContext c)
> 在 System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
> 在 System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.BeginTransaction(DbConnection connection, BeginTransactionInterceptionContext interceptionContext)
> 在 System.Data.Entity.Core.EntityClient.EntityConnection.<>c__DisplayClassf.<BeginDbTransaction>b__d()
> 在 System.Data.Entity.Infrastructure.DefaultExecutionStrategy.Execute[TResult](Func`1 operation)
> 在 System.Data.Entity.Core.EntityClient.EntityConnection.BeginDbTransaction(IsolationLevel isolationLevel)

Please, somebody help me, thanks!

Shalex
Devart Team
Posts: 8072
Joined: Thu 14 Aug 2008 12:44

Re: Transaction isolation level can't be changed while a transaction

Post by Shalex » Tue 15 Mar 2016 06:03

1. Please upgrade to the newest (8.4.602) build of dotConnect for MySQL: https://www.devart.com/dotconnect/mysql ... story.html. Does the issue persist with v8.4.602 as well?
2. We cannot identify the reason of the error at the moment. Try to localize the problem and send us a small test project with the corresponding DDL/DML script for reproducing.
3. Specify the full (x.x.xx) version of your MySQL Server.

Post Reply