【问题标题】:RavenDB Session > 30RavenDB 会话 > 30
【发布时间】:2011-07-21 15:04:57
【问题描述】:

如果我尝试保存计数 > 30 的我要保存的项目列表,我会收到一条错误提示

最大请求数(30) 已允许此会话 到达。乌鸦限制数量 允许会话的远程调用 作为一个预警系统。 会话预计会很短 住过,Raven提供设施 像 Load(string[] keys) 加载 一次和批处理多个文档 保存。

我能做些什么来解决这个问题?此错误的问题是我没有加载,我正在尝试保存文档。任何想法,将不胜感激。谢谢

【问题讨论】:

    标签: c# linq ravendb document-database


    【解决方案1】:

    虽然不推荐;在特殊情况下,您可以设置 Session.Advanced.MaxNumberOfRequestsPerSession 属性。

    using (var docStore = store.Initialize())
       {
         using (var session = docStore.OpenSession())
          {
             session.Advanced.MaxNumberOfRequestsPerSession = 1000;
          }
       }
    

    【讨论】:

    • 赞成,因为有正当理由您可能希望将其设置得更高。 1000可能太多了。一个合理的原因可能是您正在进行大量交易,但只想在一次保存失败时失败。错误是警告开发人员不要做一些愚蠢的事情。
    • 在哪里放置代码???意思是说在连接初始化或者打开会话的时候放置
    • MaxNumberOfRequestsPerSession 的小幅增加(例如最多 100 个)可能是合理的,但需要更大的数量应被视为危险信号,可能表明有必要重新考虑您的方法。跨度>
    【解决方案2】:

    在调用 Session.SaveChanges 之前使用每个对象调用 Session.Store。

    【讨论】:

    • 我在我的“foreach”之外调用了会话 Session.SaveChanges,它运行良好
    • 您已被注意到:ayende.com/blog/4814/…。也许你应该重新考虑。
    • 嗯...监视(Session as Raven.Client.Document.InMemoryDocumentSessionOperations).NumberOfRequests 属性告诉我,每个SaveChanges() 呼叫(在Session.Store 之后呼叫它)的数字都在增加,并且未能达到MaxNumberOfRequestsPerSession...我'我正在使用 RavenDb 3.5,但仍然对重置此数字的原因感到困惑......
    • 非常适合我。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2016-01-19
    • 1970-01-01
    相关资源
    最近更新 更多