Skip to main content

gemfire.properties and gfsecurity.properties: Geode Properties

You use the gemfire.properties settings to join a cluster and configure system member behavior. Cluster members include applications, the cache server, the locator, and other Geode processes.

You can place any security-related (properties that begin with security-*) configuration properties in gemfire.properties into a separate gfsecurity.properties file. Placing these configuration settings in a separate file allows you to restrict access to security configuration data. This way, you can still allow read or write access for your gemfire.properties file.

You can also define provider-specific properties ("ssl" properties) in gfsecurity.properties instead of defining them at the command-line or in your environment.

You can specify non-ASCII text in your properties files by using Unicode escape sequences. See Using Non-ASCII Strings in Apache Geode Property Files for more details.

Note: Unless otherwise indicated, these settings only affect activities within this cluster - not activities between clients and servers or between a gateway sender and gateway receiver in a multi-site installation.

SettingDefinitionApplies to (Server, Locator, Client)Default
ack-severe-alert-thresholdNumber of seconds the cluster will wait after ack-wait-threshold for a message to be acknowledged before issuing a severe alert. 0 disables this feature.S, L0
ack-wait-thresholdNumber of seconds a distributed message can wait for acknowledgment before sending an alert (logged as warnings). The waiter continues to wait. Valid range: 0..2147483647.S, L15
archive-disk-space-limitMax size (MB) of all inactive statistic archive files combined. If exceeded, inactive archives are deleted oldest-first until within limit. 0 = unlimited.S, L0
archive-file-size-limitMax size (MB) of a single statistic archive file. When exceeded, a new archive is created and the current becomes inactive. 0 = unlimited.S, L0
async-distribution-timeoutMilliseconds a publisher tries to distribute to this member before switching to async messaging (until it catches up, departs, or async limits are reached). Enable by setting > 0. Valid range: 0..60000.

Note: Peer-to-peer only (not client/server or multi-site).
S0
async-max-queue-sizeMax size (MB) for non-conflated async queues for publishers to this member before asking this member to leave the cluster. Valid range: 0..1024.

Note: Peer-to-peer only (not client/server or multi-site).
S8
async-queue-timeoutMax milliseconds a publisher waits with no distribution to this member before asking it to leave the cluster (slow receiver handling).

Note: Peer-to-peer only (not client/server or multi-site).
S, L60000
bind-addressFor multi-homed hosts: which NIC/address to bind for peer-to-peer comms, and default for servers to listen on unless overridden by server-bind-address. Use IP (not hostname). Empty = default NIC.S, Lnot set
cache-xml-fileDeclarative initialization file for the member’s cache.Scache.xml
cluster-configuration-dirDeprecated. Use gfsh import/export cluster-configuration. Directory where cluster configuration disk-store/artifacts are stored (dedicated locators with cluster config enabled).Lnot set
conflate-eventsClient/server only. Client-side property passed to server. Controls subscription queue conflation for this client’s servers: true, false, or server.Sserver
conserve-socketsIf true, threads share sockets (fewer sockets). If false, each app thread has its own sockets. For WAN deployments, keep default false to avoid WAN messaging hangs.S, Lfalse
delta-propagationWhether to distribute deltas for entry updates instead of full values (client/server and peer-to-peer).Strue
deploy-working-dirWorking directory used when deploying JARs to members (local or shared).S. (current directory)
disable-auto-reconnectIf true, disables automatic reconnect/reinitialize after being forced out/shunned (servers and locators).S, Lfalse
disable-jmxIf true, prevents creation of JMX MBeans (gfsh and Pulse require them).S, Lfalse
disable-tcpIf true, disables TCP sockets for inter-cache point-to-point messaging (uses UDP datagrams).S, Lfalse
distributed-system-idIdentifier to distinguish messages from different clusters. Required for PDX. Must be consistent within a cluster and unique across WAN clusters. Valid range: -1..255 (-1 = unset).S, L-1
durable-client-idClient/server only. Marks client as durable and identifies it; used by servers to resume messaging after downtime.Cnot set
durable-client-timeoutClient/server only. Seconds client can stay disconnected while server accumulates durable events.C300
enable-cluster-configurationDedicated locators only. If true, creates/serves cluster config to joining members and persists changes from gfsh.Ltrue
enable-management-rest-serviceIf true, enables cluster management REST service. Requires cluster configuration enabled, and only starts if http-service-port0.Ltrue
enable-network-partition-detectionDetects/handles split brain. Must be same across all members. Must be true for persistent regions with DISTRIBUTED_ACK or GLOBAL scope to avoid conflicts.S, Ltrue
enable-time-statisticsTracks time-based statistics. Disabled by default for performance; not recommended for prod. Requires statistic-sampling-enabled=true and statistic-archive-file set.S, Lfalse
enforce-unique-hostFor partitioned region redundancy: prevents placing redundant copies on members on the same physical machine; requires different machines.Sfalse
geode.disallow-internal-messages-without-credentialsIf true, enables internal message validation. Set as a system property when restarting servers to work with upgraded clients.Sfalse
groupsComma-separated list of member groups. Roles also count as groups.Snot set
http-service-bind-addressIf set, binds embedded HTTP service to specified address. If HTTP service enabled and this isn’t set, binds to local address. Used by Pulse and developer REST API.Snot set
http-service-portIf non-zero, starts embedded HTTP service on this port (Pulse + dev REST API). Set to 0 to disable. Ignored if jmx-manager and start-dev-rest-api are both false.S7070
jmx-managerIf true, member is willing to be a JMX Manager. If false, all jmx-manager-* props are ignored.S, Lfalse (except on locators)
jmx-manager-bind-addressAddress/hostname the JMX Manager listens on for non-HTTP connections (default: all local addresses). Ignored if jmx-manager=false or jmx-manager-port=0.S, Lnot set
jmx-manager-hostname-for-clientsHostname given to clients asking locator for JMX Manager location (default: reported IP). Ignored if jmx-manager=false or jmx-manager-port=0.S, Lnot set
jmx-manager-http-portDeprecated. Use http-service-port.S, L7070
jmx-manager-portPort JMX Manager listens on. 0 disables remote connections (you can use JVM JMX system properties instead). Ignored if jmx-manager=false.S, L1099
jmx-manager-startIf true, starts a JMX Manager when cache is created. Usually unnecessary (manager starts when needed if jmx-manager=true). Ignored if jmx-manager=false.S, Lfalse
jmx-manager-update-rateMilliseconds between pushing updates to JMX Managers. Should be ≥ statistic-sample-rate. Too high can cause stale values in gfsh/Pulse.S, L2000
load-cluster-configuration-from-dirIf true, loads cluster configuration from cluster_config directory in the locator (dedicated locators with cluster config enabled).Lfalse
locator-wait-timeSeconds a member waits for a locator to start if none available when joining (useful when starting all at once).S0
locatorsLocator list for members (must be consistent across cluster). Format examples:
text\nlocators=addr1[port1],addr2[port2]\nlocators=host1@addr1[port1]\nlocators=host1[port1],host2[port2]\n
Notes: On multi-homed hosts, hostname-only uses default address—specify addresses if locators use bind addresses. If locators is set, mcast-port defaults to 0. Invalid DNS hostnames can prevent gfsh-started members from producing log files.
S, Lnot set
lock-memoryIf true, locks heap and off-heap memory into RAM to prevent OS paging to disk.S, Lfalse
log-disk-space-limitMax size (MB) of all inactive log files combined. If exceeded, deletes oldest inactive logs until within limit. 0 = unlimited.S, L0
log-fileLog output file. If null, uses defaults: application → stdout; locator → <locator_name>.log; server → <server_name>.log.S, Lnull
log-file-size-limitMax size (MB) of a log file before rolling to a new child log. 0 disables rolling.S, L0
log-levelLog verbosity. Valid values (low→high): fine, config, info, warning, error, severe, none.S, Lconfig
max-wait-time-reconnectMax milliseconds to wait for cluster reconnect on each reconnect attempt.S, L60000
mcast-addressMulticast discovery address (used only if mcast-port0, must match across cluster). Choose different address and port per cluster.

Note: Peer-to-peer only.
S, L239.192.81.1 (IPv4) / FF38::1234 (IPv6)
mcast-flow-controlFlow-control tuning for UDP (unicast+multicast) no-ack messaging: byteAllowance,rechargeThreshold,rechargeBlockMs.
Min: 10000,0.1,500 ; Max: no_maximum,0.5,60000.

