Redémarrage de noeud Oracle Weblogic via scripts et crontab

Malgré la haute stabilité des serveurs Oracle Weblogic, il arrive qu’il soit nécessaire d’effectuer un redémarrage de l’environnement. Ce n’est certes pas la plus longue des tâches mais elle peut s’avérer pénible dans certains cas.. Si vous avez de nombreux messages sur des files JMS par exemple.
Il peut être intéressant de mettre en place une démarche automatique de redémarrage des jvm weblogic. Je vous propose la suivante : un script redemarrage.sh et une tâche cron.

 
 
 
Voici un exemple de script à adapter à votre environnement à placer à la racine du domaine :

#!/bin/bash
domainDir=/usr/local/appli/domdvp
adminName=ADMDVP
nodeName1=SRVDVP_001
nodeName2=SRVDVP_002
source $HOME/.bash_profile
killingNodes()
{
 for x in `ps -ef | grepweblogic.Server | grep -v grep | grep '\('$nodeName1'\|'$nodeName2'\|
 '$adminName'\)' | cut -c 10-15`; do
 echo "Killing PS number $x";
 kill $x
 done;
}
startNodes()
{
 cd $domainDir;
 echo "Démarrage noeud $adminName";
 sh start$adminName.sh
 echo "Attente démarrage admin"
 sleep 120;
 echo "Demarrage noeud $nodeName1";
 sh start$nodeName1.sh;
 echo "Demarrage noeud $nodeName2";
 sh start$nodeName2.sh;
}
echo "==================";
echo "Debut maintenance :";
date;
echo "==================";
echo "Arret des servers";
echo "================";
nbNode=`ps -ef | grep weblogic.Server | grep -v grep | grep '\('$nodeName1'\|'$nodeName2'\|'$adminName'\)' | wc -l`
test $nbNode -gt 0 && echo "$(date +%T) - kill du process recalcitrant de la JVM" && killingNodes || echo "Aucun process recalcitrant";
echo "==============="
echo "Demarrage des noeuds"
echo "==============="
startNodes;
echo "==============";
echo "Fin de maintenance";
date;
echo "==============";
exit 0;

La subtilité du script se situera sur les variables d’environnements. Généralement l’utilisateur redémarrant les noeuds à la main le fait sous le user ‘weblogic’. Cet user dispose de plusieurs variable d’environnements nécessaires à weblogic pour démarrer correctement. Il est donc important, quelque soit le mode automatique choisi d’utiliser un user weblogic ou à minima les mêmes variables d’environnements que celui-ci.
Passons à la mise en place de l’automatisation du script. Pour editer une nouvelle tâche CRON il suffit de rentrer la commande :

crontab -e

Et d’ajouter la ligne suivante (à adapter selon votre environnement) :

0 7 * * * /$DomainPath/redemarrage.sh >> /tmp/redemarrage.log 2>&1

Cette ligne lancera tous les jours à 7h00 le script précédemment réalisé et écrira le retour dans le fichier /tmp/redemarrage.log.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *