|
I think I might have found a way to solve the problem.
The issue was that I had some batch operations running every x hours updating some data and it seems that those were causing reads on the same data to be deadlocked.
So now I'm trying to let dirty reads be possible, when I'm doing those updates:
ITransaction tr = session.BeginTransaction(IsolationLevel.ReadUncommitted);
Any save is done within a transaction like this.
The problem is that it's difficult to test thoroughly, since the problems was only ocurring once in a while.
I'll post here again about the result.
|
|
Expert:
|
Anpanman
|
|
Date:
|
Aug 08, 2006
|
|
Time:
|
16:56
|
|
|
|
Votes: Good (0) | Bad (0) Login to rate this answer
|
|
|
After testing for a few weeks without getting any problems, I regard the problem as solved.
|
|
Expert:
|
Anpanman
|
|
Date:
|
Aug 25, 2006
|
|
Time:
|
01:40
|
|
|
|
Votes: Good (0) | Bad (0) Login to rate this answer
|
|
|
I discovered another issue that might create deadlock problems. It's not related directly to transactions, but to nhibernates handling of dirty objects.
Basically what happened was that i selected a bunch of objects, and looking at the sql trace i saw that they were all immediately updated to the database again. What happens is that if nhibernate detects a "dirty" object, i.e. it has a property that has changed value, it will try to save it to the database per default.
I had a property that i tried to define with my own enum class although it was an integer that was finally saved in the database. well, nhibernate saw that as dirty since the int was not equal to the enum type and therefore saved the object again. this made a huge amount of saves and caused deadlocks simply because the database was overloaded with updates to the same tables and registries.
hope this helps somebody...
|
|
Expert:
|
Anpanman
|
|
Date:
|
May 04, 2007
|
|
Time:
|
17:39
|
|
|
|
Votes: Good (0) | Bad (0) Login to rate this answer
|
|
|
|
|
|
|
This question has been answered, and points have been rewarded to the following experts:
You're welcome however to comment or give additional information or if you wish, you have the ability to write an Answer Summary for this question by clicking on the "Answer Summaries" Tab.
|
|