将故障注入高可用性系统

可以将故障注入系统以检查高可用性行为是否按您所期望的方式工作。

开始之前

注意: 提供此设施的目的是支持高可用性配置的容错测试,并且此设施只应该用于该用途。将故障注入系统的操作将导致资源被禁用或者从一个服务器进行故障转移以切换至另一个服务器,并且将使工作负载中断。

关于此任务

可以将一条 JMX 命令发送至消息传递引擎 MBean 以在高可用性系统中模拟故障。注入故障的操作提供了一种非常有用的方法来执行高级验证或生产前测试。您不应该将故障注入到生产系统中。

您可以模拟两类消息传递引擎故障:局部错误和全局错误。有关错误类型的更多信息,请参阅从异常情况恢复消息传递引擎

过程

  1. 启动 wsadmin 客户机。
    [IBM i]注: [IBM i]wsadmin 脚本编制客户机通过 Qshell 运行. [IBM i]有关更多信息,请参阅 使用 wsadmin 脚本编制配置 Qshell 以运行 WebSphere 脚本.

    有关 wsadmin 客户机的更多信息,请参阅wsadmin 脚本编制工具

  2. 使用 JMX 命令创建变量并将其值设置为要使之失败的消息传递引擎。
    在 Jython 中:
    mbean_name = AdminControl.queryNames("type=SIBMessagingEngine,name=messaging_engine_name,*" )
    在 Jacl 中:
    set mbean_name [$AdminControl queryNames type=SIBMessagingEngine,name=messaging_engine_name,*]
  3. 通过使用您在上一个步骤中创建的变量,使用 JMX 命令来注入故障。
    在 Jython 中注入局部错误:
    AdminControl.invoke(mbean_name, "injectFault", "LocalError")
    在 Jython 中注入全局错误:
    AdminControl.invoke(mbean_name, "injectFault", "GlobalError")
    在 Jacl 中注入局部错误:
    $AdminControl invoke $mbean_name injectFault LocalError
    在 Jacl 中注入全局错误:
    $AdminControl invoke $mbean_name injectFault GlobalError

结果

使用管理控制台来查看结果。如果已经为系统配置了故障转移功能,那么局部错误应该会导致消息传递引擎故障转移到另一台服务器。全局错误不会导致故障转移。

示例

例如,要将全局错误注入到名为 myNode01.server1-bus1 的消息传递引擎中,请使用以下命令:
在 Jython 中:
myMBean = AdminControl.queryNames("type=SIBMessagingEngine,name=myNode01.
server1-bus1,*")

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

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

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjt0037_
文件名:tjt0037_.html