Managing HP Serviceguard for Linux Ninth Edition, April 2009

But you also need to weigh the relative importance of the packages. If pkg2 runs a
database that is central to your business, you probably want it to run undisturbed, no
matter what happens to application packages that depend on it. In this case, the database
package should have the highest priority.
Note that, if no priorities are set, the dragging rules favor a package that is depended
on over a package that depends on it.
Consider assigning a higher priority to a dependent package if it is about equal in
real-world importance to the package it depends on; otherwise assign the higher priority
to the more important package, or let the priorities of both packages default.
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 200).
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 121), 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 127).
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 203), using
one of the literals same_node, different_node, all_nodes, or any_node.
126 Planning and Documenting an HA Cluster