You can inject failures into the system to check that the
high availability behavior functions as you expect.
Before you begin
Attention: This facility is provided to support
acceptance testing of a highly available configuration and should
only be used for that purpose. Injecting a failure into the system
will cause resources to be disabled or failed over from one server
to another and will disrupt the workload.
About this task
You can send a JMX command to a messaging engine MBean
to simulate a failure in the high availability system. Injecting failures
provides a useful way to perform advanced verification or preproduction
testing. You should not inject a failure into a production system.
There
are two types of messaging engine failure that you can simulate, local
error and global error. For more information on error types, see
Messaging engine recovery from exception conditions.
Procedure
- Start the wsadmin client.
For more information about the wsadmin client,
see Wsadmin tool.
- Use a JMX command to create a variable and set its value
to the messaging engine, or engines, that you want to fail:
set mbean_name [$AdminControl queryNames type=SIBMessagingEngine, name=messaging_engine_name,*]
- Use a JMX command to inject the failure, using the variable
you created in the previous step. To inject a local error:
$AdminControl invoke $mbean_name injectFault LocalError
To
inject a global error:$AdminControl invoke $mbean_name injectFault GlobalError
Results
Use the administrative console to view the results. If you
have configured the system for failover, a local error should cause
the messaging engine to be failed over to another server. A global
error does not cause a failover.
Example
For example, to inject a global error into a messaging engine
named
myNode01.server1-bus1:
set myMBean [$AdminControl queryNames type=SIBMessagingEngine, name=myNode01.server1-bus1,*]
Followed
by:
$AdminControl invoke $myMBean injectFault GlobalError