Utilisation de scripts pour gérer le cycle de vie des serveurs

Si un domaine n'utilise pas de gestionnaire de noeuds pour démarrer et arrêter des serveurs, vous pouvez utiliser les scripts de démarrage/d'arrêt par défaut du serveur à partir de WebLogic ou utiliser un script wrapper pour appeler WLST (WebLogic Scripting Tool).

Meilleures pratiques pour l'utilisation de 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 du contrôle du serveur, passez en revue les pratiques recommandées suivantes.

  • Ne lisez pas l'entrée à partir de stdin ou des paramètres 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érez les conditions d'erreur à chaque étape. Cela permet à WebLogic Management de gérer efficacement les échecs.
  • N'appelez pas de scripts comme startWebLogic.sh sans critère de sortie approprié car l'appel de ce script ne quittera pas l'appelant. Le script startWebLogic.sh démarre le serveur et ne revient pas tant que le processus serveur n'est pas arrêté. Cela entraîne le blocage du module d'extension 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é progressivement.
  • 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 dure 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. Exemples :
    "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/d'arrêt du 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 WebLogic Management pour utiliser ces scripts. Reportez-vous à la section Configuring Patching and Server Control.

Une fois configurée, la gestion WebLogic appelle le fichier stopWebLogic.sh sans paramètres et sans scripts stop/start ManagedWebLogic.sh en transmettant le nom de serveur en tant que paramètre.

Lors de l'utilisation de ces scripts, la gestion WebLogic ne surveille ni n'interroge le statut du démarrage des serveurs gérés ni de l'arrêt des serveurs. Cela peut entraîner le succès d'une opération de cycle de vie, même si les serveurs n'ont pas été arrêtés ou démarrés correctement.

Utiliser un script wrapper pour appeler WLST

Elle utilise WLST pour se connecter au serveur d'administration, puis la connexion au serveur d'administration pour gérer les serveurs. Le script WLST est appelé par un script shell de wrapper qui est utilisé dans le paramètre de script de démarrage et d'arrêt dans la gestion WebLogic. Voici des exemples de scripts wrapper.

Arrêter 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 shell permettant d'appeler l'opération d'arrêt d'administration :

#!/bin/bash

# $MW_HOME - The path to the MW_HOME
$MW_HOME/oracle_common/common/bin/wlst.sh <stop-admin-python script>
Important

Pour démarrer le serveur d'administration, fournissez le script startWebLogic.sh lors de l'interrogation de gestion WebLogic sur le port afin de déterminer si le serveur d'administration a été démarré.

Démarrer 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 permettant d'appeler l'opération de démarrage/d'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