Servidor WebLogic Não Reinicia Após Falha
Após uma falha de nó, o Servidor WebLogic falha ao ser iniciado.
O log do serviço WebLogic contém uma mensagem de erro semelhante à seguinte:
java.io.IOException: Error from fcntl() for file locking, Resource temporarily unavailable, errno=11
Causa 1: Os servidores NFSv3 não incluem um recurso de leasing de bloqueio; portanto, os estados de bloqueio não são armazenados e os bloqueios não podem ser liberados após a falha do nó.
Solução 1: Solicite a remoção de bloqueios de arquivos. Para obter mais informações, consulte Removendo Bloqueios de Arquivo de um Host que Não Está Mais Disponível.
Causa 2: Às vezes, o serviço rpc-statd
, que é necessário para o bloqueio NFSv3, está em um estado não íntegro após a falha do servidor. Isso pode ser verificado executando um teste de bloqueio de amostra usando o módulo fcntl
. Por exemplo:
$python3
>>> import fcntl
>>> f = open('/fss/path/testfile.txt', 'r') #Open an existing file as read mode (do not use 'w')
>>> fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB) #Throws "no lock available" error.
>>> exit()
Solução 2: Reinicie o serviço rpc-statd
.
-
Abra uma janela de terminal na instância e use os seguintes comandos como usuário raiz:
$sudo systemctl status rpc-statd $sudo systemctl stop rpc-statd $sudo systemctl start rpc-statd $sudo systemctl status rpc-statd
- Verifique se o teste de bloqueio de amostra
fcntl
é concluído sem erro. - Inicie o servidor WebLogic.
Causa 3: NFSv3 não rastreia proprietários de bloqueio. Assim, o NFS mantém o bloqueio indefinidamente se um proprietário de bloqueio falhar. Após uma falha de nó, uma tentativa de reinicialização WebLogic não pode adquirir um bloqueio.
Solução 3: Esta é uma limitação geral de NFSv3. As considerações de mitigação imediata e design de longo prazo são fornecidas na documentação do WebLogic. Para obter mais informações, consulte Verifying Server Restart Behavior.