Rio Project 4.2 API Documentation



org.rioproject.fdh
Class LeaseFaultDetectionHandler

java.lang.Object
  extended by org.rioproject.fdh.AbstractFaultDetectionHandler
      extended by org.rioproject.fdh.LeaseFaultDetectionHandler
All Implemented Interfaces:
FaultDetectionHandler<ServiceID>

public class LeaseFaultDetectionHandler
extends AbstractFaultDetectionHandler

The LeaseFaultDetectionHandler is used to monitor services that implement the MonitorableService interface.

The LeaseFaultDetectionHandler creates a client-side Lease with the service, and attempts to renew the lease based on a configurable lease duration time. If the lease cannot be renewed and all retry attempts have failed, the LeaseFaultDetectionHandler will notify FaultDetectionListener instances of the failure.

Additionally, the LeaseFaultDetectionHandler will register with Lookup Services for ServiceRegistrar.TRANSITION_MATCH_NOMATCH transitions for the service being monitored. If the service is adminstratively removed from the network, or the service monitoring lease is between lease renewal points and the service has actually been removed from the network, the transition will be noted and FaultDetectionListener instances will be notified of the failure.

If the service does not implement the MonitorableService interface, the LeaseFaultDetectionHandler will not manage a Lease, but will only create the event consumer for Lookup Service TRANSITION_MATCH_NOMATCH transitions.

Configuring LeaseFaultDetectionHandler

This implementation of LeaseFaultDetectionHandler supports the following configuration entries; where each configuration entry name is associated with the component name org.rioproject.fdh.LeaseFaultDetectionHandler.


The amount of time it takes for the StandardFaultDetectionListener to determine service failure for a service that implements the org.rioproject.core.MonitorableService interface is calculated as follows :
 ((num_retries + 1) * (connectivity_timeout)) + (retry_delay * num_retries)
 

Author:
Dennis Reedy

Nested Class Summary
 
Nested classes/interfaces inherited from class org.rioproject.fdh.AbstractFaultDetectionHandler
AbstractFaultDetectionHandler.ServiceMonitor
 
Field Summary
static long DEFAULT_LEASE_DURATION
           
static String LEASE_DURATION_KEY
           
 
Fields inherited from class org.rioproject.fdh.AbstractFaultDetectionHandler
config, configArgs, DEFAULT_RETRY_COUNT, DEFAULT_RETRY_TIMEOUT, proxy, RETRY_COUNT_KEY, RETRY_TIMEOUT_KEY, retryCount, retryTimeout, serviceMonitor, terminating
 
Constructor Summary
LeaseFaultDetectionHandler()
           
 
Method Summary
protected  AbstractFaultDetectionHandler.ServiceMonitor getServiceMonitor()
          Override parent's getServiceMonitor() method to create the ServiceLeaseManager
 void setConfiguration(String[] configArgs)
          Set configuration attributes for the FaultDetectionHandler.
 void setLeaseDuration(long leaseDuration)
           
 void setLeasePreparer(ProxyPreparer leasePreparer)
           
 
Methods inherited from class org.rioproject.fdh.AbstractFaultDetectionHandler
getName, monitor, notifyListeners, register, setRetryCount, setRetryTimeout, terminate, unregister
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_LEASE_DURATION

public static final long DEFAULT_LEASE_DURATION
See Also:
Constant Field Values

LEASE_DURATION_KEY

public static final String LEASE_DURATION_KEY
See Also:
Constant Field Values
Constructor Detail

LeaseFaultDetectionHandler

public LeaseFaultDetectionHandler()
Method Detail

setLeaseDuration

public void setLeaseDuration(long leaseDuration)

setLeasePreparer

public void setLeasePreparer(ProxyPreparer leasePreparer)

setConfiguration

public void setConfiguration(String[] configArgs)
Description copied from interface: FaultDetectionHandler
Set configuration attributes for the FaultDetectionHandler.

Parameters:
configArgs - Configuration attributes a FaultDetectionHandler will use to monitor the service. Values are specific to a concrete instance of the FaultDetectionHandler
See Also:
FaultDetectionHandler.setConfiguration(java.lang.String[])

getServiceMonitor

protected AbstractFaultDetectionHandler.ServiceMonitor getServiceMonitor()
                                                                  throws Exception
Override parent's getServiceMonitor() method to create the ServiceLeaseManager

Specified by:
getServiceMonitor in class AbstractFaultDetectionHandler
Returns:
A ServiceMonitor
Throws:
Exception - if the ServiceMonitor cannot be created

Copyright © Rio Project.

Copyright © 2006-2011 Rio Project. All Rights Reserved.