com.hazelcast.core
public abstract class OutOfMemoryHandler extends Object
OutOfMemoryError
.
When an OutOfMemoryError
is caught by Hazelcast threads,
OutOfMemoryHandler
is called for ALL HazelcastInstance
s
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.
Constructor and Description |
---|
OutOfMemoryHandler() |
Modifier and Type | Method and Description |
---|---|
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 HazelcastInstance s
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).
|
public abstract void onOutOfMemory(OutOfMemoryError oome, HazelcastInstance[] hazelcastInstances)
OutOfMemoryError
is caught by Hazelcast threads,
this method is called for ALL HazelcastInstance
s
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.
oome
- OutOfMemoryError thrown by JVMhazelcastInstances
- All HazelcastInstances known by JVM,
can include inactive or NULL instances.inactivate(HazelcastInstance)
,
tryCloseConnections(HazelcastInstance)
,
tryStopThreads(HazelcastInstance)
,
tryShutdown(HazelcastInstance)
public boolean shouldHandle(OutOfMemoryError oome)
onOutOfMemory(OutOfMemoryError, HazelcastInstance[])
will be called
to handle error, otherwise OutOfMemoryError will be ignored.oome
- OutOfMemoryError thrown by JVMprotected final void inactivate(HazelcastInstance hazelcastInstance)
hazelcastInstance
- the Hazelcast instance to inactivateprotected final void tryCloseConnections(HazelcastInstance hazelcastInstance)
hazelcastInstance
- the Hazelcast instance to close server socketprotected final void tryStopThreads(HazelcastInstance hazelcastInstance)
hazelcastInstance
- the Hazelcast instance to stop internal threadsprotected final void tryShutdown(HazelcastInstance hazelcastInstance)
hazelcastInstance
- the Hazelcast instance to shutdownCopyright © 2015 Hazelcast, Inc.. All Rights Reserved.