| 
GigaSpaces XAP 9.1 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.jini.discovery.LookupLocatorDiscovery
public class LookupLocatorDiscovery
This class encapsulates the functionality required of an entity that wishes to employ the unicast discovery protocol to discover a lookup service. This utility provides an implementation that makes the process of finding specific lookup services much simpler for both services and clients.
Because this class participates in only the unicast discovery protocol, and because the unicast discovery protocol imposes no restriction on the physical location of the entity relative to a lookup service, this utility can be used to discover lookup services running on hosts that are located far from, or near to, the host on which the entity is running. This lack of a restriction on location brings with it a requirement that the discovering entity supply this class with specific information about the desired lookup services; namely, the location of the device(s) hosting each lookup service. This information is supplied through an instance of theLookupLocator class.
---------------------------------------
 Fix 20.7.2007 GigaSpaces issue GS-2216:
 ---------------------------------------
 
 The LookupLocatorDiscovery fix provides the ability to periodically
 test the reachability of discovered lookup service instances,as well as
 providing the option to declare retry intervals used to re-establish
 communication with a failed lookup service.
 This approach included in this project provides a more responsive unicast
 discovery approach by declaring the interval(s) the utility will sleep betwen
 unicast discovery attempts (or retries), and also provides a means to verify
 lookup service availability by periodically obtaining infomration from the
 backend implementation.
 
 The default behavior of the LookupLocatorDiscovery utility has been modified to
 create an internal DiscoveryListener that will create a LookAliveTask per
 discovered LookupService instance. Each LookupAliveTask will periodically invoke
 the ServiceRegistrar.getLocator() method (resulting in a round trip to the
 backend implementation). If a non-recoverable exception occurs (ConnectException
 or otherwise) the LookAliveTask will discard the ServiceRegistrar in question.
 The periodicity of the LookupAliveTask can be controlled by the
 com.gigaspaces.unicast.interval system property. The default interval is 1 minute.
 
 Example :
 
 -Dcom.gigaspaces.unicast.ping=5000
 
 Will cause the LookupLocatorDiscovery utility to wait 5 seconds between
 invocations of the getLocator() method.
 
 The LookupLocatorDiscovery unicast retry (sleep) intervals have been untouched.
 If the user wishes to tune the unicast retry intervals, the
 com.gigaspaces.unicast.interval system property is used to control the
 behavior of this LookupLocatorDiscovery utility. A comma separated list of values
 defining the intervals to wait between subsequent retries. Values are declared
 in milliseconds.
 
 Example :
 
 -Dcom.gigaspaces.unicast.interval=5000
 
 Will cause the LookupLocatorDiscovery utility to wait 5 seconds between retries
 
 -Dcom.gigaspaces.unicast.interval=5000,10000
 
 Will cause the LookupLocatorDiscovery utility to first wait 5 seconds, then
 10 seconds between retries. This declaration provides a graduating approach
 (similar in approach to the default settings), increasing the amount of time to
 wait before the next discovery attempt should be made - upon each invocation,
 eventually reaching a maximum time interval over which discovery is re-tried.
 In this way, the network is not flooded with unicast discovery requests
 referencing a lookup service that may not be available for quite some time (if ever).| Constructor Summary | |
|---|---|
LookupLocatorDiscovery(LookupLocator[] locators)
Creates an instance of this class ( LookupLocatorDiscovery),
 with an initial array of LookupLocators to be managed. | 
|
LookupLocatorDiscovery(LookupLocator[] locators,
                       Configuration config)
Constructs a new lookup locator discovery object, set to discover the given set of locators, and having the given Configuration. | 
|
| Method Summary | |
|---|---|
 void | 
addDiscoveryListener(DiscoveryListener l)
Add a DiscoveryListener to the listener set.  | 
 void | 
addLocators(LookupLocator[] locators)
Adds a set of locators to the managed set of locators.  | 
 void | 
