Le serveur WebLogic ne redémarre pas après l'échec

Après une défaillance de noeud, le serveur WebLogic ne peut pas démarrer.

Le journal du service WebLogic contient un message d'erreur semblable au suivant :

java.io.IOException: Error from fcntl() for file locking, Resource temporarily unavailable, errno=11

Cause 1 : Les serveurs NFSv3 n'incluent pas de fonction de location avec verrouillage, de sorte que les états de verrouillage ne sont pas stockés et que les verrous ne peuvent pas être libérés après la défaillance du noeud.

Solution 1 : Demandez la suppression des verrous de fichier. Pour plus d'informations, voir Retrait des verrouillages de fichier à partir d'un hôte qui n'est plus disponible.

Cause 2 : Parfois, le service rpc-statd, qui est nécessaire pour le verrouillage NFSv3, est dans un état non sain après la défaillance du serveur. Cela peut être vérifié en exécutant un exemple de test de verrouillage à l'aide du module fcntl. Par exemple :

$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()

Solution 2 : Redémarrez le service rpc-statd.

  1. Ouvrez une fenêtre de terminal dans l'instance et utilisez les commandes suivantes en tant qu'utilisateur racine :

    $sudo systemctl status rpc-statd 
    $sudo systemctl stop rpc-statd 
    $sudo systemctl start rpc-statd 
    $sudo systemctl status rpc-statd 
  2. Vérifiez que le test de verrouillage de l'exemple fcntl s'est terminé sans erreur.
  3. Démarrez le serveur WebLogic.

Cause 3 : NFSv3 ne fait pas le suivi des responsables de verrouillage. Ainsi, NFS conserve la serrure indéfiniment si un propriétaire de serrure échoue. Après une défaillance de noeud, une tentative de redémarrage WebLogic ne peut pas acquérir un verrouillage.

Solution 3 : Il s'agit d'une limitation générale de NFSv3. Des considérations d'atténuation immédiate et de conception à long terme sont fournies dans la documentation de WebLogic. Pour plus d'informations, voir Vérification du comportement de redémarrage du serveur.