2

(аналогичный вопрос был задан мной ранее - этот вопрос относится к той же заявке, но к другой - но, вероятно, связанной - проблеме)

У меня есть приложение, которое регулярно записывает записи в файл данных. Файл открывается, обновляется и закрывается каждый раз. Этот же экземпляр приложения также читает из файла.

В других местах сети есть несколько "ведомых" экземпляров одного и того же приложения, которые выполняют чтение только из одного и того же файла данных в сети.

Иногда (иногда дни, а иногда и недели) происходит сбой доступа к файлу с ошибкой отказа в доступе на всех машинах и в одно и то же время, за исключением того, что иногда происходит сбой на всех машинах, кроме одного из ведомых. Файл не может быть записан или прочитан. Обычно все ПК, кроме одного, выходят из строя одним и тем же способом - код ошибки 5 "доступ запрещен" - но иногда один из подчиненных все еще может продолжать доступ к файлу.

Проверка системы с помощью утилит, которые сообщают, у кого открыт файл (LockHunter , утилита SysInternal's Handle ), мало что говорит нам - на ПК, который пишет в файл, они обнаруживают, что System процесс имеет дескриптор, предположительно потому, что приложение, которое имеет файл open открыл его через сетевой ресурс, ведомый, который все еще может записывать в файл, показывает дескриптор как разблокированный, а с другими ведомыми устройствами ни одна утилита не сообщает ничего.

Когда мы устраняли неполадки в системе, мы использовали NotePad чтобы быстро проверить, разблокирован ли файл. Блокнот всегда сообщает, что не может открыть файл, потому что файл открыт в другом приложении - за исключением одного из подчиненных компьютеров, и не всегда одного и того же. Когда мы открываем файл с помощью NotePad на этом ПК, он открывается без жалоб, и в то же время файл разблокируется - все остальные ПК могут читать и записывать в файл с этого момента (хотя с этого момента все работает нормально) Я не уверен, что файловая система не была повреждена каким-либо образом).

Ниже приведен журнал, полученный ProcMon от операций подчиненной файловой системы за период, когда Notepad используется для "открепления" файла. Файл APP.ZZZ читается каждую секунду, что соответствует каждой группе из 5 обращений из App.exe

... accesses from the remote machine

1:08:59.5706074 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:08:59.7993871 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:08:59.8081861 p.m.    App.exe 6276    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: n/a, OpenResult: Opened"
1:08:59.8083675 p.m.    App.exe 6276    QueryBasicInformationFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "CreationTime: 17/11/2014 5:46:01 p.m., LastAccessTime: 23/09/2015 4:00:01 a.m., LastWriteTime: 23/09/2015 11:53:21 a.m., ChangeTime: 23/09/2015 11:53:21 a.m., FileAttributes: ANCI"
1:08:59.8083874 p.m.    App.exe 6276    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 

1:09:00.5663175 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:00.7611667 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:00.7669819 p.m.    App.exe 6276    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: n/a, OpenResult: Opened"
1:09:00.7671534 p.m.    App.exe 6276    QueryBasicInformationFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "CreationTime: 17/11/2014 5:46:01 p.m., LastAccessTime: 23/09/2015 4:00:01 a.m., LastWriteTime: 23/09/2015 11:53:21 a.m., ChangeTime: 23/09/2015 11:53:21 a.m., FileAttributes: ANCI"
1:09:00.7671720 p.m.    App.exe 6276    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 

1:09:01.5654203 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"

... NOTEPAD starts and opens the file    

1:09:01.7112007 p.m.    NOTEPAD.EXE 4508    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:01.7187932 p.m.    NOTEPAD.EXE 4508    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
1:09:01.7233678 p.m.    NOTEPAD.EXE 4508    QueryInformationVolume  \\REMOTE\App\Datafiles\APP.ZZZ  BUFFER OVERFLOW "VolumeCreationTime: 13/02/2014 11:58:47 a.m., VolumeSerialNumber: 6060-4BB9, SupportsObjects: True, VolumeLabel: Win?"
1:09:01.7248358 p.m.    NOTEPAD.EXE 4508    QueryAllInformationFile \\REMOTE\App\Datafiles\APP.ZZZ  BUFFER OVERFLOW "CreationTime: 17/11/2014 5:46:01 p.m., LastAccessTime: 23/09/2015 4:00:01 a.m., LastWriteTime: 23/09/2015 11:53:21 a.m., ChangeTime: 23/09/2015 11:53:21 a.m., FileAttributes: ANCI, AllocationSize: 692,224, EndOfFile: 691,600, NumberOfLinks: 1, DeletePending: False, Directory: False, IndexNumber: 0x1000000000bdb5, EaSize: 0, Access: None 0x0, Position: 0, Mode: , AlignmentRequirement: Byte"
1:09:01.7407505 p.m.    NOTEPAD.EXE 4508    CreateFileMapping   \\REMOTE\App\Datafiles\APP.ZZZ  FILE LOCKED WITH WRITERS    "SyncType: SyncTypeCreateSection, PageProtection: "
1:09:01.7407840 p.m.    NOTEPAD.EXE 4508    QueryStandardInformationFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "AllocationSize: 692,224, EndOfFile: 691,600, NumberOfLinks: 1, DeletePending: False, Directory: False"
1:09:01.7408038 p.m.    NOTEPAD.EXE 4508    CreateFileMapping   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS SyncType: SyncTypeOther
1:09:01.7408244 p.m.    NOTEPAD.EXE 4508    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 
1:09:01.7408578 p.m.    NOTEPAD.EXE 4508    ReadFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Offset: 0, Length: 32,768, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal"
1:09:01.7459986 p.m.    NOTEPAD.EXE 4508    ReadFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Offset: 32,768, Length: 32,768, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal"
1:09:01.7502571 p.m.    NOTEPAD.EXE 4508    ReadFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Offset: 65,536, Length: 65,536, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal"
1:09:01.7567997 p.m.    NOTEPAD.EXE 4508    ReadFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Offset: 131,072, Length: 131,072, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal"
1:09:01.7759753 p.m.    NOTEPAD.EXE 4508    ReadFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Offset: 262,144, Length: 262,144, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal"
1:09:01.7995374 p.m.    NOTEPAD.EXE 4508    ReadFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Offset: 524,288, Length: 167,312, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal"
1:09:01.8194679 p.m.    NOTEPAD.EXE 4508    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"

1:09:01.8228119 p.m.    NOTEPAD.EXE 4508    RegQueryValue   HKLM\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Explorer\KindMap\.ZZZ    NAME NOT FOUND  Length: 144

.... NOTEPAD does a whole bunch of registry stuff

1:09:01.8245487 p.m.    NOTEPAD.EXE 4508    RegCloseKey HKCU\Software\Classes\.ZZZ  SUCCESS 

... accesses from the remote machine again. File is now unstuck. 

1:09:01.9170334 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:01.9249583 p.m.    App.exe 6276    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: n/a, OpenResult: Opened"
1:09:01.9287995 p.m.    App.exe 6276    QueryBasicInformationFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "CreationTime: 17/11/2014 5:46:01 p.m., LastAccessTime: 23/09/2015 4:00:01 a.m., LastWriteTime: 23/09/2015 11:53:21 a.m., ChangeTime: 23/09/2015 11:53:21 a.m., FileAttributes: ANCI"
1:09:01.9288154 p.m.    App.exe 6276    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 

1:09:02.5679077 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:02.8324048 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:02.8813660 p.m.    App.exe 6276    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: n/a, OpenResult: Opened"
1:09:02.8924965 p.m.    App.exe 6276    QueryBasicInformationFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "CreationTime: 17/11/2014 5:46:01 p.m., LastAccessTime: 23/09/2015 4:00:01 a.m., LastWriteTime: 23/09/2015 1:09:02 p.m., ChangeTime: 23/09/2015 1:09:02 p.m., FileAttributes: ANCI"
1:09:02.8925206 p.m.    App.exe 6276    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 

1:09:03.5661778 p.m.    App.exe 6276    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
1:09:03.5749668 p.m.    App.exe 6276    ReadFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Offset: 630,252, Length: 61,376, Priority: Normal"
1:09:03.5750069 p.m.    App.exe 6276    ReadFile    \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Offset: 626,688, Length: 64,940, I/O Flags: Non-cached, Paging I/O, Priority: Normal"
1:09:03.5820100 p.m.    App.exe 6276    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 

1:09:03.5862665 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:03.7772397 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:03.7848388 p.m.    App.exe 6276    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: n/a, OpenResult: Opened"
1:09:03.7880212 p.m.    App.exe 6276    QueryBasicInformationFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "CreationTime: 17/11/2014 5:46:01 p.m., LastAccessTime: 23/09/2015 4:00:01 a.m., LastWriteTime: 23/09/2015 1:09:02 p.m., ChangeTime: 23/09/2015 1:09:02 p.m., FileAttributes: ANCI"
1:09:03.7880374 p.m.    App.exe 6276    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 

1:09:04.5695737 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:04.7597043 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:04.7653450 p.m.    App.exe 6276    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: n/a, OpenResult: Opened"
1:09:04.7711026 p.m.    App.exe 6276    QueryBasicInformationFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "CreationTime: 17/11/2014 5:46:01 p.m., LastAccessTime: 23/09/2015 4:00:01 a.m., LastWriteTime: 23/09/2015 1:09:04 p.m., ChangeTime: 23/09/2015 1:09:04 p.m., FileAttributes: ANCI"
1:09:04.7711189 p.m.    App.exe 6276    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 

1:09:05.5674975 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:05.7744582 p.m.    App.exe 6276    QueryDirectory  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Filter: APP.ZZZ, 1: APP.ZZZ"
1:09:05.7818819 p.m.    App.exe 6276    CreateFile  \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: None, AllocationSize: n/a, OpenResult: Opened"
1:09:05.7898488 p.m.    App.exe 6276    QueryBasicInformationFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS "CreationTime: 17/11/2014 5:46:01 p.m., LastAccessTime: 23/09/2015 4:00:01 a.m., LastWriteTime: 23/09/2015 1:09:04 p.m., ChangeTime: 23/09/2015 1:09:04 p.m., FileAttributes: ANCI"
1:09:05.7898647 p.m.    App.exe 6276    CloseFile   \\REMOTE\App\Datafiles\APP.ZZZ  SUCCESS 

Я пытаюсь определить, что переводит файл данных в это состояние. Я помню, как видел ссылку на проблемы, если исключение происходит, когда сетевой файл закрыт. Может ли эта проблема указывать на что-то подобное? Я надеюсь, что кто-то сможет дать некоторое представление о том, что может происходить.

Приложение написано в Delphi 2007 (32-разрядная версия).

1 ответ1

3

Откройте "Командную строку" и введите

openfiles

Чтобы увидеть варианты

openfiles /?

Другой метод

  • Выберите "Управление компьютером" (откройте "Управление компьютером")
  • нажмите "Общие папки"
  • выберите "Открыть файлы"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .