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 shutdown 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 shutdown 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 shutdown 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 shutdown 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. Ifconfig
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 shutdown 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:
-