高見 直輝
takam****@orega*****
2015年 7月 23日 (木) 09:22:54 JST
高見です。 > > ファイルハンドルのロック状況が気になったので調べてみました。 > > 使用したツール:OpenedFilesView > > http://www.nirsoft.net/utils/opened_files_view.html > > この結果、PGRN系のファイルに関して、『Shared Delete』が指定されていない > > ことが判明しました。(PostgreSQLの他のファイルは指定されている) > > これが削除時にエラーになる原因の可能性はありますでしょうか? > > 実は、確認してもらったバージョンでは「Shared Delete」(Cの > API的にはFILE_SHARE_DELETEというフラグ)を指定するようにして > います。それでも効いていないので、CreateFileMapping()(*)とい > う機能を使った場合は「Shared Delete」を使えないんじゃないか > と思っています。 > > (*) https://msdn.microsoft.com/en-us/library/windows/desktop/aa366537%28v=vs.85%29.aspx > ファイルの内容をあたかもメモリー上にあるデータのように扱 > うようにするための機能。Groongaはこの機能を使ってデータ > ベースの内容を読み書きしている。 少し調べてみたところ、CreateFileMappingで"PAGE_READWRITE | SEC_NOCACHE" を指定することで対処可能という情報が有りました。 http://www.osronline.com/showThread.cfm?link=64732 ただ、CreateFileMappingのページでは、これを適用することで別の問題が発生 する可能性があると記載されているので、解決策としては微妙なところです。 ----------------------------- 高見 直輝 <takam****@orega*****> 株式会社オレガ TEL:03-3267-0150 FAX:03-3267-0180