Обработайте ошибки транзакции NHibernate

Наше приложение (который использует NHibernate и ASP.NET MVC) при подвергании стресс-тестам бросает много ошибок транзакции NHibernate. Главные типы:

  1. Транзакция, не соединенная, или, была разъединена
  2. Строка была обновлена или удалена другой транзакцией (или несохраненное построение карты ценности было неправильным),
  3. Транзакция (идентификатор 177 Процесса) была заведена в тупик на ресурсах блокировки с другим процессом и была выбрана в качестве жертвы мертвой блокировки. Повторно выполните транзакцию.

Кто-то может помочь мне в идентификации причины Исключения 1? Я знаю, что должен обработать другие исключения в своем коде. Кто-то может указать на меня на ресурсы, которые могут помочь мне обработать эти ошибки эффективным способом?

Q. Как мы управляем Сессиями и Транзакциями?

A. Мы используем Autofac. Для каждого запроса к серверу мы создаем новый контейнер запроса, который имеет сессию в контейнерном пожизненном объеме. При активации сессии мы начинаем транзакцию. Когда запрос завершается, мы фиксируем транзакцию. В некоторых случаях транзакция может быть огромной. Для упрощения каждый запрос к серверу содержится в транзакции.

6
задан Zuber 4 August 2010 в 04:36
поделиться