com.hazelcast.core
Class Hazelcast

java.lang.Object
  extended by com.hazelcast.core.Hazelcast

public final class Hazelcast
extends Object

Factory for all of the Hazelcast data and execution components such as maps, queues, multimaps, topics and executor service.

If not started already, Hazelcast member (HazelcastInstance) will start automatically if any of the functions is called on Hazelcast.


Method Summary
static void addInstanceListener(InstanceListener instanceListener)
          Add a instance listener which will be notified when a new instance such as map, queue, multimap, topic, lock is added or removed.
static Set<HazelcastInstance> getAllHazelcastInstances()
          Returns all active/running HazelcastInstances on this JVM.
static AtomicNumber getAtomicNumber(String name)
          Creates cluster-wide atomic long.
static Cluster getCluster()
          Returns the Cluster that this Hazelcast instance is part of.
static Config getConfig()
          Returns the configuration of this Hazelcast instance.
static ICountDownLatch getCountDownLatch(String name)
          Creates a cluster-wide CountDownLatch.
static HazelcastInstance getDefaultInstance()
          Returns the default Hazelcast instance, starts it with the default configuration, if not already started.
static ExecutorService getExecutorService()
          Returns the default distributed executor service.
static ExecutorService getExecutorService(String name)
          Returns the distributed executor service for the given name.
static HazelcastInstance getHazelcastInstanceByName(String instanceName)
          Returns an existing HazelcastInstance with instanceName.
static IdGenerator getIdGenerator(String name)
          Creates cluster-wide unique IDs.
static Collection<Instance> getInstances()
          Returns all queue, map, set, list, topic, lock, multimap instances created by Hazelcast.
static LifecycleService getLifecycleService()
          Returns the lifecycle service for this instance.
static
<E> IList<E>
getList(String name)
          Returns the distributed list instance with the specified name.
static ILock getLock(Object key)
          Returns the distributed lock instance for the specified key object.
static LoggingService getLoggingService()
          Returns the logging service of this Hazelcast instance.
static
<K,V> IMap<K,V>
getMap(String name)
          Returns the distributed map instance with the specified name.
static
<K,V> MultiMap<K,V>
getMultiMap(String name)
          Returns the distributed multimap instance with the specified name.
static PartitionService getPartitionService()
          Returns the partition service of this Hazelcast instance.
static
<E> IQueue<E>
getQueue(String name)
          Returns the distributed queue instance with the specified name.
static ISemaphore getSemaphore(String name)
          Creates a cluster-wide semaphore.
static
<E> ISet<E>
getSet(String name)
          Returns the distributed set instance with the specified name.
static
<E> ITopic<E>
getTopic(String name)
          Returns the distributed topic instance with the specified name.
static Transaction getTransaction()
          Returns the transaction instance associated with the current thread, creates a new one if it wasn't already.
static HazelcastInstance init(Config config)
          Initializes the default Hazelcast instance with the specified configuration.
static HazelcastInstance newHazelcastInstance(Config config)
          Creates a new HazelcastInstance (a new node in a cluster).
static void removeInstanceListener(InstanceListener instanceListener)
          Removes the specified instance listener.
static void restart()
          Deprecated. as of version 1.9
static void shutdown()
          Deprecated. as of version 1.9
static void shutdownAll()
          Shuts down all running Hazelcast Instances on this JVM, including the default one if it is running.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

init

public static HazelcastInstance init(Config config)
Initializes the default Hazelcast instance with the specified configuration. This method should be called before calling any other methods.

Parameters:
config - configuration for this Hazelcast instance.
Returns:
the default instance
Throws:
IllegalStateException - if this instance is already initialized

getDefaultInstance

public static HazelcastInstance getDefaultInstance()
Returns the default Hazelcast instance, starts it with the default configuration, if not already started.

Returns:
the default Hazelcast instance

getQueue

public static <E> IQueue<E> getQueue(String name)
Returns the distributed queue instance with the specified name.

Parameters:
name - name of the distributed queue
Returns:
distributed queue instance with the specified name

getTopic

public static <E> ITopic<E> getTopic(String name)
Returns the distributed topic instance with the specified name.

