在使用由Entity Framework和/或Linq to SQL支持的WCF RIA服务时,是否有任何已发布的指导用于处理SQL Azure中的瞬态故障方案?
我们研究了CAT重试库(Transient Fault Handling Framework for SQL Azure)和文档(Retry Logic for Transient Failures in SQL Azure),特别是与实体框架和Linq to SQL相关的部分。
例如,在Linq to SQL的情况下,我们被指示将查询/更新代码包装到ExecuteAction中并使用RetryPolicy执行它。
本文(Silverlight 4, EF 4, RIA Services & Windows Azure together)表明,我们所希望的最好的方法是为连接添加弹性。但是,似乎我们可以通过覆盖LinqToEntitiesDomainService和LinqToSqlDomainService上的PersistChangeSet方法并在那里添加我们的重试来获得我们想要的结果。
e.g。 (伪代码)
protected override bool PersistChangeSet()
{
e.Result = retry.ExecuteAction(() =>
{
return base.PersistChangeSet();
});
return e.Result;
}
对这种方法有什么想法?是否有任何文件或指导,特别是与RIA服务有关?
答案 0 :(得分:1)
这最初是评论但是......
我最近在实体框架中使用了RetryPolicy类,没遇到任何问题。 添加重试非常简单且影响很小。
链接的文章日期(5月30日)是在他们向企业库添加对azure的支持之前。 (see this announcement)
因此,根据上述情况,我会说RetryPolicy将满足所描述的要求。