A health policy is the definition of specific health criteria. Intelligent Management protects your environment against these criteria. The
health management function uses defined policy to identify software malfunctions in the
environment.
Before you begin
- To create a health policy, you require configurator or administrator administrative privilege.
The health controller must be enabled.
- If you want a custom action to run on the target server when the health condition
breaches, define the custom action before you create the health policy. For more information, read
about creating health policy custom actions.
About this task
Health policies work with the health controller to monitor the operation of the servers in
your environment. When the health controller detects that your servers are not meeting a defined
health policy, you can take action to fix the problem. You can notify the administrator of problems,
or Intelligent Management can fix the problems automatically.
Procedure
-
In the administrative console, click .
-
Define health condition properties for the health policy.
Remember: The excessive request timeout and storm drain conditions do not apply to Java™ Message Service (JMS) and Internet Inter-ORB Protocol (IIOP)
traffic.
Health policy conditions include the following properties:
- Set properties that pertain to the health condition that you selected. If you chose to
create a custom health condition, specify a subexpression that represents the metrics that you are
evaluating in your custom condition. For more information about the conditions that you can set,
click Syntax help.
As a best practice, consider the cost of collecting the data, analyzing the data, and if needed,
enforcing the health policy when you define a custom condition. Consider the amount of traffic in
your network, especially when you scale out the number of servers that produce data. Before
introducing new health policies into the production environment, analyze these aspects of your
custom health conditions.
You can further configure your custom health conditions that
leverage PMI modules, notably the webAppModules
, at finer granularities than the
server granularity. For example, you can use the subexpression builder to create a
webAppModule
policy as a starting point, then edit the expression to define a finer
granularity:
PMIMetric_FromServerStart$webAppModule$SlamSess\#SlamSess.war\/webAppModule.servlets\/SlamSess\/responseTime > 100L
In
this example, the application name is displayed as SlamSess when you list the
applications in the administrative console. If you are using an EAR file, specify the Web archive
(WAR) file name after the EAR file name. If the WAR is not embedded in an EAR file, specify only the
WAR file name. The SlamSess value is the servlet name that is listed in the
web.xml file. The responseTime value is the statistic
that is listed in the Performance Monitoring Infrastructure (PMI) module definition.
- Choose a reaction mode. Supervise mode allows the administrator to
approve or reject actions before they are taken.
- Select the actions to take when the health policy conditions are not met. The available actions
depend on the health condition type.These actions can be the existing default actions, or you
can define custom actions to run an executable file. A list of actions are displayed in the sequence
in which they run when the health condition breaches. You can add and remove steps from this
list.
- If you select a custom action for your health policy, you must indicate
the targets for your custom action. If you select Node hosting the sick
server as your target node, the target server options are Node agent of the
sick server and Sick server.
-
Select the members to monitor.
Layers of logic can apply to monitored members. For example, you might want to apply a
specific health policy to each member of a cluster and to an application server outside of the
cluster.
-
Review and save your health policy.
Results
You created a health policy and applied that policy to a target environment. The health
controller monitors the conditions that you defined for the health policy members, and takes the
defined actions on the members when the conditions in the health policy breach.
Specifying a specific connection pool in a health policy
This is an example of specifying a specific connection pool in a health policy. JDBC connection
pools typically have a forward slash (/
) in the resource name, for example
jdbc/PlantsByWebSphereDataSource. This example requires (1) that you enable PMI
on the JDBC Connection Pool, followed by (2) Creating the custom health policy.
Enable PMI on the JDBC Connection Pool
- Enable the PMI connection pool percentUsed sub-stat on the server, which the policy will apply,
by navigating to .
- Locate the connection pool under JDBC Connection Pools.
- Select the PercentUsed counter.
- Click Enable.
- Save and synchronize the change.
- Restart the Server.
Create the Custom Health Policy
- Using the administrative console, click .
- Provide a Name and select Custom health condition in the radio
button.
- Create the custom policy for the resource name,
jdbc/PlantsByWebSphereDataSource. The policy should look
like:
PMIMetric_FromLastInterval$connectionPoolModule$Derby\ JDBC\ Provider\/jdbc\\\/PlantsByWebSphereDataSource/percentUsed >= 30L
Note
that the separators are the space character \/
and /
.
- The generic expression is
operand$moduleName$subStatMetric[0]\/subStatMetric[n]/metricName operator value
.
- The field breakdown for creating this custom health policy is listed
here:
operand: PMIMetric_FromLastInterval
moduleName: connectionPoolModule
subStatMetric[0]: Derby JDBC Provider
subStatMetric[1]: jdbc/PlantsByWebSphereDataSource
metricName: percentUsed
operator: >=
value: 30L
- Within these fields, space characters must be escaped with
\
, and a forward
slash (/
) must be escaped by \\\
.
What to do next
If you chose the Supervise reaction mode, then you receive recommendations
to improve your health conditions. These recommendations display as runtime tasks that you can
accept, deny, or close. To manage runtime tasks, click in the administrative console. If you chose the Automatic
reaction mode, actions to improve the health of your environment occur automatically.
For supervised reaction mode runtime tasks, you can set the Java virtual machine (JVM)
com.ibm.ws.xd.hmm.controller.ControlConfig.approvalTimeOutMinutes
custom property,
which specifies the number of minutes that can pass before a runtime task for the health controller
expires. If you set the value to 5 minutes or less, the default value of 30 minutes is automatically
used instead. If you do not take any actions on the runtime task, the task expires in the number of
minutes that is specified in this property. If the runtime task expires when the health condition
still exists, a new runtime task is generated.
If you configure your health policies often, consider using AdminTask commands
to automate the process.