Previous | Table of Contents | Next |
Based on the MEMB FaultMonitoringGranularity and the PULL FaultMonitoringStyle, the Replication Manager chooses a pull-based
Fault Detector to monitor a member of the object group. The pull-based Fault Detector periodically pings the member by invoking
the is_alive() operation of the PullMonitorable interface that the member of the object group inherits. The period of the
ping is determined by the FaultMonitoringInterval for the object group. The pull-based Fault Detector uses the monitoring
interval as a hint (in contrast to maintaining the exact value) to optimize monitoring across a number of objects.
23.4.4.1 PULL Fault Monitoring Style
In the PULL FaultMonitoringStyle, the Fault Detector periodically invokes the object to check its liveness; the monitored
object responds to these liveness requests. The monitored object must inherit the PullMonitorable interface. The Fault Detector
invokes the is_alive() operation of this interface to check the liveness of the object.
Figure 23-9 shows the interactions between the monitored object represented by the
PullMonitorable interface and the Fault Detector for the PULL FaultMonitoringStyle, and the interactions with the Fault Notifier
and the Replication Manager.
Replication Manager
push_structured_event() or push_sequence_event()
Fault Notifier
push_structured_fault() or push_sequence_fault()
FaultDetector
Figure 23-9 PULL FaultMonitoringStyle.
23.4.4.2 PullMonitorable Interface
module FT { interface PullMonitorable boolean is_alive(); }; };
is_alive
This operation informs the pull-based Fault Detector whether the object is able to accept requests and produce replies. The
monitored object may return true directly to indicate its liveness, or it may perform an application-specific “health? check
(for example, assertion check) within the operation and return false if the test shows that the object is in an inconsistent
state.
boolean is_alive();
Return Value
Returns true if the object is alive and ready to take further requests, and false otherwise.