Как глобально установить время ожидания в nhibernate

Я периодически получаю следующее исключение.

System.Data.SqlClient.SqlException: истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает.

Я добавил следующее в мои критерии, чтобы увеличить время ожидания.

 .SetTimeout(180)

1) Есть ли способ добавить это в мою конфигурацию nhibernate, чтобы 180 было временем по умолчанию?

2) каковы последствия увеличения таймаута? Это увеличит или уменьшит вероятный капот тупиков?

2 ответа

command_timeout - Укажите время ожидания по умолчанию для IDbCommands, сгенерированных NHibernate

Взято из таблицы 3.1. NHibernate ADO.NET Недвижимость в
http://www.nhforge.org/doc/nh/en/index.html

Объявление 2. Тайм-аут соединения не поможет вам с блокировками. Тайм-аут - это время ожидания клиентом ответа БД, и если время истекло, БД просто отправляет сообщение об ошибке.

С другой стороны, взаимоблокировки разрешаются, поскольку одна транзакция имеет блокировку и ожидает другую блокировку, которая принадлежит другой транзакции, в то время как она ожидает ресурс, заблокированный первой транзакцией. Обратите внимание, что когда БД обнаруживает эту проблему, она немедленно выдает ошибку, а не после какого-либо таймаута

Увидеть:

введите описание изображения здесь

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

Например, когда у вас есть клиент, который развертывает большие данные в вашей системе и выполняет блокировку на основе таблицы. Операции по развертыванию могут занять 60 секунд. Предположим, что другой клиент, который читает данные из таблицы, этот клиент заблокирован для 60 seconds пока он не сможет прочитать данные. предполагать timeout = 30 seconds - это всегда не удается, с другой стороны, такая же ситуация с 90 seconds timeout буду работать.

Зависит от ситуации, но вы должны предоставлять как можно меньше транзакций для обеспечения лучшей задержки и пропускной способности.

Другие вопросы по тегам