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.