Parameters:
name - name of the distributed topic
Returns:
distributed topic instance with the specified name

getSet

public static <E> ISet<E> getSet(String name)
Returns the distributed set instance with the specified name.

Parameters:
name - name of the distributed set
Returns:
distributed set instance with the specified name

getList

public static <E> IList<E> getList(String name)
Returns the distributed list instance with the specified name.

Parameters:
name - name of the distributed list
Returns:
distributed list instance with the specified name

getMap

public static <K,V> IMap<K,V> getMap(String name)
Returns the distributed map instance with the specified name.

Parameters:
name - name of the distributed map
Returns:
distributed map instance with the specified name

getMultiMap

public static <K,V> MultiMap<K,V> getMultiMap(String name)
Returns the distributed multimap instance with the specified name.

Parameters:
name - name of the distributed multimap
Returns:
distributed multimap instance with the specified name

getLock

public static ILock getLock(Object key)
Returns the distributed lock instance for the specified key object. The specified object is considered to be the key for this lock. So keys are considered equals cluster-wide as long as they are serialized to the same byte array such as String, long, Integer.

Locks are fail-safe. If a member holds a lock and some of the members go down, cluster will keep your locks safe and available. Moreover, when a member leaves the cluster, all the locks acquired by this dead member will be removed so that these locks can be available for live members immediately.

 Lock lock = Hazelcast.getLock("PROCESS_LOCK");
 lock.lock();
 try {
   // process
 } finally {
   lock.unlock();
 }
 

Parameters:
key - key of the lock instance
Returns:
distributed lock instance for the specified key.

getCluster

public static Cluster getCluster()
Returns the Cluster that this Hazelcast instance is part of. Cluster interface allows you to add listener for membership events and learn more about the cluster that this Hazelcast instance is part of.

Returns:
cluster that this Hazelcast instance is part of

getExecutorService

public static ExecutorService getExecutorService()
Returns the default distributed executor service. Executor service enables you to run your Runnables and Callables on the Hazelcast cluster. Note that it don't support invokeAll/Any and don't have standard shutdown behavior

Returns:
distributed executor service of this Hazelcast instance

getExecutorService

public static ExecutorService getExecutorService(String name)
Returns the distributed executor service for the given name.

Parameters:
name - name of the executor service
Returns:
executor service for the given name

getTransaction

public static Transaction getTransaction()
Returns the transaction instance associated with the current thread, creates a new one if it wasn't already.

Transaction doesn't start until you call transaction.begin() and if a transaction is started then all transactional Hazelcast operations are automatically transactional.

  Map map = Hazelcast.getMap("mymap");
  Transaction txn = Hazelcast.getTransaction();
  txn.begin();
  try {
    map.put ("key", "value");
    txn.commit();
  }catch (Exception e) {
    txn.rollback();
  }
 
Isolation is always READ_COMMITTED . If you are in a transaction, you can read the data in your transaction and the data that is already committed and if not in a transaction, you can only read the committed data. Implementation is different for queue and map/set. For queue operations (offer,poll), offered and/or polled objects are copied to the next member in order to safely commit/rollback. For map/set, Hazelcast first acquires the locks for the write operations (put, remove) and holds the differences (what is added/removed/updated) locally for each transaction. When transaction is set to commit, Hazelcast will release the locks and apply the differences. When rolling back, Hazelcast will simply releases the locks and discard the differences. Transaction instance is attached to the current thread and each Hazelcast operation checks if the current thread holds a transaction, if so, operation will be transaction aware. When transaction is committed, rolled back or timed out, it will be detached from the thread holding it.

Returns:
transaction for the current thread

getAtomicNumber

public static AtomicNumber getAtomicNumber(String name)
Creates cluster-wide atomic long. Hazelcast AtomicNumber is a distributed implementation of java.util.concurrent.atomic.AtomicLong.

Parameters:
name - of the AtomicNumber proxy
Returns:
AtomicNumber proxy instance

getCountDownLatch

public static ICountDownLatch getCountDownLatch(String name)
Creates a cluster-wide CountDownLatch. Hazelcast ICountDownLatch is a distributed implementation of java.util.concurrent.CountDownLatch.

Parameters:
name - of the distributed CountDownLatch
Returns:
ICountDownLatch proxy instance

getSemaphore

public static ISemaphore getSemaphore(String name)
Creates a cluster-wide semaphore. Hazelcast ISemaphore is a distributed implementation of java.util.concurrent.Semaphore.

Parameters:
name - of the distributed Semaphore
Returns:
ISemaphore proxy instance

getIdGenerator

public static IdGenerator getIdGenerator(String name)
Creates cluster-wide unique IDs. Generated IDs are long type primitive values between 0 and Long.MAX_VALUE . Id generation occurs almost at the speed of AtomicLong.incrementAndGet() . Generated IDs are unique during the life cycle of the cluster. If the entire cluster is restarted, IDs start from 0 again.

Parameters:
name -
Returns:
IdGenerator proxy instance

shutdown

public static void shutdown()
Deprecated. as of version 1.9

Detaches this member from the cluster. It doesn't shutdown the entire cluster, it shuts down this local member only.

See Also:
getLifecycleService()

shutdownAll

public static void shutdownAll()
Shuts down all running Hazelcast Instances on this JVM, including the default one if it is running. It doesn't shutdown all members of the cluster but just the ones running on this JVM.

See Also:
newHazelcastInstance(Config)

restart

public static void restart()
Deprecated. as of version 1.9

Detaches this member from the cluster first and then restarts it as a new member.

See Also:
getLifecycleService()

getInstances

public static Collection<Instance> getInstances()
Returns all queue, map, set, list, topic, lock, multimap instances created by Hazelcast.

Returns:
the collection of instances created by Hazelcast.

addInstanceListener

public static void addInstanceListener(InstanceListener instanceListener)
Add a instance listener which will be notified when a new instance such as map, queue, multimap, topic, lock is added or removed.

Parameters:
instanceListener - instance listener

removeInstanceListener

public static void removeInstanceListener(InstanceListener instanceListener)
Removes the specified instance listener. Returns silently if specified instance listener doesn't exist.

Parameters:
instanceListener - instance listener to remove

newHazelcastInstance

public static HazelcastInstance newHazelcastInstance(Config config)
Creates a new HazelcastInstance (a new node in a cluster). This method allows you to create and run multiple instances of Hazelcast cluster members on the same JVM.

To shutdown all running HazelcastInstances (all members on this JVM) call shutdownAll().

Parameters:
config - Configuration for the new HazelcastInstance (member)
Returns:
new HazelcastInstance
See Also:
shutdownAll()

getHazelcastInstanceByName

public static HazelcastInstance getHazelcastInstanceByName(String instanceName)
Returns an existing HazelcastInstance with instanceName.

To shutdown all running HazelcastInstances (all members on this JVM) call shutdownAll().

Parameters:
instanceName - Name of the HazelcastInstance (member)
Returns:
HazelcastInstance
See Also:
newHazelcastInstance(Config), shutdownAll()

getAllHazelcastInstances

public static Set<HazelcastInstance> getAllHazelcastInstances()
Returns all active/running HazelcastInstances on this JVM.

To shutdown all running HazelcastInstances (all members on this JVM) call shutdownAll().

Returns:
all HazelcastInstances
See Also:
newHazelcastInstance(Config), getHazelcastInstanceByName(String), shutdownAll()

getConfig

public static Config getConfig()
Returns the configuration of this Hazelcast instance.

Returns:
configuration of this Hazelcast instance

getPartitionService

public static PartitionService getPartitionService()
Returns the partition service of this Hazelcast instance. PartitionService allows you to introspect current partitions in the cluster, partition owner members and listen for partition migration events.

Returns:
partition service

getLoggingService

public static LoggingService getLoggingService()
Returns the logging service of this Hazelcast instance. LoggingService allows you to listen for LogEvents generated by Hazelcast runtime. You can log the events somewhere or take action base on the message.

Returns:
logging service

getLifecycleService

public static LifecycleService getLifecycleService()
Returns the lifecycle service for this instance. LifecycleService allows you to shutdown, restart, pause and resume this HazelcastInstance and listen for the lifecycle events.

Returns:
lifecycle service


Copyright 2008-2012 Hazel Ltd. All Rights Reserved.