Inyección de anomalías en un sistema de alta disponibilidad

Puede inyectar anomalías en el sistema para comprobar que el comportamiento de alta disponibilidad funciona según lo previsto.

Antes de empezar

Atención: Este recurso se proporciona para dar soporte a las pruebas de aceptación de una configuración de alta disponibilidad y solamente debe utilizarse para este fin. Al inyectar una anomalía en el sistema los recursos se inhabilitarán o fallarán de un servidor a otro y se descompensará la carga de trabajo.

Acerca de esta tarea

Puede enviar un mandato JMX a un MBean del motor de mensajería para simular un error del sistema de alta disponibilidad. Inyectar anomalías proporciona un método práctico para realizar una verificación avanzada o pruebas previas a la producción. No debe inyectar una anomalía en un sistema de producción.

Hay dos tipos de anomalías del motor de mensajería que puede simular: error local y error global. Si desea más información sobre los tipos de errores, consulte Recuperación del motor de mensajería a partir de condiciones de excepción.

Procedimiento

  1. Inicie el cliente wsadmin.
    [IBM i]Nota: [IBM i]El cliente de scripts wsadmin se ejecuta desde Qshell. [IBM i]Para obtener más información, consulte Configuración de Qshell para ejecutar scripts de WebSphere mediante el script wsadmin.

    Para obtener más información acerca del cliente wsadmin, consulte Herramienta de scripts wsadmin.

  2. Utilice un mandato JMX para crear una variable y establecer su valor en el motor de mensajería o en los motores que desea que tengan anomalías.
    Utilizando Jython:
    nombre_mbean = AdminControl.queryNames("type=SIBMessagingEngine,name=nombre_motor_mensajería,*" )
    Utilizando Jacl:
    set nombre_mbean [$AdminControl queryNames type=SIBMessagingEngine, name=nombre_motor_mensajería,*]
  3. Utilice un mandato JMX para inyectar la anomalía, utilizando la variable que se ha creado en el paso anterior.
    Para inyectar un error local en Jython:
    AdminControl.invoke(nombre_mbean, "injectFault", "LocalError")
    Para inyectar un error global en Jython:
    AdminControl.invoke(nombre_mbean, "injectFault", "GlobalError")
    Para inyectar un error local en Jacl:
    $AdminControl invoke $nombre_mbean injectFault LocalError
    Para inyectar un error global en Jacl:
    $AdminControl invoke $nombre_mbean injectFault GlobalError

Resultados

Utilice la consola administrativa para ver los resultados. Si ha configurado el sistema para la migración tras error, un error local hará que el motor de mensajería sea sustituido por otro servidor en caso de anomalía. Un error global no activa una migración tras error.

Ejemplo

Por ejemplo, para inyectar un error global en un motor de mensajería denominado myNode01.server1-bus1, utilice los siguientes mandatos:
Utilizando Jython:
myMBean = AdminControl.queryNames("type=SIBMessagingEngine,name=myNode01.
server1-bus1,*")

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

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

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjt0037_
File name: tjt0037_.html