Utiliser des scripts pour gérer le cycle de vie des serveurs
Si un domaine n'utilise pas le gestionnaire de noeuds pour démarrer et arrêter les serveurs, vous pouvez utiliser les scripts de démarrage/arrêt par défaut du serveur à partir de WebLogic ou utiliser un script d'encapsuleur pour appeler l'outil de script WebLogic (WLST).
Meilleures pratiques pour utiliser des scripts personnalisés
N'utilisez pas de scripts personnalisés, sauf si nécessaire. Toutefois, si vous devez utiliser des scripts personnalisés pour gérer le cycle de vie des contrôles de serveur, reportez-vous aux exercices recommandés ci-après.
- Ne lisez pas l'entrée à partir des paramètres
stdin
ou de script. WebLogic La gestion envoie le nom du serveur pour les scripts de serveur géré, mais rien n'est envoyé pour le serveur d'administration. - Gérer les conditions d'erreur à chaque étape. Cela permet à la gestion WebLogic de gérer efficacement les défaillances.
- N'appelez pas de scripts tels que
startWebLogic.sh
sans critère de sortie approprié, car l'appel de ce script ne quittera pas l'appelant. Le scriptstartWebLogic.sh
démarre le serveur et ne revient pas tant que le processus serveur n'est pas terminé. Cela entraîne le blocage du plugiciel de gestion WebLogic en attente de réponse. WebLogic La gestion évite d'attendre en appelant le script, mais il est toujours recommandé de quitter un script personnalisé correctement. - Si le domaine utilise le gestionnaire de noeuds, utilisez WLST pour effectuer l'opération et appelez un script WLST à partir d'un script shell (Linux) ou d'un fichier batch (Windows).
- Si le serveur d'administration prend plus de 5 minutes, ajustez les propriétés dans
/usr/libexec/oracle-cloud-agent/plugins/oci-wlms/_internal/wls_actions/wlst/properties.json
pour fournir des valeurs optimales pour l'environnement. Exemple :"wls_max_retries": 10, (The number of times to poll for the admin server to check if the admin port is opened) "wls_sleep_interval": 30 (The polling interval)
Utilisation des scripts de démarrage/arrêt de serveur par défaut à partir de WebLogic
Utilisez startWebLogic.sh/cmd
et stopWebLogic.sh/cmd
pour le serveur d'administration et startManagedWebLogic.sh/cmd
et stopManagedWebLogic.sh/cmd
pour les serveurs gérés. Configurez les paramètres de domaine dans le service de gestion WebLogic pour utiliser ces scripts. Voir Configuration de l'application de correctifs et du contrôle de serveur.
Une fois configurée, la gestion WebLogic appelle stopWebLogic.sh
sans paramètres et scripts stop/start ManagedWebLogic.sh
en transmettant le nom du serveur en tant que paramètre.
Lors de l'utilisation de ces scripts, le service de gestion WebLogic ne surveille pas le statut de démarrage des serveurs gérés ni d'arrêt des serveurs. Cela peut mener à une opération de cycle de vie signalant le succès même si les serveurs n'ont pas été arrêtés ou démarrés avec succès.
Utiliser un script wrapper pour appeler WLST
Utilisez WLST pour vous connecter au serveur d'administration, puis utilisez la connexion au serveur d'administration pour gérer les serveurs. Le script WLST est appelé par un script shell wrapper qui est utilisé dans le paramètre de démarrage et d'arrêt du script dans la gestion WebLogic. Voici les exemples de scripts wrapper.
Arrêtez le serveur d'administration :
# stop Admin script
import sys
wls_user = <weblogic-admin-user-name>
wls_password = <weblogic-admin-password>
admin_url = <admin_url>
try:
connect(wls_user, wls_password, admin_url)
except Exception, e:
# Handle exception here and identify if the server is running
if "Error getting the initial context. There is no server running at" in str(e):
# This error means, there is no server running. So nothing to stop
sys.exit(0)
else:
sys.exit(1)
# We are connected. now shutdown the server
try:
shutdown()
sys.exit(0)
except:
# Failed to shutdown. Exit with non-zero
sys.exit(3)
Script d'interpréteur de commandes pour appeler l'opération d'arrêt de l'administration :
#!/bin/bash
# $MW_HOME - The path to the MW_HOME
$MW_HOME/oracle_common/common/bin/wlst.sh <stop-admin-python script>
Pour démarrer le serveur d'administration, fournissez le script
startWebLogic.sh
en tant que sondages de gestion WebLogic pour le port afin de déterminer si le serveur d'administration a été démarré.Démarrez le serveur géré :
# start managed server
import sys
managed_server_name = sys.argv[1]
wls_user = <weblogic-admin-user-name>
wls_password = <weblogic-admin-password>
admin_url = <admin_url>
# connect to the admin server and then start the managed server
try:
connect(wls_user, wls_password, admin_url)
except Exception, e:
# We cannot connect to admin and hence we cannot start the managed server
sys.exit(1)
# We are connected. now start the server
try:
start(managed_server_name)
sys.exit(0)
except:
# Failed to start server. Exit with non-zero
sys.exit(2)
Script pour appeler l'opération de démarrage/arrêt du serveur géré :
#!/bin/bash
# $MW_HOME - The path to the MW_HOME
SERVER_NAME=$1
$MW_HOME/oracle_common/common/bin/wlst.sh <stop/start-managedserver-python script> $SERVER_NAME