Note: Peer-to-peer only.
S, L1048576,0.25,5000
mcast-portMulticast port (with mcast-address). 0 disables multicast. Valid range: 0..65535.

Notes: Use different address+port per cluster; peer-to-peer only.
S, L0
mcast-recv-buffer-sizeSocket buffer size for incoming multicast. Valid range: 2048..OS_maximum.

Notes: Default may exceed Unix OS max; raise OS max to ≥ 1MB for high-volume. Peer-to-peer only.
S, L1048576
mcast-send-buffer-sizeSocket buffer size for outgoing multicast. Valid range: 2048..OS_maximum.

Note: Peer-to-peer only.
S, L65535
mcast-ttlMulticast reach. Lower may improve performance. 0 confines to local machine.

Note: Peer-to-peer only.
S, L32
member-timeoutMilliseconds used to detect unresponsive members. Heartbeats sent every half timeout; removal typically takes ~2–3× timeout if no responses. Valid range: 1000..600000.S, L5000
membership-port-rangePort range for UDP unicast and TCP failure detection, low-high. Member picks at least two unique ports (UDP + FD_SOCK); may also pick TCP DirectChannel if tcp-port=0. Range must have at least 3 available ports.S, L41000-61000
memcached-portIf non-zero, starts embedded Gemcached server on this port.S0
memcached-protocolProtocol for embedded Gemcached server: BINARY or ASCII.SASCII
nameSymbolic name for this system member.S, Lnot set
off-heap-memory-sizeOff-heap size in m or g. Examples:
text\noff-heap-memory-size=4096m\noff-heap-memory-size=120g\n
Snot set
redundancy-zoneRedundancy zone for partitioned-region redundancy (won’t place redundant copies in same zone).Snot set
remote-locatorsWAN: locators to connect to remote site(s). Formats mirror locators examples. Requires unique distributed-system-id.Lnot set
remove-unresponsive-clientIf true, primary server drops unresponsive clients (queue full) from itself and all secondaries; puts may block while queue is full.Sfalse
security-*Security properties (security-...) can be moved from gemfire.properties to gfsecurity.properties to restrict access.S, Lnot set
security-client-accessorDeprecated. Authorization callback (pre-operation), returns AccessControl.S, Lnot set
security-auth-token-enabled-componentsComma list used with security-manager to choose token auth components instead of basic auth. Valid: all, management, pulse.L""
security-client-accessor-ppDeprecated. Authorization callback (post-operation / notifications).S, Lnot set
security-client-auth-initAuthentication. Fully-qualified static method that returns AuthInitialize for client auth credentials.S, Lnot set
security-client-authenticatorDeprecated. Authentication. Static creation method returning Authenticator for peer credential verification.S, Lnot set
security-client-dhalgoDeprecated. Use ssl-enabled-components instead. Sets cipher for encrypting sensitive credentials via Diffie-Hellman on clients.S, Lnot set
security-log-fileSecurity log file; if unset uses regular log file.S, Lnot set
security-log-levelSecurity log level: fine, config, info, warning, error, severe, none.S, Lconfig
security-managerSecurityManager implementation for authentication/authorization callbacks.S, Lnot set
security-peer-auth-initAuthentication. Static method returning AuthInitialize for peer auth credentials.S, Lnot set
security-peer-authenticatorDeprecated. Authentication. Static method returning Authenticator for peer credential verification.S, Lnot set
security-peer-verifymember-timeoutTimeout (ms) used by peer to verify membership of an unknown authenticated peer requesting secure connection.S, L1000
security-post-processorPostProcessor implementation that can alter returned results of region get operations.S, Lnot set
security-udp-dhalgoCipher used for server-to-server UDP communications when defined.Snot set
serializable-object-filterSemicolon-separated list expanded using patterns per ObjectInputFilter.Config#createFilter into allowed class names for serialization when validate-serializable-objects=true.S, C"!*"
server-bind-addressMulti-homed hosts: NIC/address servers bind to for client/server comms (separate from peer-to-peer). Use IP (not hostname). Empty = same card as peer-to-peer (bind-address or default NIC).Snot set
socket-buffer-sizeTCP receive buffer size (bytes) used for data transmission; also chunk size for large messages. Larger = faster for large messages but more memory.S, L32768
socket-lease-timeMilliseconds a thread can have exclusive access to an unused socket. 0 = never expires. Ignored if conserve-sockets=true. Valid range: 0..600000.S, L60000
ssl-enabled-componentsComma-separated list of components to enable SSL for (cluster,gateway,jmx,locator,server,web) or all. Also set security-udp-dhalgo to secure UDP cluster comms.C, S, Lall
ssl-endpoint-identification-enabledIf true, clients validate the server hostname using the server certificate.C, S, Lfalse
ssl-use-default-contextIf true, allows use of default SSL context; also sets ssl-endpoint-identification-enabled=true.C, S, Lfalse
ssl-require-authenticationIf true, requires mutual (two-way) auth for SSL-enabled components (all except web).S, Ltrue
ssl-http-require-authenticationIf true, requires mutual auth for the web component.S, Lfalse
ssl-default-aliasDefault certificate alias; if empty uses first certificate in keystore.S, L""
ssl-<component>-aliasCertificate alias for one component (cluster,gateway,jmx,locator,server,web).S, L""
ssl-ciphersComma-separated list of SSL ciphers or any.S, Lany
ssl-parameter-extensionSSLParameterExtension implementation for SSL parameter extensions.S, Lnot set
ssl-protocolsComma-separated list of SSL protocols or any.S, Lany
ssl-keystore, ssl-keystore-passwordKeystore path and password.S, L""
ssl-truststore, ssl-truststore-passwordTruststore path and password.S, L""
ssl-keystore-type, ssl-truststore-typeKeystore/truststore types. JKS is common for Java; pkcs12 is another common option.S, LJKS
standard-output-always-onIf true, always logs to stdout even if a log file exists.S, Lfalse
start-dev-rest-apiIf true, starts the developer REST API when cache is created (configured by http-service-port / http-service-bind-address).Sfalse
start-locatorIf set, auto-starts a locator in-process on connect and stops it on disconnect. Formats:
text\nstart-locator=address[port]\nstart-locator=port\n
If only port is specified, uses member’s address. Auto-adds to locators if needed.
Snot set
statistic-archive-fileFile where statistic samples are written (e.g. StatisticsArchiveFile.gfs). Add .gz to compress. To disable: set to /dev/null.S, Lnot set
statistic-sample-rateStats sampling frequency (ms). Valid range: 100..60000.S, L1000
statistic-sampling-enabledEnables statistics sampling/archiving. Recommended in production; default sample rate has minimal perf impact.

