Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


com.tangosol.net
Interface Cluster

All Superinterfaces:
ClassLoaderAware, Controllable

public interface Cluster
extends Controllable

The Cluster interface represents a collection of services that operate in a clustered network environment.

Since:
Coherence 1.1
Author:
gg 2002.02.08

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

getServiceNames

java.util.Enumeration getServiceNames()
Returns an Enumeration of String objects, one for each service that has been previously registered in the cluster.

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.

Returns:
Enumeration of service names
Throws:
java.lang.IllegalStateException - thrown if the cluster service is not running or has stopped

getServiceInfo

ServiceInfo getServiceInfo(java.lang.String sName)
Returns a ServiceInfo object for the specified service name.
Parameters:
sName - the service name, within the cluster, that uniquely identifies a registered service
Returns:
a ServiceInfo for the specified service; null if that service name has not been registered
Throws:
java.lang.IllegalStateException - thrown if the cluster service is not running or has stopped
See Also:
getService(String)

getService

Service getService(java.lang.String sName)
Returns a Service object for the specified service name.
Parameters:
sName - the service name, within the cluster, that uniquely identifies a service
Returns:
a Service for the specified name; null if the specified service is not available locally
Throws:
java.lang.IllegalStateException - thrown if the cluster service is not running or has stopped
See Also:
getServiceInfo(String), ensureService(String, String)

ensureService

Service ensureService(java.lang.String sName,
                      java.lang.String sType)
Obtains a Service object for the specified service name and type.

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.

Parameters:
sName - the service name, within the cluster, that uniquely identifies a service
sType - 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 locally
Returns:
a Service object for the specified service name an type
Throws:
java.lang.IllegalStateException - thrown if the cluster service is not running or has stopped
java.lang.IllegalArgumentException - thrown if the type is illegal or unknown

getMemberSet

java.util.Set getMemberSet()
Returns a Set of Member objects, one for each Member of the cluster.
Returns:
Set of cluster members
Throws:
java.lang.IllegalStateException - thrown if the cluster service is not running or has stopped

getLocalMember

Member getLocalMember()
Returns a Member object representing the local (i.e. this JVM) member of the cluster.
Returns:
the local cluster member
Throws:
java.lang.IllegalStateException - thrown if the cluster service is not running or has stopped

getTimeMillis

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.
Returns:
the cluster time in milliseconds
Throws:
java.lang.IllegalStateException - thrown if the cluster service is not running or has stopped

getOldestMember

Member getOldestMember()
Returns a Member object representing the senior cluster member.
Returns:
the senior cluster member
Throws:
java.lang.IllegalStateException - thrown if the cluster service is not running or has stopped

getManagement

Registry getManagement()
Returns the current management registry.
Returns:
the current management registry or null if the management is disabled on this node
Since:
Coherence 3.0

setManagement

void setManagement(Registry registry)
Sets the current management registry.
Parameters:
registry - the management registry to use on this node
Since:
Coherence 3.0

getClusterName

java.lang.String getClusterName()
Determine the configured name for the Cluster. This name is defined by the application, and can be used for any application-specific purpose. Furthermore, as a safety feature, when joining into a Cluster, a Member will only join it if the Cluster has the same name as the Member was configured to join.
Returns:
the configured name for the Cluster or null if none is configured
Since:
Coherence 3.2

getResource

Disposable getResource(java.lang.String sName)
Retrieves a Disposable resource that was previously registered using registerResource(String, Disposable).
Parameters:
sName - the name of the resource to retrieve
Returns:
the Disposable resource, or null if no such resource is currently registered
Since:
Coherence 3.7

registerResource

void registerResource(java.lang.String sName,
                      Disposable resource)
Registers the passed Disposable resource with the Cluster, using the specified name. There are two reasons to register a 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.

Parameters:
sName - the name of the resource
resource - the Disposable resource to register
Throws:
java.lang.IllegalStateException - if the resource is null
Since:
Coherence 3.7

unregisterResource

Disposable unregisterResource(java.lang.String sName)
Unregisters a resource with the specified name.

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.

Parameters:
sName - the name of the resource
Returns:
the registered Disposable resource or null if none was registered under that name
Since:
Coherence 3.7

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


Copyright © 2000, 2011, Oracle and/or its affiliates. All rights reserved.