Как добавить Retry Logic в NHibernate для обработки временных сбоев в SQL Azure?
У нас есть приложение .NET, которое работает в Windows Azure и использует NHibernate для подключения к базе данных SQL Azure. Иногда необходимо добавить логику повторных попыток для обработки временных сбоев в SQL Azure, как описано, например, здесь -
Может кто-нибудь указать мне способ сделать это с NHibernate? В идеале я хотел бы сделать это на уровне NHibernate, а не оборачивать каждый вызов; Я смог сделать это для другого ORM, .netTiers (http://nettiers.com) как я обрисую здесь -
http://blog.ehuna.org/2010/01/how_to_stop_getting_exceptions.html
Я выполнил поиск и нашел несколько ответов, в которых упоминается использование пользовательской реализации интерфейса IDbCommand -
Перехватывать операторы SQL, содержащие значения параметров, сгенерированные NHibernate
Но я не уверен, что это работает с NHibernate 3.2, и я ищу ясный пример, который я мог бы изменить.
Как я могу сделать повторные вызовы NHibernate в SQL Azure автоматически? Допустим, 3 повторных попытки с ожиданием 100 мс между каждым - после 3 повторных попыток, если все еще не получится, мы должны выбросить исключение.