NETProvider
NETProvider copied to clipboard
invalid transaction handle with aborted threads [DNET910]
Submitted by: Christian Mayer (byzo_mc)
Attachments: FirebirdInvalidTransactionHandle.zip
Hi,
we migrated our project from version 2.6.5.1 to 7.1.1.0. After that we get this exception in a multithreaded environment with the use of thread abortion.
FirebirdSql.Data.FirebirdClient.FbException (0x80004005): invalid transaction handle (expecting explicit transaction start) ---> invalid transaction handle (expecting explicit transaction start) bei FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing) bei System.Data.Common.DbTransaction.Dispose() bei FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.CommitImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteScalar()
It seems that the unfinished implicit transaction is carried to the next connection through connection pooling. A sample project is attached. The remaining connection in the thread pool is unusable then.
Commented by: Christian Mayer (byzo_mc)
Example project
Modified by: Christian Mayer (byzo_mc)
Attachment: FirebirdInvalidTransactionHandle.zip [ 13392 ]
Modified by: Christian Mayer (byzo_mc)
description: We get this exception in a multithreaded environment with the use of thread abortion.
FirebirdSql.Data.FirebirdClient.FbException (0x80004005): invalid transaction handle (expecting explicit transaction start) ---> invalid transaction handle (expecting explicit transaction start) bei FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing) bei System.Data.Common.DbTransaction.Dispose() bei FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.CommitImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteScalar()
It seems that the unfinished implicit transaction is carried to the next connection through connection pooling. The remaining connection in the thread pool is unusable then.
=>
Hi,
we migrated our project from version 2.6.5.1 to 7.1.1.0. After that we get this exception in a multithreaded environment with the use of thread abortion.
FirebirdSql.Data.FirebirdClient.FbException (0x80004005): invalid transaction handle (expecting explicit transaction start) ---> invalid transaction handle (expecting explicit transaction start) bei FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing) bei System.Data.Common.DbTransaction.Dispose() bei FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.CommitImplicitTransaction() bei FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteScalar()
It seems that the unfinished implicit transaction is carried to the next connection through connection pooling. A sample project is attached. The remaining connection in the thread pool is unusable then.