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 script startWebLogic.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>
Important

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