Tempo aproximado para leitura: 00:03:00 min
Ocorrência
Ao tentar realizar a atualização ou a remoção de uma aplicação (deploy) no servidor Wildfly, o diretório não é excluído automaticamente, registrando as ocorrências WFLYDR0002, WFLYDR0009 e erro WFLYDR0010 (java.nio.file.DirectoryNotEmptyException) no log do servidor (server.log). O sistema indica que o conteúdo não pôde ser apagado de "standalone\data\content" pois o diretório não está vazio.
Ambiente
Cross Segmentos - TOTVS Automação da Força de Vendas(SFA) - Infraestrutura - Todas as versões
Causa
Este incidente ocorre devido a um bloqueio de arquivos a nível de sistema operacional.
Processos externos em execução (como rotinas de antivírus, janelas do Windows Explorer abertas no diretório, prompt de comando ou processos residuais do Java) retêm os arquivos contidos na pasta de cache do deploy (standalone\data\content). Como os arquivos internos estão em uso e não podem ser apagados pelo Wildfly, a pasta do deploy não fica vazia, resultando na exceção java.nio.file.DirectoryNotEmptyException quando o servidor tenta realizar a exclusão do diretório.
Solução
Este incidente ocorre devido a um bloqueio a nível de sistema operacional, onde processos em execução ou residuais retêm os arquivos, impedindo o Wildfly de concluir a exclusão do diretório de cache do deploy.
Para resolver a situação, é necessário primeiro validar no arquivo de configuração quais os deploys que realmente existem e, em seguida, remover do diretório de conteúdos aquilo que não estiver referenciado.
Siga os passos abaixo:
1. Ao validar o log do wildfly é identicado o erro:
2. Pare completamente o serviço do servidor de aplicação Wildfly.
3. Acesse o Gerenciador de Tarefas do Windows e certifique-se de que não existem processos residuais do Java (java.exe) em execução. Caso existam, finalize a tarefa.
4. Navegue até o diretório que por padrão \ws\serverapp\wildfly\standalone\configuration\ e abra o arquivo standalone.xml em um editor de texto.
5. Localize a tag de deployments () e valide quais os deploys que estão realmente configurados e ativos no servidor. Identifique os códigos (hashes) que estão referenciados na tag:
6. Em seguida, no Windows Explorer, navegue até o diretório de conteúdos, geralmente em \ws\serverapp\wildfly\standalone\data\content:
7. Compare as pastas ali existentes com os códigos identificados no passo 4. Exclua do diretório "content" todas as pastas que não estejam listadas e referenciadas no arquivo standalone.xml.
Atenção!
Os nomes das pastas dentro do diretório content são baseados no hash (sha1) de cada deploy gerado pelo Wildfly, portanto, podem e serão diferentes dos exemplos e imagens mencionados acima.
8. Feche os arquivos e inicie novamente o serviço do servidor Wildfly.
0 Comentários