BLOGTIMES
2019/06/05

SMB 経由でフォルダを監視しているとファイルが存在しないと言われることがある

  windows10 
このエントリーをはてなブックマークに追加

SMB 2.0 (いわゆる、Windows のネットワーク共有)のフォルダをプログラムで監視していると、他のクライアントからファイルを作成した場合に、ファイルが認識できるまでに若干タイムラグがあることに気づいたので調べてみたら、なんとこれは MS 的には仕様ということになっていました。

Windows の クライアントから SMB 2.0 の通信で、共有フォルダに作成したファイルへのアクセスがエラーになる場合がある

クライアントから、SMB 2.0 の通信でサーバー上の共有フォルダにファイルを作成後、File.Exists、_access、GetFileAttributes、FindFirstFile、FindNextFile、または _stat などの関数で、作成直後のファイルにアクセスすると "ファイルが存在しない" というエラー (NO SUCH FILE など) が発生する場合があります。

もちろんこれはキャッシュがあるためなのですが、SMB2 Client Redirector Caches Explainedによると、レジストリでキャッシュのライフタイムを制御することができるようです。当然、パフォーマンスに影響を与えるので「ファイル情報のキャッシュをオフにすることはお勧めしません」とハッキリ記載されています。

リンク先は Web Archive !?

MS の公式サイトのリンク先が Web Archive になっていてちょっとびっくりしました。
自分の会社のサイトなのに Web Archive 使っちゃってるんですね。。。。。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11009
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン