Injetando Defeitos em um Sistema de Alta Disponibilidade

Você pode injetar defeitos no sistema para verificar se as funções de comportamento de alta disponibilidade comportam-se da forma esperada.

Antes de Iniciar

Atenção: Este recurso é fornecido para suportar o teste de aceitação de uma configuração altamente disponível e deve ser utilizado apenas para esse propósito. A injeção de um defeito no sistema fará com que os recursos sejam desativados ou apresentem failover de um servidor para outro e interromperá a carga de trabalho.

Sobre Esta Tarefa

Você pode enviar um comando JMX para um MBean do mecanismo do sistema de mensagens para simular um defeito no sistema de alta disponibilidade. A injeção de falhas fornece uma maneira útil de fazer verificação avançada ou teste de pré-produção. Você não deve injetar um defeito em um sistema de produção.

Há dois tipos de falha do mecanismo do sistema de mensagens que você pode simular: erro local e erro global. Para obter mais informações sobre os tipos de erros, consulte Recuperação do Mecanismo do Sistema de Mensagens a partir de Condições de Exceção.

Procedimento

  1. Inicie o cliente wsadmin.
    [IBM i]Nota: [IBM i]O cliente de script wsadmin é executado do Qshell. [IBM i]Para obter informações adicionais, consulte Configurando o Qshell para Executar Scripts do WebSphere Usando o Script wsadmin.

    Para obter informações adicionais sobre o cliente wsadmin, consulte Ferramenta de Script wsadmin.

  2. Use um comando JMX para criar uma variável e configure seu valor para o mecanismo do sistema de mensagens ou mecanismos, que você deseja falhar.
    No Jython:
    mbean_name = AdminControl.queryNames("type=SIBMessagingEngine,name=messaging_engine_name,*" )
    No Jacl:
    set mbean_name [$AdminControl queryNames type=SIBMessagingEngine,name=messaging_engine_name,*]
  3. Use um comando JMX para injetar a falha, usando a variável criada na etapa anterior.
    Para injetar um erro local no Jython:
    AdminControl.invoke(mbean_name, "injectFault", "LocalError")
    Para injetar um erro global no Jython:
    AdminControl.invoke(mbean_name, "injectFault", "GlobalError")
    Para injetar um erro local no Jacl:
    $AdminControl invoke $mbean_name injectFault LocalError
    Para injetar um erro global no Jacl:
    $AdminControl invoke $mbean_name injectFault GlobalError

Resultados

Use o console administrativo para visualizar os resultados. Se você configurou o sistema para failover, um erro local deverá fazer com que o mecanismo do sistema de mensagens sofra failover em outro servidor. Um erro global não causa um failover.

Exemplo

Por exemplo, para injetar um erro global em um mecanismo do sistema de mensagens chamado myNode01.server1-bus1, use os comandos a seguir:
No Jython:
myMBean = AdminControl.queryNames("type=SIBMessagingEngine,name=myNode01.
server1-bus1,*")

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

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

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjt0037_
Nome do arquivo: tjt0037_.html