RavenDB 会话 > 30

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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,但仍然对重置此数字的原因感到困惑...... 非常适合我。谢谢!

以上是关于RavenDB 会话 > 30的主要内容,如果未能解决你的问题,请参考以下文章

用于无限结果的 RavenDB 流 - 连接弹性

安装 RavenDb Embedded 时出现 Nuget 依赖错误

RavenDB 使用 Raven.Smuggler 在 RavenDB 服务器之间导出/导入数据

RavenDB Query<T> 总是比 Load<T> 快

RavenDB FS 安装使用 介绍

Ravendb 工作室认证