The table below lists the Hazelcast member system properties with their descriptions in alphabetical order.
You can set them as property name and value pairs through declarative configuration, programmatic configuration, or JVM system property. Please see the Configuring with System Properties section to learn how to set these properties.
NOTE: When you want to reconfigure a system property, you need to restart the members for which the property is modified.
Property Name | Default Value | Type | Description |
---|---|---|---|
hazelcast.application.validation.token |
n/a | string | This property can be used to verify that Hazelcast members 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 |
-1 | 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.diagnostics.max.rolled.file.count |
10 | int | Allowed count of diagnostic files within each roll. |
hazelcast.diagnostics.max.rolled.file.size.mb |
10 | int | Size of each diagnostic file to be rolled. |
hazelcast.invalidation.max.tolerated.miss.count |
10 | int | If missed invalidation count is bigger than this value, relevant cached data will be made unreachable. |
hazelcast.invalidation.reconciliation.interval.seconds |
60 | int | Period for which the cluster members are scanned to compare generated invalidation events with the received ones from Near Cache. |
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 |
300 | int | Time after which the member assumes the client is dead and closes its connections to the client. |
hazelcast.client.responsequeue.idlestrategy |
block | string | Specifies whether the response thread for internal operations at the client side will be blocked or not. If you use block (the default value) the thread will be blocked and need to be notified which can cause a reduction in the performance. If you use backoff there will be no blocking. By enabling the backoff mode and depending on your use case, you can get a 5-10% performance improvement. However, keep in mind that this will increase CPU utilization. We recommend you to use backoff with care and if you have a tool for measuring your cluster's performance. |
hazelcast.client.shuffle.member.list |
true | string | The client shuffles the given member list to prevent all clients to connect to the same member when this property is false . When it is set to true , the client tries to connect to the members in the given order. |
hazelcast.compatibility.3.6.client |
false | bool | When this property is true, if the server cannot determine the connected client version, it will assume that it has the version 3.6.x. This property is especially needed if you are using ICache (or JCache). |
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 member. |
hazelcast.discovery.public.ip.enabled |
false | bool | Enable use of public IP address in member discovery with Discovery SPI. |
hazelcast.enterprise.license.key |
null | string | Hazelcast IMDG Enterprise license key. |
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.http.healthcheck.enabled |
false | bool | Enable/disable Hazelcast's HTTP based health check implementation. When it is enabled, you can retrieve information about your cluster's health status (member state, cluster state, cluster size, etc.) by launching http://<your member's host IP>:5701/hazelcast/health . |
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 |
5 | int | Heartbeat send interval in seconds. |
hazelcast.hidensity.check.freememory |
true | bool | If enabled and is able to fetch memory statistics via Java's OperatingSystemMXBean , it checks whether there is enough free physical memory for the requested number of bytes. If the free memory checker is disabled (false), acts as if the check is succeeded. |
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 member to start completely. |
hazelcast.initial.wait.seconds |
0 | int | Initial time in seconds to wait before member to start completely. |
hazelcast.internal.map.expiration.cleanup.operation.count |
3 | int | This is a property which is used internally and subject to change in the future releases. |
hazelcast.internal.map.expiration.cleanup.percentage |
10 | int | This is a property which is used internally and subject to change in the future releases. |
hazelcast.internal.map.expiration.task.period.seconds |
5 | int | This is a property which is used internally and subject to change in the future releases. |
hazelcast.io.balancer.interval.seconds |
20 | int | Interval in seconds between IOBalancer executions. |
hazelcast.io.input.thread.count |
3 | int | Number of socket input threads. |
hazelcast.io.output.thread.count |
3 | int | Number of socket output threads. |
hazelcast.io.thread.count |
3 | int | Number of threads performing socket input and socket output. If, for example, the default value (3) is used, it means there are 3 threads performing input and 3 threads performing output (6 threads in total). |
hazelcast.jcache.provider.type |
n/a | string | Type of the JCache provider. Values can be client or server . |
hazelcast.jmx |
false | bool | Enable JMX agent. |
hazelcast.legacy.memberlist.format.enabled |
false | bool | Enables the legacy (for the releases before Hazelcast 3.9) member list format which is printed in the logs. The new format is introduced starting with Hazelcast 3.9 and includes member list version. Any change in the cluster, such as a member leaving or joining, will increment the member list version. Please see the Starting the Member and Client section. |
hazelcast.lock.max.lease.time.seconds |
Long.MAX_VALUE | long | All locks which are acquired without an explicit lease time use this value (in seconds) as the lease time. When you want to set an explicit lease time for your locks, you cannot set it to a longer time than this value. |
hazelcast.logging.type |
jdk | enum | Name of logging framework type to send logging events. |
hazelcast.mancenter.home |
mancenter | string | Folder where Management Center data files are stored (license information, time travel information, etc.). |
hazelcast.map.entry.filtering.natural.event.types |
false | bool | Notify entry listeners with predicates on map entry updates with events that match entry, update or exit from predicate value space. |
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.invalidation.batchfrequency.seconds |
10 | int | If the collected invalidations do not reach the configured batch size, a background process sends them at this interval. |
hazelcast.map.invalidation.batch.enabled |
true | bool | Enable or disable batching. When it is set to false , all invalidations are sent immediately. |
hazelcast.map.invalidation.batch.size |
100 | int | Maximum number of invalidations in a batch. |
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 member. It is the total of all write-behind queue sizes in a member 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 members send master confirmation. |
hazelcast.mastership.claim.timeout.seconds |
120 | int | Timeout which defines when master candidate gives up waiting for response to its mastership claim. After timeout happens, non-responding member will be removed from the member list. |
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 member to assume it is dead. CAUTION: Setting this value too low may cause members to be evicted from the cluster when they are under heavy load: they will be unable to send heartbeat operations in time, so other members will assume that it is dead. |
hazelcast.max.no.master.confirmation.seconds |
450 | int | Max timeout of master confirmation from other members. |
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 member publishes a member list. |
hazelcast.memcache.enabled |
false | 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 |
5000 | 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.fail.on.indeterminate.state |
false | bool | When enabled, an operation fails with IndeterminateOperationStateException , if it does not receive backup acks in time with respect to backup configuration of its data structure, or the member which owns primary replica of the target partition leaves the cluster. |
hazelcast.operation.generic.thread.count |
-1 | int | Number of generic operation handler threads. -1 means CPU core count / 2. |
hazelcast.operation.responsequeue.idlestrategy |
block | string | Specifies whether the response thread for internal operations at the member side will be blocked or not. If you use block (the default value) the thread will be blocked and need to be notified which can cause a reduction in the performance. If you use backoff there will be no blocking. By enabling the backoff mode and depending on your use case, you can get a 5-10% performance improvement. However, keep in mind that this will increase CPU utilization. We recommend you to use backoff with care and if you have a tool for measuring your cluster's performance. |
hazelcast.operation.thread.count |
-1 | int | Number of partition based operation handler threads. -1 means CPU core count. |
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 member. When a partition backup ownership changes or a backup inconsistency is detected, the members start to sync their backup partitions. This parameter limits the maximum running replication operations in parallel. |
hazelcast.partition.migration.fragments.enabled |
true | bool | When enabled, which is the default behavior, partitions are migrated/replicated in small fragments instead of one big chunk. Migrating partitions in fragments reduces pressure on the memory and network, since smaller packets are created in the memory and sent through the network. Note that it can increase the migration time to complete. |
hazelcast.partition.migration.interval |
0 | int | Interval to run partition migration tasks in seconds. |
hazelcast.partition.migration.stale.read.disabled |
false | bool | Hazelcast allows read operations to be performed while a partition is being migrated. This can lead to stale reads for some scenarios. You can disable stale read operations by setting this system property's value to "true". Its default value is "false", meaning that stale reads are allowed. |
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.monitor.max.rolled.file.count |
10 | int | The PerformanceMonitor uses a rolling file approach to prevent eating too much disk space. This property sets the maximum number of rolling files to keep on disk. |
hazelcast.performance.monitor.max.rolled.file.size.mb |
10 | int | The performance monitor uses a rolling file approach to prevent eating too much disk space. This property sets the maximum size in MB for a single file. Every HazelcastInstance gets its own history of log files. |
hazelcast.performance.monitoring.enabled |
n/a | bool | Enable the performance monitor, a tool which allows you to see internal performance metrics. These metrics are written to a dedicated log file. |
hazelcast.performance.monitor.delay.seconds |
n/a | int | The period between successive entries in the performance monitor's log file. |
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.optimizer.type |
RULES | String | Type of the query optimizer. For optimizations based on static rules, set the value to RULES . To disable the optimization, set the value to NONE . |
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 is thrown. Its default value is -1, meaning it is disabled. |
hazelcast.rest.enabled |
false | 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 Slow Operation Detector. |
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.client.receive.buffer.size |
-1 | int | Hazelcast creates all connections with receive buffer size set according to the hazelcast.socket.receive.buffer.size . When it detects a connection opened by a client, then it adjusts the receive buffer size according to this property. It is in kilobytes and the default value is -1. |
hazelcast.socket.client.send.buffer.size |
-1 | int | Hazelcast creates all connections with send buffer size set according to the hazelcast.socket.send.buffer.size . When it detects a connection opened by a client, then it adjusts the send buffer size according to this property. It is in kilobytes and the default value is -1. |
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 member is searching for a cluster). |
hazelcast.unsafe.mode |
auto | string | "auto" (the default value) automatically detects whether the usage of Unsafe is suitable for a given platform. "disabled" explicitly disables the Unsafe usage in your platform. "enforced" enforces the usage of Unsafe even if your platform does not support it. This property can only be set by passing a JVM-wide system property. |
hazelcast.phone.home.enabled |
true | bool | Enable or disable the sending of phone home data to Hazelcast's phone home server. |
hazelcast.wait.seconds.before.join |
5 | int | Wait time before join operation. |