Managing HP Serviceguard for Linux, Tenth Edition, September 2012

You also need to think about what happens when a package fails. If other packages
depend on it, Serviceguard will halt those packages (and any packages that depend on
them, etc.) This happens regardless of the priority of the failed package.
By default the packages are halted in the reverse of the order in which they were started;
and if the halt script for any of the dependent packages hangs, the failed package will
wait indefinitely to complete its own halt process. This provides the best chance for all
the dependent packages to halt cleanly, but it may not be the behavior you want. You
can change it by means of the successor_halt_timeout parameter (page 208).
If you set successor_halt_timeout to zero, Serviceguard will halt the dependent
packages in parallel with the failed package; if you set it to a positive number,
Serviceguard will halt the packages in the reverse of the start order, but will allow the
failed package to halt after the successor_halt_timeout number of seconds whether
or not the dependent packages have completed their halt scripts.
If you decide to create dependencies between packages, it is a good idea to test
thoroughly, before putting the packages into production, to make sure that package
startup, halt, failover, and failback behavior is what you expect.
Extended Dependencies
To the capabilities provided by Simple Dependencies (page 130), extended dependencies
add the following:
You can specify whether the package depended on must be running or must be
down.
You define this condition by means of the dependency_condition, using one
of the literals UP or DOWN (the literals can be upper or lower case). We'll refer to
the requirement that another package be down as an exclusionary dependency;
see “Rules for Exclusionary Dependencies” (page 137).
You can specify where the dependency_condition must be satisfied: on the
same node, a different node, all nodes, or any node in the cluster.
You define this by means of the dependency_location parameter (page 211),
using one of the literals same_node, different_node, all_nodes, or
any_node.
different_node and any_node are allowed only if dependency_condition
is UP. all_nodes is allowed only if dependency_condition is DOWN.
See “Rules for different_node and any_node Dependencies” (page 137).
For more information about the dependency_ parameters, see the definitions starting
with dependency_name” (page 210), and the cmmakepkg (1m) manpage.
IMPORTANT: If you have not already done so, read the discussion of Simple
Dependencies (page 130) before you go on.
136 Planning and Documenting an HA Cluster