Fehler in einem System mit hoher Verfügbarkeit provozieren

Sie können Fehler im System provozieren, um sicherzustellen, dass die Funktionen für hohe Verfügbarkeit wie erwartet arbeitet.

Vorbereitende Schritte

Achtung: Mit dieser Task können Sie eine hoch verfügbare Konfiguration testen. Diese Task ist ausschließlich zu diesem Zweck bestimmt. Wenn Sie einen Fehler im System provozieren, werden Ressourcen inaktiviert oder auf einen anderen Server übertragen. Dabei wird die Verarbeitung der Arbeitslast unterbrochen.

Informationen zu diesem Vorgang

Sie können einen JMX-Befehl an die MBean einer Messaging-Engine senden, um eine Fehler im hoch verfügbaren System zu simulieren. Das Provozieren von Fehlern ist eine hilfreiche Methode für die Durchführung erweiterter Prüfprozeduren und Tests, bevor das System in Produktion genommen wird. Sollten auf keinen Fall Fehler in einem Produktionssystem provozieren.

Es gibt zwei Arten von Fehlern bei Messaging-Engines, die Sie simulieren können: lokale und globale Fehler. Nähere Informationen zu diesen Fehlertypen finden Sie im Artikel Wiederherstellung der Messaging-Engine nach Ausnahmen.

Vorgehensweise

  1. Starten Sie den wsadmin-Client.
    [IBM i]Anmerkung: [IBM i]Der Scripting-Client wsadmin wird über die Qshell ausgeführt. [IBM i]Weitere Informationen finden Sie unter Qshell für die Ausführung von WebSphere-Scripts mit wsadmin-Scripting konfigurieren.

    Nähere Informationen zum wsadmin-Client finden Sie im Artikel Scripting-Tool "wsadmin".

  2. Erstellen Sie mit einem JMX-Befehl eine Variable, und definieren Sie mit dieser Variablen die Messaging-Engines, für die Sie einen Fehler provozieren möchten.
    In Jython:
    MBean-Name = AdminControl.queryNames("type=SIBMessagingEngine,name=Name_der_Messaging-Engine,*" )
    In Jacl:
    set MBean-Name [$AdminControl queryNames type=SIBMessagingEngine, name=Name_der_Messaging-Engine,*]
  3. Provozieren Sie mit einem JMX-Befehl den Fehler und verwenden Sie hierfür die Variable, die Sie im vorherigen Schritt erstellt haben.
    Provokation eines lokalen Fehlers in Jython:
    AdminControl.invoke(MBean-Name, "injectFault", "LocalError")
    Provokation eines globalen Fehlers in Jython:
    AdminControl.invoke(MBean-Name, "injectFault", "GlobalError")
    Provokation eines lokalen Fehlers in Jacl:
    $AdminControl invoke $MBean-Name injectFault LocalError
    Provokation eines globalen Fehlers in Jacl:
    $AdminControl invoke $MBean-Name injectFault GlobalError

Ergebnisse

Prüfen Sie in der Administrationskonsole die Ergebnisse. Wenn Sie das System für Failover konfiguriert haben, sollte ein lokaler Fehler dazu führen, dass die Arbeitslast der Messaging-Engine an einen anderen Server übertragen wird. Bei einem globalen Fehler wird kein Failover durchgeführt.

Beispiel

Verwenden Sie die folgenden Befehle, um einen globalen Fehler in einer Messaging-Engine mit dem Namen myNode01.server1-bus1 zu provozieren:
In Jython:
myMBean = AdminControl.queryNames("type=SIBMessagingEngine,name=myNode01.
server1-bus1,*")

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

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

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjt0037_
Dateiname:tjt0037_.html