none
Windows Server 2003 R2 Standardの共有ファイルに対する排他制御 RRS feed

  • 質問

  • お世話になります。

    Windows Server 2003の共有ファイルの排他制御についてご教示お願い致します。

    下記技術情報を見たところ排他制御はデフォルトで有効になっているようです。

    http://support.microsoft.com/kb/296264/ja

    検証として、Windows Server 2003 R2 Standardの共有フォルダでa.txtを作成し、複数のクライアントから同時アクセスした際、クライアントAがa.txtを変更して保存し(ファイルは開いたまま)、その後クライアントBがa.txtを変更して保存できてしまいました。

    この場合、a.txtファイルの変更に対する排他制御は不可能ということでしょうか?

    なお、Excelなどは排他制御されていると認識していますが、.cmdや.log等は制御できないのでしょうか?

    できない場合、このような排他制御を実装する方法はありますでしょうか?

    2010年9月1日 7:53

回答

  • Azuleanさんが記述されている通り、ファイルのオープン中にロックがかかります。ここで注意が必要なのは、ファイルがオープン中ということと、編集中がということがイコールではないことです。

    Excelなどは、編集中にずっとファイルをオープン状態にしますので、その間は他者が上書きできません。Notepadは、編集開始時に内容をメモリに取り込み、すぐクローズしてしまうため、ロック制御はないのも同然です。

    ですので、Microsoft Wordで編集するなど、編集中にファイルをオープンしっぱなしにする編集ソフトを利用するか、SharePointのようなサービスやSubVersionなどを使って版管理を行ってください。

    2010年9月2日 11:49
    モデレータ

すべての返信

  • 実際に排他制御を機能させるのためには、プログラムでそのように実装されている必要があります。
    プログラムの利用者の立場において、後からそれを変更することは困難か不可能かと思われます。

    メモ帳などはファイルをロックしない(排他しない)ので同時編集が困るのであれば、そういったプログラムを利用しないなど、運用でカバーすることが必要になります。
    (ファイルを開いた時にメモリにすべて読み取ってしまって、ファイルを一旦閉じるようなプログラムだと、排他しようがありません)


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年9月1日 14:13
  • 早速のご返答ありがとうございます。

    >実際に排他制御を機能させるのためには、プログラムでそのように実装されている必要があります。

    ということは、http://support.microsoft.com/kb/296264/ja で述べられている排他制御は、どのようなケースの排他制御を指しているのでしょうか?

     

    2010年9月2日 0:29
  • Azuleanさんが記述されている通り、ファイルのオープン中にロックがかかります。ここで注意が必要なのは、ファイルがオープン中ということと、編集中がということがイコールではないことです。

    Excelなどは、編集中にずっとファイルをオープン状態にしますので、その間は他者が上書きできません。Notepadは、編集開始時に内容をメモリに取り込み、すぐクローズしてしまうため、ロック制御はないのも同然です。

    ですので、Microsoft Wordで編集するなど、編集中にファイルをオープンしっぱなしにする編集ソフトを利用するか、SharePointのようなサービスやSubVersionなどを使って版管理を行ってください。

    2010年9月2日 11:49
    モデレータ