Машина сохраняет существующий файл / блокируется при отключении питания на стороне клиента

Наше приложение работает на клиентском сервере A и создает файл на файловом сервере Server 2008 R2, используя:

CreateFile(LockFileName,
                  GENERIC_READ or GENERIC_WRITE,
                  FILE_SHARE_READ, nil,
                  CREATE_ALWAYS,
                  FILE_FLAG_WRITE_THROUGH or FILE_FLAG_DELETE_ON_CLOSE,
                  0);

Клиент тестирует аварийную ситуацию и выключает «сервер A» и оставляет его выключенным. Они сообщают, что наше приложение, работающее на «сервере B» с тем же именем файла и тем же фрагментом кода, приведенным выше, дает сбой (т.е. файл продолжает существовать) в течение как минимум 15 минут, пока, как мы полагаем, они не перейдут к папке, содержащей файл в Проводник Windows, после чего файл удаляется автоматически.

Кто-нибудь знает, как это должно вести себя в этой ситуации, когда создающий сервер ушел, следует ли освободить дескрипторы и удалить файл автоматически? И почему просмотр файла приводит к его удалению?

Интересно, что при другой предположительно похожей настройке проблема не возникает.

5
задан Sam Cogan 5 February 2012 в 11:44
поделиться