BreezeJS如何处理死锁情况?

时间:2015-01-09 15:32:36

标签: sql entity-framework breeze

所以问题主要在于标题,但经过一些研究后我无法找到更深入的信息。大多数情况下,我想知道是否发生死锁情况Breeze会自动重新尝试提交,还是只是将错误返回到前端以尝试再次保存?任何更深入的文档或文章将不胜感激!

1 个答案:

答案 0 :(得分:1)

在某种程度上,这取决于您使用的服务器后端。但一般来说,breeze不会尝试重试死锁失败,而是会返回一个异常,表明发生了死锁。然后,您可以通过处理客户端异常并重新执行查询来自行重试保存。

请注意,由于大多数breeze服务器自动 toposort 保存请求中的实体的方式,死锁比不执行此类排序的可能性要小得多。这里的想法是,通过确保在更新同一组表时程序的多个实例使用相同的顺序,我们减少了死锁的可能性。

此toposorting是任何基于Entity Framework的后端以及Breeze Node / Sequelize(MySQL,Postgress)提供程序的一部分,很可能在不久的将来添加到Breeze NHibernate和MongoDb提供程序中。