Managing HP Serviceguard A.11.20.10 for Linux, December 2012

Halting a package has a different effect from halting the node. When you halt the node, its packages
may switch to adoptive nodes (assuming that switching is enabled for them); when you halt the
package, it is disabled from switching to another node, and must be restarted manually on another
node or on the same node.
System multi-node packages run on all cluster nodes simultaneously; halting these packages stops
them running on all nodes. A multi-node package can run on several nodes simultaneously; you
can halt it on all the nodes it is running on, or you can specify individual nodes.
You can use Serviceguard Manager to halt a package, or cmhaltpkg; for example:
cmhaltpkg pkg1
This halts pkg1 and disables it from switching to another node.
7.4.2.1 Halting a Package that Has Dependencies
Before halting a package, it is a good idea to use the cmviewcl command to check for package
dependencies.
You cannot halt a package unless all the packages that depend on it are down. If you try, you’ll
see a Serviceguard message telling you why the operation failed, and the package will remain
up.
If this happens, you can repeat the halt command, this time including the dependent package(s);
Serviceguard will halt the all the packages in the correct order. First, use cmviewcl to be sure
that no other running package has a dependency on any of the packages you are halting.
7.4.2.2 Handling Failures During Package Halt
When you halt a package using cmhaltpkg, sometimes errors may occur for various reasons
resulting in the failure of the command. Serviceguard provides an option so that packages can be
halted in a way that when errors occur the halting process is aborted.
When you halt a package, if one of the non-native Serviceguard modules fails with an exit status
of 3, the halt is aborted and the package is moved to a partially_down status in a
halt_aborted state. For information about package status and state, see “Package Status and
State” (page 194).
NOTE: Non-native Serviceguard modules are those that are not delivered with the Serviceguard
product. These are additional modules such as those supplied with HP Serviceguard toolkit modules
(for example, HP Serviceguard Contributed Toolkit Suite, Oracle, NFS toolkit, and so on).
This allows errors to be cleaned up manually during the halt process thus minimizing the risk of
other follow on errors and reducing package downtime.
When a package is in the halt_aborted state, you can do one of the following:
Fix the error manually in the module that caused the package halt to abort and re-run
cmhaltpkg <pkg_name>.
Run cmhaltpkg -f option to forcefully halt the package. When this command is run, it will
halt the package even if the package is in halt_aborted state.
For example, consider the following scenario:
You have a package pkgA that is up and running on a node. The package contains the following
modules:
sg-module1
sg-module2
non-sg-module1
non-sg-module2
sg-module3
sg-module4
210 Cluster and Package Maintenance