System Properties

Hazelcast has system properties to tune some aspects of Hazelcast. You can set them as property name and value pairs through declarative configuration, programmatic configuration or JVM system property.

Declarative Configuration

<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config
    http://www.hazelcast.com/schema/config/hazelcast-config-3.0.xsd"
    xmlns="http://www.hazelcast.com/schema/config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  ....
  <properties>
    <property name="hazelcast.property.foo">value</property>
    ....
  </properties>
</hazelcast>

Programmatic Configuration

Config config = new Config() ;
config.setProperty( "hazelcast.property.foo", "value" );

System Property

  1. Using JVM parameter: java -Dhazelcast.property.foo=value

  2. Using System class: System.setProperty( "hazelcast.property.foo", "value" );

The table below lists the system properties with their descriptions in alphabetical order.

Property Name Default Value Type Description
hazelcast.application.validation.token string This property can be used to verify that Hazelcast nodes only join when their application level configuration is the same.
hazelcast.backpressure.backoff.timeout.millis 60000 int Controls the maximum timeout in milliseconds to wait for an invocation space to be available. The value needs to be equal to or larger than 0.
hazelcast.backpressure.enabled false bool Enable back pressure.
hazelcast.backpressure.max.concurrent.invocations.per.partition 100 int The maximum number of concurrent invocations per partition.
hazelcast.backpressure.syncwindow 1000 string Used when back pressure is enabled. The larger the sync window value, the less frequent a asynchronous backup is converted to a sync backup.
hazelcast.cache.invalidation.batch.enabled true bool Specifies whether the cache invalidation event batch sending is enabled or not.
hazelcast.cache.invalidation.batch.size 100 int Defines the maximum number of cache invalidation events to be drained and sent to the event listeners in a batch.
hazelcast.cache.invalidation.batchfrequency.seconds 5 int Defines cache invalidation event batch sending frequency in seconds.
hazelcast.clientengine.thread.count int Maximum number of threads to process non-partition-aware client requests, like map.size(), query, executor tasks, etc. Default count is 20 times number of cores.
hazelcast.client.event.queue.capacity 1000000 string Default value of the capacity of executor that handles incoming event packets.
hazelcast.client.event.thread.count 5 string Thread count for handling incoming event packets.
hazelcast.client.heartbeat.interval 10000 string The frequency of heartbeat messages sent by the clients to members.
hazelcast.client.heartbeat.timeout 300000 string Timeout for the heartbeat messages sent by the client to members. If no messages pass between client and member within the given time via this property in milliseconds, the connection will be closed.
hazelcast.client.invocation.timeout.seconds 120 string Time to give up the invocation when a member in the member list is not reachable.
hazelcast.client.max.no.heartbeat.seconds int 300 ???
hazelcast.client.shuffle.member.list true string The client shuffles the given member list to prevent all clients to connect to the same node when this property is false. When it is set to true, the client tries to connect to the nodes in the given order.
hazelcast.connect.all.wait.seconds 120 int Timeout to connect all other cluster members when a member is joining to a cluster.
hazelcast.connection.monitor.interval 100 int Minimum interval in milliseconds to consider a connection error as critical.
hazelcast.connection.monitor.max.faults 3 int Maximum IO error count before disconnecting from a node.
hazelcast.enterprise.license.key null string Hazelcast Enterprise license key.
hazelcast.enterprise.wanrep.batch.size 50 int Maximum number of WAN replication events to be drained and sent to the target cluster in a batch.
hazelcast.enterprise.wanrep.batchfrequency.seconds 5 int Batch sending frequency in seconds.
hazelcast.enterprise.wanrep.optimeout.millis 60000 int Timeout duration (in milliseconds) for a WAN replication event before retry.
hazelcast.enterprise.wanrep.queue.capacity 100000 int Event queue capacity for WAN replication.
hazelcast.event.queue.capacity 1000000 int Capacity of internal event queue.
hazelcast.event.queue.timeout.millis 250 int Timeout to enqueue events to event queue.
hazelcast.event.thread.count 5 int Number of event handler threads.
hazelcast.graceful.shutdown.max.wait 600 int Maximum wait in seconds during graceful shutdown.
hazelcast.health.monitoring.delay.seconds 30 int Health monitoring logging interval in seconds.
hazelcast.health.monitoring.level SILENT string Health monitoring log level. When SILENT, logs are printed only when values exceed some predefined threshold. When NOISY, logs are always printed periodically. Set OFF to turn off completely.
hazelcast.heartbeat.interval.seconds 1 int Heartbeat send interval in seconds.
hazelcast.icmp.enabled false bool Enable ICMP ping.
hazelcast.icmp.timeout 1000 int ICMP timeout in milliseconds.
hazelcast.icmp.ttl 0 int ICMP TTL (maximum numbers of hops to try).
hazelcast.initial.min.cluster.size 0 int Initial expected cluster size to wait before node to start completely.
hazelcast.initial.wait.seconds 0 int Initial time in seconds to wait before node to start completely.
hazelcast.io.balancer.interval.seconds 20 int Interval in seconds between IOBalancer executions.
hazelcast.io.thread.count 3 int Number of input and output threads.
hazelcast.jcache.provider.type string Type of the JCache provider. Values can be client or server.
hazelcast.jmx false bool Enable JMX agent.
hazelcast.logging.type jdk enum Name of logging framework type to send logging events.
hazelcast.map.expiry.delay.seconds 10 int Useful to deal with some possible edge cases. For example, when using EntryProcessor, without this delay, you may see an EntryProcessor running on owner partition found a key but EntryBackupProcessor did not find it on backup. As a result of this, when backup promotes to owner, you will end up an unprocessed key.
hazelcast.map.load.chunk.size 1000 int Chunk size for MapLoader's map initialization process (MapLoader.loadAllKeys()).
hazelcast.map.replica.wait.seconds.for.scheduled.tasks 10 int Scheduler delay for map tasks those will be executed on backup members.
hazelcast.map.write.behind.queue.capacity 50000 string Maximum write-behind queue capacity per node. It is the total of all write-behind queue sizes in a node including backups. Its maximum value is Integer.MAX_VALUE. The value of this property is taken into account only if the write-coalescing element of the Map Store configuration is false. Please refer to the Map Store section for the description of the write-coalescing element.
hazelcast.master.confirmation.interval.seconds 30 int Interval at which nodes send master confirmation.
hazelcast.max.join.merge.target.seconds 20 int Split-brain merge timeout for a specific target.
hazelcast.max.join.seconds 300 int Join timeout, maximum time to try to join before giving.
hazelcast.max.no.heartbeat.seconds 300 int Maximum timeout of heartbeat in seconds for a node to assume it is dead.
hazelcast.max.no.master.confirmation.seconds 450 int Max timeout of master confirmation from other nodes.
hazelcast.max.wait.seconds.before.join 20 int Maximum wait time before join operation.
hazelcast.mc.max.visible.instance.count 100 int Management Center maximum visible instance count.
hazelcast.mc.max.visible.slow.operations.count 10 int Management Center maximum visible slow operations count.
hazelcast.mc.url.change.enabled true bool Management Center changing server url is enabled.
hazelcast.member.list.publish.interval.seconds 600 int Interval at which master node publishes a member list.
hazelcast.memcache.enabled true bool Enable Memcache client request listener service.
hazelcast.merge.first.run.delay.seconds 300 int Initial run delay of split brain/merge process in seconds.
hazelcast.merge.next.run.delay.seconds 120 int Run interval of split brain/merge process in seconds.
hazelcast.migration.min.delay.on.member.removed.seconds 5 int Minimum delay (in seconds) between detection of a member that has left and start of the rebalancing process.
hazelcast.operation.backup.timeout.millis 5 int Maximum time a caller to wait for backup responses of an operation. After this timeout, operation response will be returned to the caller even no backup response is received.
hazelcast.operation.call.timeout.millis 60000 int Timeout to wait for a response when a remote call is sent, in milliseconds.
hazelcast.operation.generic.thread.count -1 int Number of generic operation handler threads. -1 means CPU core count x 2.
hazelcast.operation.thread.count -1 int Number of partition based operation handler threads. -1 means CPU core count x 2.
hazelcast.partition.backup.sync.interval 30 int Interval for syncing backup replicas.
hazelcast.partition.count 271 int Total partition count.
hazelcast.partition.max.parallel.replications 5 int Maximum number of parallel partition backup replication operations per node. When a partition backup ownership changes or a backup inconsistency is detected, the nodes start to sync their backup partitions. This parameter limits the maximum running replication operations in parallel.
hazelcast.partition.migration.interval 0 int Interval to run partition migration tasks in seconds.
hazelcast.partition.migration.timeout 300 int Timeout for partition migration tasks in seconds.
hazelcast.partition.table.send.interval 15 int Interval for publishing partition table periodically to all cluster members.
hazelcast.partitioning.strategy.class null string Class name implementing com.hazelcast.core.PartitioningStrategy, which defines key to partition mapping.
hazelcast.performance.monitoring.enabled bool Enable the performance monitor which is a tool enabling you to see internal performance metrics. These metrics are written to the log file.
hazelcast.performance.monitoring.delay.seconds int The delay in seconds between monitoring of the performance.
hazelcast.prefer.ipv4.stack true bool Prefer Ipv4 network interface when picking a local address.
hazelcast.query.max.local.partition.limit.for.precheck 3 int Maximum value of local partitions to trigger local pre-check for TruePredicate query operations on maps.
hazelcast.query.predicate.parallel.evaluation false bool Each Hazelcast member evaluates query predicates using a single thread by default. In most cases, the overhead of inter-thread communications overweight can benefit from parallel execution. When you have a large dataset and/or slow predicate, you may benefit from parallel predicate evaluations. Set to true if you are using slow predicates or have > 100,000s entries per member.
hazelcast.query.result.size.limit -1 int Result size limit for query operations on maps. This value defines the maximum number of returned elements for a single query result. If a query exceeds this number of elements, a QueryResultSizeExceededException will be thrown. Its default value is -1, meaning it is disabled.
hazelcast.rest.enabled true bool Enable REST client request listener service.
hazelcast.shutdownhook.enabled true bool Enable Hazelcast shutdownhook thread. When this is enabled, this thread terminates the Hazelcast instance without waiting to shutdown gracefully.
hazelcast.slow.operation.detector.enabled true bool Enables/disables the SlowOperationDetector.
hazelcast.slow.operation.detector.log.purge.interval.seconds 300 int Purge interval for slow operation logs.
hazelcast.slow.operation.detector.log.retention.seconds 3600 int Defines the retention time of invocations in slow operation logs. If an invocation is older than this value, it will be purged from the log to prevent unlimited memory usage. When all invocations are purged from a log, the log itself will be deleted.
hazelcast.slow.operation.detector.stacktrace.logging.enabled false bool Defines if the stacktraces of slow operations are logged in the log file. Stack traces are always reported to the Management Center, but by default, they are not printed to keep the log size small.
hazelcast.slow.operation.detector.threshold.millis 10000 int Defines a threshold above which a running operation in OperationService is considered to be slow. These operations log a warning and are shown in the Management Center with detailed information, e.g. stacktrace.
hazelcast.socket.bind.any true bool Bind both server-socket and client-sockets to any local interface.
hazelcast.socket.client.bind true bool Bind client socket to an interface when connecting to a remote server socket. When set to false, client socket is not bound to any interface.
hazelcast.socket.client.bind.any true bool Bind client-sockets to any local interface. If not set, hazelcast.socket.bind.any will be used as default.
hazelcast.socket.connect.timeout.seconds 0 int Socket connection timeout in seconds. Socket.connect() will be blocked until either connection is established or connection is refused or this timeout passes. Default is 0, means infinite.
hazelcast.socket.keep.alive true bool Socket set keep alive (SO_KEEPALIVE).
hazelcast.socket.linger.seconds 0 int Set socket SO_LINGER option.
hazelcast.socket.no.delay true bool Socket set TCP no delay.
hazelcast.socket.receive.buffer.size 32 int Socket receive buffer (SO_RCVBUF) size in KB. If you have a very fast network (e.g. 10gbit) and/or you have large entries, then you may benefit from increasing sender/receiver buffer sizes. Use this property and the next one below tune the size. For example, a send/receive buffer size of 1024 kB is a safe starting point for a 10gbit network.
hazelcast.socket.send.buffer.size 32 int Socket send buffer (SO_SNDBUF) size in KB.
hazelcast.socket.server.bind.any true bool Bind server-socket to any local interface. If not set, hazelcast.socket.bind.any will be used as default.
hazelcast.tcp.join.port.try.count 3 int The number of incremental ports, starting with the port number defined in the network configuration, that will be used to connect to a host (which is defined without a port in TCP/IP member list while a node is searching for a cluster).
hazelcast.version.check.enabled true bool Enable Hazelcast new version check on startup.
hazelcast.wait.seconds.before.join 5 int Wait time before join operation.