¿Cómo agrego Retry Logic en NHibernate para manejar fallas transitorias en SQL Azure?
Tenemos una aplicación .NET que se ejecuta en Windows Azure y usa NHibernate para conectarse a una base de datos SQL Azure. A veces es necesario agregar lógica de reintento para manejar fallas transitorias en SQL Azure como se describe, por ejemplo, aquí:
¿Alguien puede señalarme una forma de hacer esto con NHibernate? Idealmente, me gustaría hacer esto en el nivel de NHibernate y no terminar cada llamada; Pude hacer esto para otro ORM, .netTiers http: //nettiers.co) como describo aquí -
http: //blog.ehuna.org/2010/01/how_to_stop_getting_exceptions.htm
Busqué y encontré algunas respuestas que mencionan el uso de una implementación personalizada de la interfaz IDbCommand -
Intercept declaraciones SQL que contienen valores de parámetros generados por NHibernate
Pero no estoy seguro de que esto funcione con NHibernate 3.2 y estoy buscando un ejemplo claro que pueda modificar.
¿Cómo puedo hacer que NHibernate vuelva a intentar las llamadas a SQL Azure automáticamente? Digamos 3 reintentos, con 100ms de espera entre cada uno; después de los 3 reintentos, si todavía falla, deberíamos lanzar la excepción.