depend
Format
depend = ["component_name:session|stateless"]
Description
The depend keyword specifies a comma-separated list of inter-process
dependencies. The arguments include:
- component_name
- The name of the prerequisite component. A component can have zero or more dependencies.
- session
-
If a component must be stopped or restarted, PLMS first stops the component that depends on it (specified by component_name). Typically, you specify session when there is a client-server relationship between the components, and the server maintains client information.
- stateless
- If a component must be stopped or restarted, the component that depends on
it is unaffected. For example, if there's a client-server relationship
between the components, but the server doesn't maintain any client
information, it's not necessary to restart clients if the server is
restarted. If
comp_bdepends oncomp_a, andcomp_afails, the process of startingcomp_bwill causecomp_ato start again even if the recovery forcomp_asays it should not be started again on failure.
Default
None.
Multiplicity
Zero or one instance in a component block.
Constraints
-
The dependency must be resolvable at the end of the parsing. Any unresolvable dependency in the configuration files gets rejected.
-
All the dependencies of a component are started before the component itself is started.
-
All the session dependencies of a component are stopped before the component itself is stopped.
-
If a component appears more than once in the dependency list, then the configuration file is rejected.
-
If a component fails and repair is set to RESTART, then the component enters the FAULT state when max_tries is exhausted. If repair is set to FAULT, the component state becomes FAULT. The FAULT component can only be started/stopped by explicitly calling fsp_plms_Action() with a start or stop action, or by using start_components()/stop_components() from another component configuration.
-
If a component fails and repair is set to NONE, then only the component is stopped; the session dependencies are not affected.
Example
depend = ["comp_1:session", "comp_2:stateless"]
