我们有一个在Windows Azure上运行的.NET应用程序,它使用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接口的自定义实现提及的答案 -
Intercept SQL statements containing parameter values generated by NHibernate
但我不确定这适用于NHibernate 3.2,我正在寻找一个我可以修改的明确例子。
如何自动对NH Azure进行NHibernate重试调用?假设有3次重试,每次重试等待100ms - 在3次重试之后,如果仍然失败,我们应该抛出异常。
答案 0 :(得分:4)
我已经发布了一个处理这个问题的库:
答案 1 :(得分:3)
这不是一个完整的运行示例,但您需要的文件在这里
答案 2 :(得分:1)
也许这可以帮到你: http://www.objectreference.net/post/NHibernate-and-Execution-Plans.aspx。这里有一个类,您可以下载并使用它,并进行一些覆盖。
同时检查此链接:http://elliottjorgensen.com/nhibernate-api-ref/NHibernate.Driver/SqlClientDriver.html
我希望它无论如何都会有所帮助,我会遇到类似的情况。
此致