Эй, ребята, у нас есть цикл, который:
1. Повторяет несколько тысяч XML-файлов. Всего мы анализируем миллионы «пользовательских» узлов.
2. В каждой итерации мы анализируем «пользовательский» xml, выполняем пользовательскую десериализацию
3. Наконец, на каждой итерации мы отправляем наш объект в nhibernate для сохранения. Мы используем:
.SaveOrUpdateAndFlush(user);
Это длительный процесс, и мы подумали, что он станет идеальным кандидатом для тестирования параллельных библиотек .NET 4.0. Итак, мы завернули цикл в:
Parallel.ForEach();
После этого мы начинаем получать «случайные» исключения тайм-аута от SQL Server, и, наконец, после того, как он оставался включенным всю ночь, OutOfMemory обрабатывал исключительные ситуации.
Я еще не провел глубокую отладку, но что вы, ребята, думаете. Это просто ограничение SQL Server, или это может быть наша установка NHibernate, или что?
ура
Энди