EF и зависшая транзакция
От: Shmj Ниоткуда  
Дата: 17.12.14 21:58
Оценка: 1 (1) :)
Есть небольшой проект, примерно 1 заказ в секунду в пике. Нагрузка не большая, по этому было решено применить EF для работы с данными.

Но возникла проблема: случилось раз, что оборвалось подключение в транзакции. Приложение завершило работу, а вот открытая транзакция так и осталась висеть. Данные не доступны для чтения. Сайт "завис".

Что в таких случаях предлагает делать микрософт? Вручную выберать из незавершенные транзакции и закрывать?
Re: EF и зависшая транзакция
От: RushDevion Россия  
Дата: 18.12.14 08:17
Оценка: 1 (1)
Думаю, в Microsoft такие вещи мониторит специально выделенный DBA.

А для всех остальных рекомендации стандартные:
1. Делать транзакции покороче (особенно те, что изменяют данные).
2. Для особо тяжелых случаев вынести управление транзакциями в хранимку.
3. Перейти на shapshot, чтобы разнести чтение и запись.
Re: EF и зависшая транзакция
От: vmpire Россия  
Дата: 18.12.14 13:40
Оценка: 5 (2)
Здравствуйте, Shmj, Вы писали:

S>Но возникла проблема: случилось раз, что оборвалось подключение в транзакции. Приложение завершило работу, а вот открытая транзакция так и осталась висеть. Данные не доступны для чтения. Сайт "завис".


S>Что в таких случаях предлагает делать микрософт? Вручную выберать из незавершенные транзакции и закрывать?

Если отрубается коннекшн — транзакция в SQL рвётся. Если Connection Resiliency не включен, по крайней мере.
Можно поиграться с его параметрами. Первая попавшаяся (не факт, что лучшая) ссылка: http://msdn.microsoft.com/en-us/data/dn456835.aspx
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.