A cell uses Propagate rules to forward events or messages to one or more destination cells or gateways. For example, a Propagate rule can escalate an event from a lower-level cell to a higher-level cell in an environment.
Each cell has one propagation buffer and one or more destination buffers. There is a destination buffer for each destination to which the cell is propagating events. Every time an event is propagated, it occupies one entry in the propagation buffer. The entry for the event remains in the buffer as long as the propagate operation persists. A propagate operation terminates when the message has been acknowledged by the destination cell or when it has not been acknowledged within a specified time period. When the propagate operation is terminated, the event is removed from the buffer.
The originating cell has one destination buffer for each destination. Each event that is propagated occupies one entry in the destination buffer for each destination to which the event is propagated. When an event is propagated to all destinations, the event is immediately entered in the destination buffer of every destination.
Each event in the destination buffer is in either a
sent state. The event remains in the
wait state as long as the destination cell cannot be reached. The event is in a
sent state if the event was sent to the destination cell but has not yet been acknowledged. As soon as the specified time-out periods expire and the specified retries are finished, the event is removed from the destination buffer, and the propagate operation is assumed to have failed for that destination.
A Propagate rule starts with an Event Condition Formula (ECF) that must match the event under analysis to make the rule engine evaluate the rule. The Propagate rule is composed of one or more When clauses. Note that in Propagate rules, the When keyword appears at the bottom of the block unlike the syntax of the other rule phases (Execute, Abstract, Correlate) that allow
When clauses. When an event is new, the
When clauses are evaluated and propagation can be performed at that time. Later, modifications are propagated according to the different
to—Propagates to one specific cell
to all—Propagates to all cells in the list
to one_of—Propagates to only one cell in the list. Typically, cells are tried in turn. The rule engine stops when propagation is successful.
If two Propagate rules exist, one that forwards all
OPEN events and one that forwards all
CRITICAL events, an event that arrives as
CRITICAL is propagated twice, once for each Propagate rule. To avoid generating unnecessary work for the rule engine, try to avoid this situation.
You can use the
one_of propagation rule to configure event propagation so that when an event is sent and the first destination cell does not acknowledge the event within a specified time, then the next destination is tried. When each destination has been tried without success, the cell restarts with the first destination.
You can use the
all propagation rule to propagate to all destinations. In a
all propagation, an entry is entered in each destination buffer for all destinations. The propagation operation is terminated only when all destinations have either acknowledged or timed out.
The following slots for each event contains information about the path an event followed in the cell hierarchy.
mc_history—Contains the list of cells, and the identification of the event inside each cell, through which the event flowed before reaching the current cell
mc_propagations—Contains the list of cells, and their internal identifications, to which the event was forwarded
When events have been propagated by using rules, some changes are propagated automatically without the need for Propagate rules. The parameters for this mechanism reside in the mcell.propagate file. By default, status, severity, and event-specific slot changes are propagated forward, while status is propagated backward.
How individual slots propagate is configured in the mcell.propagate file. For more information about how to use and set up the propagation configuration file, see Configuring event slot propagation.