Class Hazelcast
HazelcastInstance
's, a node in a cluster.-
Method Summary
Modifier and TypeMethodDescriptionstatic HazelcastInstance
Returns either a local Hazelcast instance or a "bootstrapped" Hazelcast client for a remote Hazelcast cluster, depending on the context.static Set<HazelcastInstance>
Returns all active/running HazelcastInstances on this JVM.static HazelcastInstance
getHazelcastInstanceByName
(String instanceName) Returns an existing HazelcastInstance with instanceName.static HazelcastInstance
Gets or creates a HazelcastInstance with the default XML configuration looked up in: System property: Hazelcast will first check if "hazelcast.config" system property is set to a file or aclasspath:...
path.static HazelcastInstance
getOrCreateHazelcastInstance
(Config config) Gets or creates the HazelcastInstance with a certain name.static HazelcastInstance
Creates a new HazelcastInstance (a new node in a cluster).static HazelcastInstance
newHazelcastInstance
(Config config) Creates a new HazelcastInstance (a new node in a cluster).static void
setOutOfMemoryHandler
(OutOfMemoryHandler outOfMemoryHandler) SetsOutOfMemoryHandler
to be used when anOutOfMemoryError
is caught by Hazelcast threads.static void
Shuts down all memberHazelcastInstance
s running on this JVM.
-
Method Details
-
shutdownAll
public static void shutdownAll()Shuts down all memberHazelcastInstance
s running on this JVM. It doesn't shut down all members of the cluster but just the ones running on this JVM.- See Also:
-
newHazelcastInstance
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 shut down all running HazelcastInstances (all members on this JVM) call
shutdownAll()
.- Parameters:
config
- Configuration for the new HazelcastInstance (member)- Returns:
- the new HazelcastInstance
- See Also:
-
newHazelcastInstance
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 shut down all running HazelcastInstances (all members on this JVM) call
shutdownAll()
.Hazelcast will look into two places for the configuration file:
-
System property: Hazelcast will first check if "hazelcast.config" system property is set to a file or a
classpath:...
path. Examples: -Dhazelcast.config=C:/myhazelcast.xml , -Dhazelcast.config=classpath:the-hazelcast-config.xml , -Dhazelcast.config=classpath:com/mydomain/hazelcast.xml - "hazelcast.xml" file in current working directory
- Classpath: Hazelcast will check classpath for hazelcast.xml file.
- Returns:
- the new HazelcastInstance
- See Also:
-
System property: Hazelcast will first check if "hazelcast.config" system property is set to a file or a
-
getHazelcastInstanceByName
Returns an existing HazelcastInstance with instanceName.To shut down all running HazelcastInstances (all members on this JVM) call
shutdownAll()
.- Parameters:
instanceName
- Name of the HazelcastInstance (member)- Returns:
- an existing HazelcastInstance
- See Also:
-
getOrCreateHazelcastInstance
Gets or creates a HazelcastInstance with the default XML configuration looked up in:-
System property: Hazelcast will first check if "hazelcast.config" system property is set to a file or a
classpath:...
path. Examples: -Dhazelcast.config=C:/myhazelcast.xml , -Dhazelcast.config=classpath:the-hazelcast-config.xml , -Dhazelcast.config=classpath:com/mydomain/hazelcast.xml - "hazelcast.xml" file in current working directory
- Classpath: Hazelcast will check classpath for hazelcast.xml file.
IllegalArgumentException
will be thrown.If a Hazelcast instance with the same name as the configuration exists, then it is returned, otherwise it is created.
- Returns:
- the HazelcastInstance
- Throws:
IllegalArgumentException
- if the instance name of the config is null or empty or if no config file can be located.
-
System property: Hazelcast will first check if "hazelcast.config" system property is set to a file or a
-
getOrCreateHazelcastInstance
Gets or creates the HazelcastInstance with a certain name.If a Hazelcast instance with the same name as the configuration exists, then it is returned, otherwise it is created.
If
config
isnull
, then an XML configuration file is looked up in the following order:-
System property: Hazelcast will first check if "hazelcast.config" system property is set to a file or a
classpath:...
path. Examples: -Dhazelcast.config=C:/myhazelcast.xml , -Dhazelcast.config=classpath:the-hazelcast-config.xml , -Dhazelcast.config=classpath:com/mydomain/hazelcast.xml - "hazelcast.xml" file in current working directory
- Classpath: Hazelcast will check classpath for hazelcast.xml file.
- Parameters:
config
- the Config.- Returns:
- the HazelcastInstance
- Throws:
IllegalArgumentException
- if the instance name of the config is null or empty or if no config file can be located.
-
System property: Hazelcast will first check if "hazelcast.config" system property is set to a file or a
-
getAllHazelcastInstances
Returns all active/running HazelcastInstances on this JVM.To shut down all running HazelcastInstances (all members on this JVM) call
shutdownAll()
.- Returns:
- all active/running HazelcastInstances on this JVM
- See Also:
-
bootstrappedInstance
Returns either a local Hazelcast instance or a "bootstrapped" Hazelcast client for a remote Hazelcast cluster, depending on the context. The main goal of this factory method is to simplify submitting a Jet job to a remote Hazelcast cluster while also making it convenient to test on the local machine.When you submit a job to a Hazelcast instance that runs locally in your JVM, it will have all the dependency classes available. However, when you take the same job to a remote Hazelcast cluster, you'll often find that it fails with a
ClassNotFoundException
because the remote cluster doesn't have all the classes you use in the job.Normally you would have to explicitly add all the dependency classes to the
JobConfig
, either one by one or packaged into a JAR. If you're submitting a job using the command-line toolhazelcast submit
, the JAR to attach is the same JAR that contains the code that submits the job.This factory takes all of the above into account in order to provide a smoother experience:
-
When not called from
hazelcast submit
, it returns a localHazelcastInstance
, either by creating a new one or looking up a cached one. The instance won't join any cluster. -
When called from
hazelcast submit
, it returns a "bootstrapped" instance of Hazelcast client that automatically attaches the JAR to all jobs you submit using it.
To use this feature, follow these steps:
-
Write your
main()
method and your code the usual way, making sure you use this method (instead ofHazelcastClient.newHazelcastClient()
) to acquire a Hazelcast client instance. -
Create a runnable JAR (e.g.
jet-job.jar
) with your entry point declared as theMain-Class
inMANIFEST.MF
. The JAR should include all dependencies required to run it (except the Hazelcast classes — these are already available on the cluster classpath). -
Submit the job by writing
hazelcast submit hz-job.jar
on the command line. This assumes you have downloaded the Hazelcast distribution package and itsbin
directory is on your system path. The Hazelcast client will use the configuration file<distro_root>/config/hazelcast-client.yaml
. Adjust that file as needed. - The same code will work if you run it directly from your IDE. In this case it will create a local Hazelcast instance for itself to run on.
public class CustomJetJob { public static void main(String[] args) { HazelcastInstance hz = Hazelcast.bootstrappedInstance(); hz.getJet().newJob(buildPipeline()).join(); } public static Pipeline buildPipeline() { // ... } }
- Since:
- 5.0
-
When not called from
-
setOutOfMemoryHandler
SetsOutOfMemoryHandler
to be used when anOutOfMemoryError
is caught by Hazelcast threads.Warning:
OutOfMemoryHandler
may not be called although JVM throwsOutOfMemoryError
. Because error may be thrown from an external (user thread) thread and Hazelcast may not be informed aboutOutOfMemoryError
.- Parameters:
outOfMemoryHandler
- set when anOutOfMemoryError
is caught by Hazelcast threads- See Also:
-