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 Embedded 时出现 Nuget 依赖错误
RavenDB 使用 Raven.Smuggler 在 RavenDB 服务器之间导出/导入数据