Managing HP Serviceguard A.11.20.10 for Linux, December 2012

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 113).
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 174), 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 114).
For more information about the dependency_ parameters, see the definitions starting with
dependency_name” (page 174), and the cmmakepkg (1m) manpage.
IMPORTANT: If you have not already done so, read the discussion of Simple Dependencies
(page 108) before you go on.
The interaction of the legal values of dependency_location and dependency_condition
creates the following possibilities:
Same-node dependency: a package can require that another package be UP on the same
node.
This is the case covered in the section on Simple Dependencies (page 108).
Different-node dependency: a package can require that another package be UP on a different
node.
Any-node dependency: a package can require that another package be UP on any node in
the cluster.
Same-node exclusion: a package can require that another package be DOWN on the same
node. (But this does not prevent that package from being UP on another node.)
All-nodes exclusion: a package can require that another package be DOWN on all nodes in
the cluster.
4.8.7.4.1 Rules for Exclusionary Dependencies
All exclusions must be mutual.
That is, if pkg1 requires pkg2 to be DOWN, pkg2 must also require pkg1 to be DOWN.
By creating an exclusionary relationship between any two packages, you ensure that only
one of them can be running at any time — either on a given node (same-node exclusion) or
throughout the cluster (all-nodes exclusion). A package can have an exclusionary relationship
with any number of other packages, but each such relationship must be mutual.
Priority (discussed in detail under “Dragging Rules for Simple Dependencies (page 109)) must
be set for at least one of the packages in an exclusionary relationship.
The higher-priority package can force the lower-priority package to halt or (in the case of a
same-node exclusion) move to another eligible node, if any.
dependency_location must be either same_node or all_nodes, and must be the same
for both packages.
Both packages must be failover packages whose failover_policy (page 172) is
configured_node.
4.8 Package Configuration Planning 113