discard(ServiceRegistrar proxy)
Removes an instance of ServiceRegistrar from the managed set
 of lookup services, making the corresponding lookup service eligible for
 re-discovery. | 
 LookupLocator[] | 
getDiscoveredLocators()
Returns the set of LookupLocator objects representing the
 desired lookup services that are currently discovered. | 
 LookupLocator[] | 
getLocators()
Returns an array consisting of the elements of the managed set of locators; that is, instances of LookupLocator in which each
 instance corresponds to a specific lookup service to discover. | 
 ServiceRegistrar[] | 
getRegistrars()
Returns an array of instances of ServiceRegistrar, each
 corresponding to a proxy to one of the currently discovered lookup
 services. | 
 LookupLocator[] | 
getUndiscoveredLocators()
Returns the set of LookupLocator objects representing the
 desired lookup services that have not yet been discovered. | 
 void | 
removeDiscoveryListener(DiscoveryListener l)
Remove a DiscoveryListener from the listener set.  | 
 void | 
removeLocators(LookupLocator[] locators)
Deletes a set of locators from the managed set of locators, and discards any already-discovered lookup service that corresponds to a deleted locator.  | 
 void | 
setLocators(LookupLocator[] locators)
Replaces all of the locators in the managed set with locators from a new set, and discards any already-discovered lookup service that corresponds to a locator that is removed from the managed set as a result of an invocation of this method.  | 
 void | 
terminate()
Terminates all threads, ending all locator discovery processing being performed by the current instance of this class.  | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public LookupLocatorDiscovery(LookupLocator[] locators)
LookupLocatorDiscovery),
 with an initial array of LookupLocators to be managed. For
 each managed LookupLocator, unicast discovery is performed
 to obtain a ServiceRegistrar proxy for that lookup service.
locators - the locators to discover
NullPointerException - input array contains at least one
                                        null element
public LookupLocatorDiscovery(LookupLocator[] locators,
                              Configuration config)
                       throws ConfigurationException
Configuration.
 
 For each managed LookupLocator, unicast discovery is
 performed to obtain a ServiceRegistrar proxy for that lookup
 service.
locators - the locators to discoverconfig - an instance of Configuration, used to obtain
 the objects needed to configure the current instance of this class
ConfigurationException - indicates an exception occurred
                                        while retrieving an item from the
                                        given Configuration
NullPointerException - input array contains at least one
                                        null element or
                                        null is input for the
                                        configuration| Method Detail | 
|---|
public void addDiscoveryListener(DiscoveryListener l)
addDiscoveryListener in interface DiscoveryManagementl - the new DiscoveryListener to add
NullPointerException - this exception occurs when
                                        null is input to the
                                        listener parameter l.
IllegalStateException - this exception occurs when this
                                        method is called after the
                                        terminate method has
                                        been called.removeDiscoveryListener(net.jini.discovery.DiscoveryListener)public void removeDiscoveryListener(DiscoveryListener l)
removeDiscoveryListener in interface DiscoveryManagementl - the existing DiscoveryListener to remove
IllegalStateException - this exception occurs when this method is called after the
          terminate method has been called.addDiscoveryListener(net.jini.discovery.DiscoveryListener)public ServiceRegistrar[] getRegistrars()
ServiceRegistrar, each
 corresponding to a proxy to one of the currently discovered lookup
 services. For each invocation of this method, a new array is returned.
getRegistrars in interface DiscoveryManagementServiceRegistrar, each
         corresponding to a proxy to one of the currently discovered
         lookup services
IllegalStateException - this exception occurs when this method is called after the
          terminate method has been called.ServiceRegistrar, 
DiscoveryManagement.removeDiscoveryListener(net.jini.discovery.DiscoveryListener)public void discard(ServiceRegistrar proxy)
ServiceRegistrar from the managed set
 of lookup services, making the corresponding lookup service eligible for
 re-discovery. This method takes no action if the parameter input to this
 method is null, or if it does not match (using
 equals) any of the elements in the managed set.
