У нас работает несколько компьютеров с Windows Server 2003, каждая из которых имеет свои собственные цели. Есть запланированные задания, которые синхронизируют некоторые файлы через SFTP, используя WinSCP. Очень иногда остается только что скопированный файл заблокирован в папке «Входящие» без причины. Собственная фоновая задача машины (запрограммированная на Java) больше не может переместить ее в "обработанную" папку после ее обработки.
Ручное перемещение дает только известное сообщение об ошибке Невозможно переместить [имя файла]: он используется другим человеком или программой.
Я попытался Unlocker который отлично работает локально в WinXP, но не работает на этих машинах Win2K3 с удаленного рабочего стола (параметр разблокировки не отображается в контекстном меню, щелкнув правой кнопкой мыши). Я попытался Обозреватель процессов а также как описано в эта статья в блоге, но это привело к сбою и перезагрузке сервера (не уверен, потому что это выполняется через удаленный рабочий стол).
Единственное средство - перезагрузить компьютер, но мы, конечно, хотели бы этого избежать. Какие-либо предложения?
Что произойдет, если вы перезапустите службу FileZilla Server? Вы можете запустить службу net start / stop "FileZilla Server" из своего Java-приложения, если не удается переместить файл.
Если файл был открыт ядром (системным процессом), то отключение дескриптора обычно приводит к синему экрану, хотя не всегда.
Обычно закрытие программы, в которой она была открыта, освобождает блокировку. Я подозреваю, что ваше Java-приложение в конечном итоге виновато.
Эти ресурсы могут быть полезны:
Настройка гибкой блокировки в Windows http://support.microsoft.com/kb/296264
Как Oplocks работают в среде Windows http://msdn.microsoft.com/en-us/library/cc308441(v=MSDN.10).aspx