com.hazelcast.core
Class OutOfMemoryHandler

java.lang.Object
  extended by com.hazelcast.core.OutOfMemoryHandler
Direct Known Subclasses:
DefaultOutOfMemoryHandler

public abstract class OutOfMemoryHandler
extends Object

Handler for OutOfMemoryError.

When an OutOfMemoryError is caught by Hazelcast threads, OutOfMemoryHandler is called for ALL HazelcastInstances known by the current JVM (actually ClassLoader).

Warning: OutOfMemoryHandler may not be called even if JVM throws OutOfMemoryError because the error may be thrown from an external (user) thread, so Hazelcast may not be informed about OutOfMemoryError.

See Also:
OutOfMemoryError, Hazelcast.setOutOfMemoryHandler(OutOfMemoryHandler)

Constructor Summary
OutOfMemoryHandler()
           
 
Method Summary
protected  void inactivate(HazelcastInstance hazelcastInstance)
          Inactivates HazelcastInstance; leaves threads, the connections are untouched.
abstract  void onOutOfMemory(OutOfMemoryError oome, HazelcastInstance[] hazelcastInstances)
          When an OutOfMemoryError is caught by Hazelcast threads, this method is called for ALL HazelcastInstances knows by current JVM (actually ClassLoader).
 boolean shouldHandle(OutOfMemoryError oome)
          Decides if the OutOfMemoryError thrown will be handled by this OutOfMemoryHandler or not.
protected  void tryCloseConnections(HazelcastInstance hazelcastInstance)
          Tries to close the server socket and connections to other HazelcastInstances.
protected  void tryShutdown(HazelcastInstance hazelcastInstance)
          Tries to shutdown HazelcastInstance forcefully; including closing sockets and connections, stopping threads, etc.
protected  void tryStopThreads(HazelcastInstance hazelcastInstance)
          Tries to stop internal Hazelcast threads (such as service thread, IO threads, executor threads).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OutOfMemoryHandler

public OutOfMemoryHandler()
Method Detail

onOutOfMemory

public abstract void onOutOfMemory(OutOfMemoryError oome,
                                   HazelcastInstance[] hazelcastInstances)
When an OutOfMemoryError is caught by Hazelcast threads, this method is called for ALL HazelcastInstances knows by current JVM (actually ClassLoader).

User can shutdown the HazelcastInstance, call System.exit(), just log the error, etc. The default handler tries to close socket connections to other nodes and shutdown the HazelcastInstance.

Warning: OutOfMemoryHandler may not be called even if JVM throws OutOfMemoryError because the error may be thrown from an external (user) thread and Hazelcast may not be informed about OutOfMemoryError.

Parameters:
oome - OutOfMemoryError thrown by JVM
hazelcastInstances - All HazelcastInstances known by JVM, can include inactive or NULL instances.
See Also:
inactivate(HazelcastInstance), tryCloseConnections(HazelcastInstance), tryStopThreads(HazelcastInstance), tryShutdown(HazelcastInstance)

shouldHandle

public boolean shouldHandle(OutOfMemoryError oome)
Decides if the OutOfMemoryError thrown will be handled by this OutOfMemoryHandler or not. If true is return, onOutOfMemory(OutOfMemoryError, HazelcastInstance[]) will be called to handle error, otherwise OutOfMemoryError will be ignored.

Parameters:
oome - OutOfMemoryError thrown by JVM
Returns:
true if OutOfMemoryError will be handled, false otherwise

inactivate

protected final void inactivate(HazelcastInstance hazelcastInstance)
Inactivates HazelcastInstance; leaves threads, the connections are untouched.

Parameters:
hazelcastInstance - the Hazelcast instance to inactivate

tryCloseConnections

protected final void tryCloseConnections(HazelcastInstance hazelcastInstance)
Tries to close the server socket and connections to other HazelcastInstances.

Parameters:
hazelcastInstance - the Hazelcast instance to close server socket

tryStopThreads

protected final void tryStopThreads(HazelcastInstance hazelcastInstance)
Tries to stop internal Hazelcast threads (such as service thread, IO threads, executor threads).

Parameters:
hazelcastInstance - the Hazelcast instance to stop internal threads

tryShutdown

protected final void tryShutdown(HazelcastInstance hazelcastInstance)
Tries to shutdown HazelcastInstance forcefully; including closing sockets and connections, stopping threads, etc.

Parameters:
hazelcastInstance - the Hazelcast instance to shutdown


Copyright © 2015 Hazelcast, Inc.. All Rights Reserved.