Managing HP Serviceguard for Linux, Eighth Edition, March 2008

Planning and Documenting an HA Cluster
Package Configuration Planning
Chapter 4 129
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 (see
page 213).
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.
About External Scripts
As of Serviceguard A.11.18, the package configuration template for
modular packages explicitly provides for external scripts. These replace
the CUSTOMER DEFINED FUNCTIONS in legacy scripts and can be run
either: