A exclusão de arquivos no Windows Server 2003 falha às vezes

1

Eu tenho alguns processos em servidores windows 2003 server (service packs mais recentes, etc) que exibem o mesmo problema: uma falha aleatória para excluir um arquivo que eles devem ser capazes de excluir. Isso acontece tanto no software que eu escrevi quanto nos arquivos em lote (executado no agendador de tarefas).

Por exemplo: Eu tenho um programa que abre um arquivo existente e cria um registro com o mesmo nome do arquivo, exceto por uma extensão diferente. Quando meu programa termina de processar o arquivo, ele é movido para um subdiretório chamado "concluído" e, em seguida, exclui o log. Às vezes, no entanto, minha exclusão falha. Não há nenhum scanner de vírus instalado na máquina que possa manter o arquivo aberto. Meu software é o único software que faz qualquer coisa com este arquivo - heck, ele criou o arquivo. E, no entanto, o arquivo não consegue excluir. Este software processa mais de 5000 arquivos por semana. Algumas semanas eu nunca receberei o erro, outras acontecerão uma ou duas vezes, aparentemente aleatoriamente. Não é uma coisa de acesso a direitos e estou perplexo. Não é um problema que eu possa replicar sob demanda; isso só acontece às vezes. Isso acontece em vários servidores e em arquivos em lote, bem como no meu software.

Alguém encontrou algo assim? Eu coloquei uma armadilha de erro na exclusão e parece estar recebendo um tipo de erro "Acesso negado" ao excluir.

--- ADDENDUM Apenas outra nota: sim, tentei atrasar a exclusão depois de fechar o arquivo (veja o comentário abaixo). Além disso, um dos arquivos em lote que eu tenho faz isso:

if exist my_lockfile.txt goto exit_this_batch
echo here is a lock file > my_lockfile.txt
call someother_program
call more_programs
call there_is_always_a_delay_of_at_least_a_minute_here
del my_lockfile.txt
:exit_this_batch

Esse arquivo em lote acima de 1 em 10000 vezes não será excluído. O atraso entre a criação com eco e o del é sempre pelo menos um minuto. Estranho.

    
por Don Dickinson 30.04.2009 / 20:20

2 respostas

2

Encontrei um comportamento como este ao executar o serviço de cópia de sombra de volume e, se aplicável, o gravador VSS do SQL Server (costumava exibir alguns bugs). Se esse serviço não é crucial para o seu servidor ou se você pode transformá-lo temporariamente desligado, tente desligá-lo e veja se você ainda pode reproduzir o problema.

    
por 02.05.2009 / 22:42
1

Se você atrasar a exclusão do arquivo em apenas um segundo, o problema desaparece? Você é capaz de fazer isso? Se for esse o caso, é um problema de bloqueio em potencial, talvez até mesmo do processo original.

EDITAR

Como não é um problema de bloqueio de arquivo pelo processo original, há vários processos que examinam o diretório em questão?

    
por 30.04.2009 / 20:42