Transaction does not match the DataContext.Connection
Posted: Tue 18 Jan 2011 17:08
It is not the first time I have this error but this time I managed to reproduce it with DbMonitor on.
My application is multithreaded. For some of my contexts I open a connection that is committed on the end. The pattern is always:
Sometimes I get the error "Transaction does not match the DataContext.Connection." I could not reproduce the error on my development machine. Only on the server were the application runs under the IIS.
Here follows some lines of the log where the words TRANSACTION or COMMIT appear. The [] is the name of the threads. Please let me know if you want the full logs sent to you.
In the first example, only one thread was starting a transaction. On the second example, two threads at the same time were opening and committing a transaction
2011-01-18 17:33:41,005 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:33:41,005 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:33:41,084 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:33:42,318 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:33:42,318 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:33:42,599 ERROR [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Fail to get the DataContext error:Transaction does not match the DataContext.Connection.
2011-01-18 17:33:42,599 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Rollback: Description: Rollback - Extra info:
2011-01-18 17:37:43,847 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:37:43,863 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:37:43,863 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:38:23,060 INFO [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
pum2011-01-18 17:38:23,060 INFO [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:38:23,123 ERROR [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Fail to get the DataContext error:Transaction does not match the DataContext.Connection.
My application is multithreaded. For some of my contexts I open a connection that is committed on the end. The pattern is always:
Code: Select all
context.Connection.Open();
context.Transaction = Connection.BeginTransaction();
try
{
// do something
context.SubmitChanges();
// do another thing
context.SubmitChanges();
context.Transaction.Commit();
}
catch
{
context.Transaction.Rollback();
}
Here follows some lines of the log where the words TRANSACTION or COMMIT appear. The [] is the name of the threads. Please let me know if you want the full logs sent to you.
In the first example, only one thread was starting a transaction. On the second example, two threads at the same time were opening and committing a transaction
2011-01-18 17:33:41,005 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:33:41,005 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:33:41,084 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:33:42,318 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:33:42,318 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:33:42,599 ERROR [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Fail to get the DataContext error:Transaction does not match the DataContext.Connection.
2011-01-18 17:33:42,599 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Rollback: Description: Rollback - Extra info:
2011-01-18 17:37:43,847 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:37:43,863 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:37:43,863 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:38:23,060 INFO [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
pum2011-01-18 17:38:23,060 INFO [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:38:23,123 ERROR [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Fail to get the DataContext error:Transaction does not match the DataContext.Connection.