discard in interface DiscoveryManagementproxy - the instance of ServiceRegistrar to discard
 from the managed set of lookup services
IllegalStateException - this exception occurs when this method is called after the
          terminate method has been called.ServiceRegistrar, 
DiscoveryManagement.discard(net.jini.core.lookup.ServiceRegistrar)public void terminate()
terminate in interface DiscoveryManagementDiscoveryManagement.terminate()public LookupLocator[] getLocators()
LookupLocator in which each
 instance corresponds to a specific lookup service to discover. The
 returned set will include both the set of LookupLocators
 corresponding to lookup services that have already been discovered as
 well as the set of those that have not yet been discovered. If the
 managed set of locators is empty, this method will return the empty
 array. This method returns a new array upon each invocation.
getLocators in interface DiscoveryLocatorManagementLookupLocator array consisting of the elements of
         the managed set of locators
IllegalStateException - this exception occurs when this method is called after the
          terminate method has been called.DiscoveryLocatorManagement.getLocators(), 
setLocators(net.jini.core.discovery.LookupLocator[])public void addLocators(LookupLocator[] locators)
LookupLocator.equals
 method) elements already in the managed set will be ignored. If the empty
 array is input, the managed set of locators will not change.
addLocators in interface DiscoveryLocatorManagementlocators - LookupLocator array consisting of the
 locators to add to the managed set.
NullPointerException - this exception occurs when either
                                        null is input to the
                                        locators parameter,
                                        or one or more of the elements of
                                        the locators
                                        parameter is null.
IllegalStateException - this exception occurs when this
                                        method is called after the
                                        terminate method has
                                        been called.DiscoveryLocatorManagement.addLocators(net.jini.core.discovery.LookupLocator[]), 
removeLocators(net.jini.core.discovery.LookupLocator[])public void setLocators(LookupLocator[] locators)
null
 and non-empty.
setLocators in interface DiscoveryLocatorManagementlocators - LookupLocator array consisting of the
 locators that will replace the current locators in the managed set.
NullPointerException - this exception occurs when either
                                        null is input to the
                                        locators parameter,
                                        or one or more of the elements of
                                        the locators
                                        parameter is null.
IllegalStateException - this exception occurs when this
                                        method is called after the
                                        terminate method has
                                        been called.DiscoveryLocatorManagement.setLocators(net.jini.core.discovery.LookupLocator[]), 
getLocators()public void removeLocators(LookupLocator[] locators)
removeLocators in interface DiscoveryLocatorManagementlocators - LookupLocator array consisting of the
 locators that will be removed from the managed set.
NullPointerException - this exception occurs when either
                                        null is input to the
                                        locators parameter,
                                        or one or more of the elements of
                                        the locators
                                        parameter is null.
IllegalStateException - this exception occurs when this
                                        method is called after the
                                        terminate method has
                                        been called.DiscoveryLocatorManagement.removeLocators(net.jini.core.discovery.LookupLocator[]), 
addLocators(net.jini.core.discovery.LookupLocator[])public LookupLocator[] getDiscoveredLocators()
LookupLocator objects representing the
 desired lookup services that are currently discovered. If no lookup
 services are currently discovered, this method returns the empty array.
 This method returns a new array upon each invocation.
LookupLocator array consisting of the elements from
         the managed set of locators that correspond to lookup services
         that have already been discovered.
IllegalStateException - this exception occurs when this method is called after the
          terminate method has been called.public LookupLocator[] getUndiscoveredLocators()
LookupLocator objects representing the
 desired lookup services that have not yet been discovered. If all of the
 desired lookup services are currently discovered, this method returns the
 empty array. This method returns a new array upon each invocation.
LookupLocator array consisting of the elements from
         the managed set of locators that correspond to lookup services
         that have not yet been discovered.
IllegalStateException - this exception occurs when this method is called after the
          terminate method has been called.
  | 
GigaSpaces XAP 9.1 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||