Наше приложение работает на клиентском сервере 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, после чего файл удаляется автоматически.
Кто-нибудь знает, как это должно вести себя в этой ситуации, когда создающий сервер ушел, следует ли освободить дескрипторы и удалить файл автоматически? И почему просмотр файла приводит к его удалению?
Интересно, что при другой предположительно похожей настройке проблема не возникает.