Tenemos una aplicación .NET que se ejecuta en Windows Azure y utiliza NHibernate para conectarse a una base de datos SQL Azure. A veces es necesario añadir lógica de reintento para manejar fallos transitorios en SQL Azure como se describe, por ejemplo, aquí -¿Cómo agrego Retry Logic en NHibernate para manejar las fallas transitorias en SQL Azure?
Puede alguien que me señale un camino en hacer esto con NHibernate? Idealmente, me gustaría hacer esto en el nivel NHibernate y no envolver todas las llamadas; Yo era capaz de hacer esto para otro ORM, .netTiers (http://nettiers.com) como esbozo aquí -
http://blog.ehuna.org/2010/01/how_to_stop_getting_exceptions.html
Yo busco y encontró algunas respuestas que mencionan el uso de una implementación personalizada de la interfaz IDbCommand -
Intercept SQL statements containing parameter values generated by NHibernate
Pero no estoy seguro de si esto funciona con NHibernate 3.2 y estoy buscando un ejemplo claro que pueda modificar.
¿Cómo podría NHibernate volver a intentar llamadas a SQL Azure automáticamente? Digamos 3 reintentos, con 100ms de espera entre cada uno, después de los 3 reintentos, si sigue fallando, deberíamos lanzar la excepción.