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.

  1. 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 
  2. Verifique se o teste de bloqueio de amostra fcntl é concluído sem erro.
  3. 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.