如何防止Apache在使用Windows 2k8服务时使用MMap在文件上写入locking?

我使用本地NTFS文件系统在Windows 64位上运行Apache 2.2.4。 我启用了Mmap选项,并注意到Apache似乎获得了一个写锁,并持续了很长一段时间。 在我的例子中,它提供了一个2MB的XML文件。

不幸的是,我需要另一个进程来定期更新这个XML文件,但是这个locking会使它不可能。 只要我禁用MMap的写入到XML文件运作良好。

你能指出我正确的方向来了解更多关于MMap,为什么它获得了locking,以及如何启用它以允许文件被第二个进程更新?

MMap将文件映射到内存中。 在Windows上,您不能修改映射到内存的文件。 如果您需要修改该文件,并且无法重新启动服务器,则无法使用MMap。

请注意,MMap的文档指出,即使您可以修改文件(例如,在Unix上),只要文件发生更改,就需要重新启动服务器。