[AIX Solaris HP-UX Linux Windows][z/OS]

Creating health policies

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.


  1. In the administrative console, click Operational policies > Health policies > New.
  2. 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.
  3. 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.
  4. Review and save your health policy.


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
  1. Enable the PMI connection pool percentUsed sub-stat on the server, which the policy will apply, by navigating to Monitoring and Tuning > Performance Monitoring Infrastructure(PMI) > [server] > Configuration > Custom.
  2. Locate the connection pool under JDBC Connection Pools.
  3. Select the PercentUsed counter.
  4. Click Enable.
  5. Save and synchronize the change.
  6. Restart the Server.
Create the Custom Health Policy
  1. Using the administrative console, click Operational policies > Health policies > New.
  2. Provide a Name and select Custom health condition in the radio button.
  3. 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 /.

  4. The generic expression is
    operand$moduleName$subStatMetric[0]\/subStatMetric[n]/metricName operator value
  5. 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
  6. 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 System administration > Task management > Runtime tasks 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.