首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ESENT无法确定最小I/O块大小

ESENT无法确定最小I/O块大小
EN

Server Fault用户
提问于 2011-07-21 05:22:16
回答 2查看 1.6K关注 0票数 4

我试图让RavenDB在共享/多租户的get主机上以嵌入式模式运行。RavenDB依赖于ESENT存储API。主机上的文件系统被锁定。RavenDB Initialize()调用将导致以下事件日志条目

代码语言:javascript
复制
Raven (20604) D:\Path\To\Website\App_Data\RavenDB\Data52e0e402-79d7-4f47-a219-3d1e2e73321c: An attempt to determine the minimum I/O block size for the volume "D:\" containing "D:\Path\To\Website\App_Data\RavenDB\logs\" failed with system error 5 (0x00000005): "Access is denied. ".  The operation will fail with error -1032 (0xfffffbf8).

因此,据推测,正在执行的进程需要访问来读取某些卷信息,这是被拒绝的,因为进程只被授予与其相关的卷的各个部分的权限。

谁知道相关权利是什么,是否可以略去这些权利?

P.S.:有比我更多业力的人请给这个ravendbesent贴上标签。

EN

回答 2

Server Fault用户

发布于 2012-05-17 08:52:46

Microsoft KB266361显示ESE错误代码的错误消息。

在这种情况下,错误代码-1032是“无法访问文件,文件被锁定或正在使用”。

看看其他大量使用ESE的微软产品,比如Exchange (参见http://technet.microsoft.com/en-us/library/bb218334(v=exchg.80).aspx ),错误消息似乎更符合锁定问题,而不是权限问题。基于此,您正在一个具有多租户的严重多线程IIS环境中运行,这一锁定问题再次很可能发生。

为了帮助调查这个问题,我建议使用类似Process (请参阅http://technet.microsoft.com/en-us/sysinternals/bb896653)的方法来找出文件上的锁。这可能会显示外部源作为文件锁定的原因。

我建议研究调用Initialize()的方法。在高并发性环境中,该方法可能由两个单独的线程调用。您可能需要lock负责此函数调用的代码部分。

如果这没有帮助,那么最好用StackOverflow上的代码示例来问这个问题。

希望这能有所帮助。

票数 0
EN

Server Fault用户

发布于 2013-05-28 10:25:37

为了确定I/O块大小,共享主机上的用户/用户需要读取驱动器上的扩展属性(root)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/292545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档