Simulation d'incidents dans un système haute disponibilité

Vous pouvez simuler des incidents dans le système pour vérifier que le comportement de la haute disponibilité fonctionne comme prévu.

Avant de commencer

Avertissement : Cette fonction permet de prendre en charge le test fonctionnel d'une configuration à haute disponibilité et ne doit être utilisée qu'à ces fins. La simulation d'un incident sur le système entraîne la désactivation des ressources ou leur basculement d'un serveur sur un autre avec dysfonctionnement de la charge de travail.

Pourquoi et quand exécuter cette tâche

Vous pouvez envoyer une commande JMX à un MBean de moteur de messagerie pour simuler un incident sur le système à haute disponibilité. La simulation d'incidents permet d'effectuer des tests de vérification et de préproduction avancés. Vous ne devez pas simuler d'incident sur un système de production.

Il existe deux types d'incident de moteur de messagerie pouvant être simulés : une erreur locale et une erreur globale. Pour plus d'informations sur les types d'erreurs, voir Récupération d'un moteur de messagerie depuis des conditions d'exception.

Procédure

  1. Démarrez le client wsadmin.
    [IBM i]Remarque : [IBM i]Le client de scriptage wsadmin est exécuté à partir de Qshell. [IBM i]Pour plus d'informations, voir Configuration de Qshell pour exécuter des scripts WebSphere à l'aide de l'outil de scriptage wsadmin.

    Pour plus d'informations sur le client wsadmin, voir Outil de scriptage wsadmin.

  2. Utilisez une commande JMX pour créer une variable et définir sa valeur pour le ou les moteurs de messagerie qui doivent tomber en panne.
    Dans Jython :
    nom_mbean = AdminControl.queryNames("type=SIBMessagingEngine,name=nom_moteur_messagerie,*" )
    Dans Jacl :
    set
    nom_mbean
    [$AdminControl queryNames type=SIBMessagingEngine,
    name=nom_moteur_messagerie,*]
  3. Utilisez une commande JMX pour simuler l'échec, à l'aide de la variable créée à l'étape précédente.
    Pour simuler une erreur locale dans Jython, procédez comme suit :
    AdminControl.invoke(nom_mbean, "injectFault", "LocalError")
    Pour simuler une erreur globale dans Jython, procédez comme suit :
    AdminControl.invoke(nom_mbean, "injectFault", "GlobalError")
    Pour simuler une erreur locale dans Jacl, procédez comme suit :
    $AdminControl
    invoke $nom_mbean injectFault LocalError
    Pour simuler une erreur globale dans Jacl, procédez comme suit :
    $AdminControl invoke
    $nom_mbean injectFault GlobalError

Résultats

La console d'administration permet d'afficher les résultats. Si vous avez configuré le système pour la reprise en ligne, une erreur locale doit entraîner le basculement du moteur de messagerie sur un autre serveur. Une erreur globale n'entraîne pas de reprise en ligne.

Exemple

Par exemple, pour générer une erreur globale dans le moteur de messagerie myNode01.server1-bus1, utilisez la commande suivante :
Dans Jython :
myMBean = AdminControl.queryNames("type=SIBMessagingEngine,name=myNode01.
server1-bus1,*")

$AdminControl invoke $myMBean injectFault GlobalError
Dans Jacl :
set myMBean [$AdminControl queryNames type=SIBMessagingEngine, name=myNode01.server1-bus1,*]

AdminControl.invoke(myMBean, "injectFault", "GlobalError")

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjt0037_
Nom du fichier : tjt0037_.html