Note: Does not apply to partitioned regions (stats always enabled there).
S, Lfalse
tcp-portTCP port for cache communications. 0 = OS chooses. Must be unique per process on a machine. Valid range: 0..65535.S, L0
thread-monitor-enabledIf true, enables monitoring of created operational threads; informational messages are written to log.Strue
thread-monitor-interval-msInterval (ms) at which thread monitoring runs.S60000
thread-monitor-time-limit-msTime (ms) after which a monitored thread is considered stuck.S30000
tombstone-gc-thresholdNumber of tombstones that can accumulate before triggering tombstone garbage collection.S100000
udp-fragment-sizeMax UDP fragment size (bytes) for unicast/multicast. Smaller messages may be combined up to this size. Valid range: 1000..60000.S, L60000
udp-recv-buffer-sizeUDP receive buffer size. If disable-tcp=false, reduced default of 65535 is used. Default 1048576 may exceed Unix OS max; raise OS max to ≥ 1MB for high-volume. Valid range: 2048..OS_maximum.S, L1048576
udp-send-buffer-sizeUDP send buffer size. Valid range: 2048..OS_maximum.S, L65535
use-cluster-configurationData members only. If true, requests and uses configuration from dedicated locator cluster-config services. If false, does not request it.Strue
user-command-packagesComma-separated Java packages containing classes implementing CommandMarker (loaded at startup and available in GFSH).Snot set
validate-serializable-objectsIf true, blocks deserialization of non-internal classes not allowed by serializable-object-filter (throws IncompatibleClassException). Requires JDK 8u121+; older servers/clients will fail on startup.S, Cfalse