|
Oracle® Coherence Java API Reference Release 3.7.1.0 E22843-01 |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Cluster
The Cluster interface represents a collection of services that operate in a clustered network environment.
Nested Class Summary | |
---|---|
static interface |
Cluster.MemberTimeoutAction MemberTimeoutAction is taken by the cluster service to remove members from the cluster who have exceeded a network timeout (e.g. packet-timeout). |
Method Summary | |
---|---|
Service |
ensureService(java.lang.String sName, java.lang.String sType) Obtains a Service object for the specified service name and type. |
java.lang.String |
getClusterName() Determine the configured name for the Cluster. |
Member |
getLocalMember() Returns a Member object representing the local (i.e. this JVM) member of the cluster. |
Registry |
getManagement() Returns the current management registry. |
java.util.Set |
getMemberSet() Returns a Set of Member objects, one for each Member of the cluster. |
Member |
getOldestMember() Returns a Member object representing the senior cluster member. |
Disposable |
getResource(java.lang.String sName) Retrieves a Disposable resource that was previously registered using registerResource(String, Disposable) . |
Service |
getService(java.lang.String sName) Returns a Service object for the specified service name. |
ServiceInfo |
getServiceInfo(java.lang.String sName) Returns a ServiceInfo object for the specified service name. |
java.util.Enumeration |
getServiceNames() Returns an Enumeration of String objects, one for each service that has been previously registered in the cluster. |
long |
getTimeMillis() Returns the current "cluster time", which is analogous to the System.currentTimeMillis() except that the cluster time is the roughly the same for all Members in the cluster. |
void |
registerResource(java.lang.String sName, Disposable resource) Registers the passed Disposable resource with the Cluster, using the specified name. |
void |
setManagement(Registry registry) Sets the current management registry. |
Disposable |
unregisterResource(java.lang.String sName) Unregisters a resource with the specified name. |
Methods inherited from interface com.tangosol.util.Controllable |
---|
configure, isRunning, shutdown, start, stop |
Methods inherited from interface com.tangosol.io.ClassLoaderAware |
---|
getContextClassLoader, setContextClassLoader |
Method Detail |
---|
java.util.Enumeration getServiceNames()
For each name, a call to getServiceInfo(String)
will return a ServiceInfo describing a service. However, the call to getService(String)
may return null if that service is not available locally.
java.lang.IllegalStateException
- thrown if the cluster service is not running or has stoppedServiceInfo getServiceInfo(java.lang.String sName)
sName
- the service name, within the cluster, that uniquely identifies a registered servicejava.lang.IllegalStateException
- thrown if the cluster service is not running or has stoppedgetService(String)
Service getService(java.lang.String sName)
sName
- the service name, within the cluster, that uniquely identifies a servicejava.lang.IllegalStateException
- thrown if the cluster service is not running or has stoppedgetServiceInfo(String)
, ensureService(String, String)
Service ensureService(java.lang.String sName, java.lang.String sType)
If the service with the specified name already exists, a reference to the same service will be returned. Otherwise a new service object will be instantiated and returned. The service's context ClassLoader will be initialized with the Cluster's context ClassLoader.
It is essential to understand that until the service is started using Controllable.start()
, the cluster doesn't keep a reference to that service instance. Therefore, the external synchronization on the cluster object is necessary to prevent creation of a duplicate service.
sName
- the service name, within the cluster, that uniquely identifies a servicesType
- the service type, that serves as a key to the cluster configuration info, allowing the cluster instantiate the corresponding service implementations if the specified service is not available locallyjava.lang.IllegalStateException
- thrown if the cluster service is not running or has stoppedjava.lang.IllegalArgumentException
- thrown if the type is illegal or unknownjava.util.Set getMemberSet()
java.lang.IllegalStateException
- thrown if the cluster service is not running or has stoppedMember getLocalMember()
java.lang.IllegalStateException
- thrown if the cluster service is not running or has stoppedlong getTimeMillis()
System.currentTimeMillis()
except that the cluster time is the roughly the same for all Members in the cluster.java.lang.IllegalStateException
- thrown if the cluster service is not running or has stoppedMember getOldestMember()
java.lang.IllegalStateException
- thrown if the cluster service is not running or has stoppedRegistry getManagement()
void setManagement(Registry registry)
registry
- the management registry to use on this nodejava.lang.String getClusterName()
Disposable getResource(java.lang.String sName)
Disposable
resource that was previously registered using registerResource(String, Disposable)
.sName
- the name of the resource to retrieveDisposable
resource, or null if no such resource is currently registeredvoid registerResource(java.lang.String sName, Disposable resource)
Disposable
resource with the Cluster, using the specified name. There are two reasons to register a resource:
getResource(String)
using the same name will return the registered resource, andDisposable#dispose()
method of the resource when the Cluster is shut down; specifically, when the Cluster is shutting down, after it has shut down all of the running services, the Cluster calls Disposable#dispose()
on each registered resource.If a resource is already registered under the specified name, and the new resource to register is not the same resource (the same reference) as the previously registered resource, then the Cluster will throw an IllegalStateException
.
To unregister a previously registered resource, call the unregisterResource(String)
method with the name of the resource to unregister.
Note: It is the responsibility of the caller to manage concurrent access to the getResource(java.lang.String)
, unregisterResource(String)
and registerResource methods of the Cluster. Specifically, while the Cluster manages the registry of resources in a thread-safe manner, it is possible for a thread to call getResource, get a null return value because a resource had not yet been registered under the specified name, but by the time the thread instantiates a resource and attempts to register it by calling registerResource, another thread may have already done the same thing.
sName
- the name of the resourceresource
- the Disposable
resource to registerjava.lang.IllegalStateException
- if the resource is nullDisposable unregisterResource(java.lang.String sName)
Note: It is the responsibility of the caller to manage concurrent access to the getResource(java.lang.String)
, unregisterResource(String) and registerResource(java.lang.String, com.tangosol.util.Disposable)
methods of the Cluster. Specifically, while the Cluster manages the registry of resources in a thread-safe manner, it is possible for a thread to call getResource, get a null return value because a resource had not yet been registered under the specified name, but by the time the thread instantiates a resource and attempts to register it by calling registerResource, another thread may have already done the same thing.
sName
- the name of the resourceDisposable
resource or null if none was registered under that name
|
Oracle® Coherence Java API Reference Release 3.7.1.0 E22843-01 |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |