Spring Boot for Tanzu GemFire 1.0

Configuration Metadata Reference

Last Updated February 19, 2025

This topic lists properties recognized and processed by Spring Data for VMware Tanzu GemFire and Spring Session for VMware Tanzu GemFire.

You can use these properties in Spring Boot application.properties or as JVM System properties, to configure different aspects of or enable individual features of VMware GemFire in a Spring application. When combined with the power of Spring Boot, they give you the ability to quickly create an application that uses VMware GemFire.

Spring Data-Based Properties

The following properties all have a spring.data.gemfire.* prefix. For example, to set the cache copy-on-read property, use spring.data.gemfire.cache.copy-on-read in Spring Boot application.properties.

Miscellaneous Properties

Name Description Default From

name

Name of the VMware GemFire server.

SpringBasedCacheClientApplication

ClientCacheApplication.name

locators

Comma-delimited list of Locator endpoints formatted as: locator1[port1],...​,locatorN[portN].

[]

PeerCacheApplication.locators

use-bean-factory-locator

Enable the Spring Data for VMware GemFire BeanFactoryLocator when mixing Spring config with VMware GemFire native config (such as cache.xml) and you wish to configure VMware GemFire objects declared in cache.xml with Spring.

false

ClientCacheApplication.useBeanFactoryLocator

GemFireCache Properties

Name Description Default From

cache.copy-on-read

Configure whether a copy of an object returned from Region.get(key) is made.

false

ClientCacheApplication.copyOnRead

cache.critical-heap-percentage

Percentage of heap at or above which the cache is considered in danger of becoming inoperable.

ClientCacheApplication.criticalHeapPercentage

cache.critical-off-heap-percentage

Percentage of off-heap at or above which the cache is considered in danger of becoming inoperable.

ClientCacheApplication.criticalOffHeapPercentage

cache.enable-auto-region-lookup

Whether to lookup Regions configured in VMware GemFire native configuration and declare them as Spring beans.

false

EnableAutoRegionLookup.enable

cache.eviction-heap-percentage

Percentage of heap at or above which the eviction should begin on Regions configured for HeapLRU eviction.

ClientCacheApplication.evictionHeapPercentage

cache.eviction-off-heap-percentage

Percentage of off-heap at or above which the eviction should begin on Regions configured for HeapLRU eviction.

ClientCacheApplication.evictionOffHeapPercentage

cache.log-level

Configure the log-level of a VMware GemFire cache.

config

ClientCacheApplication.logLevel

cache.name

Alias for spring.data.gemfire.name.

SpringBasedCacheClientApplication

ClientCacheApplication.name

cache.compression.bean-name

Name of a Spring bean that implements org.apache.geode.compression.Compressor.

EnableCompression.compressorBeanName

cache.compression.region-names

Comma-delimited list of Region names for which compression is configured.

[]

EnableCompression.RegionNames

cache.off-heap.memory-size

Determines the size of off-heap memory used by VMware GemFire in megabytes (m) or gigabytes (g) — for example, 120g

EnableOffHeap.memorySize

cache.off-heap.region-names

Comma-delimited list of Region names for which off-heap is configured.

[]

EnableOffHeap.RegionNames

ClientCache Properties

Table 3. spring.data.gemfire.*ClientCache properties
Name Description Default From

cache.client.durable-client-id

Used only for clients in a client/server installation. If set, this indicates that the client is durable and identifies the client. The ID is used by servers to reestablish any messaging that was interrupted by client downtime.

ClientCacheApplication.durableClientId

cache.client.durable-client-timeout

Used only for clients in a client/server installation. Number of seconds this client can remain disconnected from its server and have the server continue to accumulate durable events for it.

300

ClientCacheApplication.durableClientTimeout

cache.client.keep-alive

Whether the server should keep the durable client's queues alive for the timeout period.

false

ClientCacheApplication.keepAlive

Peer Cache Properties

Name Description Default From

cache.peer.enable-auto-reconnect

Whether a member (a Locator or Server) try to reconnect and reinitialize the cache after it has been forced out of the cluster by a network partition event or has otherwise been shunned by other members.

false

PeerCacheApplication.enableAutoReconnect

cache.peer.lock-lease

The length, in seconds, of distributed lock leases obtained by this cache.

120

PeerCacheApplication.lockLease

cache.peer.lock-timeout

The number of seconds a cache operation waits to obtain a distributed lock lease.

60

PeerCacheApplication.lockTimeout

cache.peer.message-sync-interval

The frequency (in seconds) at which a message is sent by the primary cache-server to all the secondary cache-server nodes to remove the events that have already been dispatched from the queue.

1

PeerCacheApplication.messageSyncInterval

cache.peer.search-timeout

The number of seconds a cache get operation can spend searching for a value.

300

PeerCacheApplication.searchTimeout

cache.peer.use-cluster-configuration

Whether this cache member node pulls its configuration metadata from the cluster-based cluster configuration service.

false

PeerCacheApplication.useClusterConfiguration

CacheServer Properties

Name Description Default From

cache.server.auto-startup

Whether the CacheServer should be started automatically at runtime.

true

CacheServerApplication.autoStartup

cache.server.bind-address

The IP address or hostname on which this cache server listens.

CacheServerApplication.bindAddress

cache.server.hostname-for-clients

The IP address or hostname that server locators tell to clients to indicate the IP address on which the cache server listens.

CacheServerApplication.hostNameForClients

cache.server.load-poll-interval

The frequency in milliseconds at which to poll the load probe on this cache server.

5000

CacheServerApplication.loadPollInterval

cache.server.max-connections

The maximum client connections.

800

CacheServerApplication.maxConnections

cache.server.max-message-count

The maximum number of messages that can be in a client queue.

230000

CacheServerApplication.maxMessageCount

cache.server.max-threads

The maximum number of threads allowed in this cache server to service client requests.

CacheServerApplication.maxThreads

cache.server.max-time-between-pings

The maximum amount of time between client pings.

60000

CacheServerApplication.maxTimeBetweenPings

cache.server.message-time-to-live

The time (in seconds) after which a message in the client queue expires.

180

CacheServerApplication.messageTimeToLive

cache.server.port

The port on which this cache server listens for clients.

40404

CacheServerApplication.port

cache.server.socket-buffer-size

The buffer size of the socket connection to this CacheServer.

32768

CacheServerApplication.socketBufferSize

cache.server.subscription-capacity

The capacity of the client queue.

1

CacheServerApplication.subscriptionCapacity

cache.server.subscription-disk-store-name

The name of the disk store for client subscription queue overflow.

CacheServerApplication.subscriptionDiskStoreName

cache.server.subscription-eviction-policy

The eviction policy that is executed when the capacity of the client subscription queue is reached.

none

CacheServerApplication.subscriptionEvictionPolicy

cache.server.tcp-no-delay

The outgoing socket connection tcp-no-delay setting.

true

CacheServerApplication.tcpNoDelay

CacheServer properties can be further targeted at specific CacheServer instances by using an optional bean name of the CacheServer bean defined in the Spring ApplicationContext. Consider the following example:

spring.data.gemfire.cache.server.[<cacheServerBeanName>].bind-address=...

Cluster Properties

Name Description Default From

cluster.Region.type

Specifies the data management policy used when creating Regions on the servers in the cluster.

RegionShortcut.PARTITION

EnableClusterConfiguration.serverRegionShortcut

DiskStore Properties

Name Description Default From

disk.store.allow-force-compaction

Whether to allow DiskStore.forceCompaction() to be called on Regions that use a disk store.

false

EnableDiskStore.allowForceCompaction

disk.store.auto-compact

Whether to cause the disk files to be automatically compacted.

true

EnableDiskStore.autoCompact

disk.store.compaction-threshold

The threshold at which an oplog becomes compactible.

50

EnableDiskStore.compactionThreshold

disk.store.directory.location

The system directory where the DiskStore (oplog) files are stored.

[]

EnableDiskStore.diskDirectories.location

disk.store.directory.size

The amount of disk space allowed to store disk store (oplog) files.

21474883647

EnableDiskStore.diskDirectories.size

disk.store.disk-usage-critical-percentage

The critical threshold for disk usage as a percentage of the total disk volume.

99.0

EnableDiskStore.diskUsageCriticalPercentage

disk.store.disk-usage-warning-percentage

The warning threshold for disk usage as a percentage of the total disk volume.

90.0

EnableDiskStore.diskUsageWarningPercentage

disk.store.max-oplog-size

The maximum size (in megabytes) a single oplog (operation log) can be.

1024

EnableDiskStore.maxOplogSize

disk.store.queue-size

The maximum number of operations that can be asynchronously queued.

EnableDiskStore.queueSize

disk.store.time-interval

The number of milliseconds that can elapse before data written asynchronously is flushed to disk.

1000

EnableDiskStore.timeInterval

disk.store.segments

The number of segments the DiskStore will be organized into.

0

EnableDiskStore.segments

disk.store.write-buffer-size

Configures the write buffer size in bytes.

32768

EnableDiskStore.writeBufferSize

DiskStore properties can be further targeted at specific DiskStore instances by setting the DiskStore.name property (see VMware GemFire Java API Reference).

For example, you can specify directory location of the files for a specific, named DiskStore by using:

spring.data.gemfire.disk.store.Example.directory.location=/path/to/gemfire/disk-stores/Example/

The directory location and size of the DiskStore files can be further divided into multiple locations and size using array syntax:

spring.data.gemfire.disk.store.Example.directory[0].location=/path/to/gemfire/disk-stores/Example/one
spring.data.gemfire.disk.store.Example.directory[0].size=4096000
spring.data.gemfire.disk.store.Example.directory[1].location=/path/to/gemfire/disk-stores/Example/two
spring.data.gemfire.disk.store.Example.directory[1].size=8192000

Both the name and array index are optional, and you can use any combination of name and array index. Without a name, the properties apply to all DiskStore instances. Without array indexes, all named DiskStore files are stored in the specified location and limited to the defined size.

Entity Properties

Name Description Default From

entities.base-packages

Comma-delimited list of package names indicating the start points for the entity scan.

EnableEntityDefinedRegions.basePackages

Locator Properties

Name Description Default From

locator.host

The IP address or hostname of the system NIC to which the embedded Locator is bound to listen for connections.

EnableLocator.host

locator.port

The network port to which the embedded Locator will listen for connections.

10334

EnableLocator.port

Logging Properties

Name Description Default From

logging.level

The log level of an VMware GemFire cache. Alias for 'spring.data.gemfire.cache.log-level'.

config

EnableLogging.logLevel

logging.log-disk-space-limit

The amount of disk space allowed to store log files.

EnableLogging.logDiskSpaceLimit

logging.log-file

The pathname of the log file used to log messages.

EnableLogging.logFile

logging.log-file-size

The maximum size of a log file before the log file is rolled.

EnableLogging.logFileSize

Management Properties

Name Description Default From

management.use-http

Whether to use the HTTP protocol to communicate with a VMware GemFire Manager.

false

EnableClusterConfiguration.useHttp

management.http.host

The IP address or hostname of the VMware GemFire Manager that runs the HTTP service.

EnableClusterConfiguration.host

management.http.port

The port used by the VMware GemFire Manager's HTTP service to listen for connections.

7070

EnableClusterConfiguration.port

Manager Properties

Name Description Default From

manager.access-file

The access control list (ACL) file used by the Manager to restrict access to the JMX MBeans by the clients.

EnableManager.accessFile

manager.bind-address

The IP address or hostname of the system NIC used by the Manager to bind and listen for JMX client connections.

EnableManager.bindAddress

manager.hostname-for-clients

The hostname given to JMX clients to ask the Locator for the location of the Manager.

EnableManager.hostNameForClients

manager.password-file

By default, the JMX Manager lets clients without credentials connect. If this property is set to the name of a file, only clients that connect with credentials that match an entry in this file are allowed.

EnableManager.passwordFile

manager.port

The port used by the Manager to listen for JMX client connections.

1099

EnableManager.port

manager.start

Whether to start the Manager service at runtime.

false

EnableManager.start

manager.update-rate

The rate, in milliseconds, at which this member pushes updates to any JMX Managers.

2000

EnableManager.updateRate

PDX Properties

Name Description Default From

pdx.disk-store-name

The name of the DiskStore used to store PDX type metadata to disk when PDX is persistent.

EnablePdx.diskStoreName

pdx.ignore-unread-fields

Whether PDX ignores fields that were unread during deserialization.

false

EnablePdx.ignoreUnreadFields

pdx.persistent

Whether PDX persists type metadata to disk.

false

EnablePdx.persistent

pdx.read-serialized

Whether a Region entry is returned as a PdxInstance or deserialized back into object form on read.

false

EnablePdx.readSerialized

pdx.serialize-bean-name

The name of a custom Spring bean that implements org.apache.geode.pdx.PdxSerializer.

EnablePdx.serializerBeanName

Pool Properties

Name Description Default From

pool.free-connection-timeout

The timeout used to acquire a free connection from a Pool.

10000

EnablePool.freeConnectionTimeout

pool.idle-timeout

The amount of time a connection can be idle before expiring (and closing) the connection.

5000

EnablePool.idleTimeout

pool.load-conditioning-interval

The interval for how frequently the Pool checks to see if a connection to a given server should be moved to a different server to improve the load balance.

300000

EnablePool.loadConditioningInterval

pool.locators

Comma-delimited list of locator endpoints in the format of locator1[port1],..,locatorN[portN]

EnablePool.locators<

pool.max-connections

The maximum number of client to server connections that a Pool will create.

EnablePool.maxConnections

pool.min-connections

The minimum number of client to server connections that a Pool maintains.

1

EnablePool.minConnections

pool.multi-user-authentication

Whether the created Pool can be used by multiple authenticated users.

false

EnablePool.multiUserAuthentication

pool.ping-interval

How often to ping servers to verify that they are still alive.

10000

EnablePool.pingInterval

pool.pr-single-hop-enabled

Whether to perform single-hop data access operations between the client and servers. When true, the client is aware of the location of partitions on servers that host Regions with DataPolicy.PARTITION.

true

EnablePool.prSingleHopEnabled

pool.read-timeout

The number of milliseconds to wait for a response from a server before timing out the operation and trying another server (if any are available).

10000

EnablePool.readTimeout

pool.ready-for-events

Whether to signal the server that the client is prepared and ready to receive events.

false

ClientCacheApplication.readyForEvents

pool.retry-attempts

The number of times to retry a request after timeout/exception.

EnablePool.retryAttempts

pool.server-group

The group that all servers to which a Pool connects must belong.

EnablePool.serverGroup

pool.servers

Comma-delimited list of CacheServer endpoints in the format of server1[port1],...,serverN[portN]

EnablePool.servers

pool.socket-buffer-size

The socket buffer size for each connection made in all Pools.

32768

EnablePool.socketBufferSize

pool.statistic-interval

How often to send client statistics to the server.

EnablePool.statisticInterval

pool.subscription-ack-interval

The interval in milliseconds to wait before sending acknowledgements to the CacheServer for events received from the server subscriptions.

100

EnablePool.subscriptionAckInterval

pool.subscription-enabled

Whether the created Pool has server-to-client subscriptions enabled.

false

EnablePool.subscriptionEnabled

pool.subscription-message-tracking-timeout

The messageTrackingTimeout attribute, which is the time-to-live period, in milliseconds, for subscription events the client has received from the server.

900000

EnablePool.subscriptionMessageTrackingTimeout

pool.subscription-redundancy

The redundancy level for all Pools server-to-client subscriptions.

EnablePool.subsriptionRedundancy

pool.thread-local-connections

The thread local connections policy for all Pools.

false

EnablePool.threadLocalConnections

Security Properties

Name Description Default From

security.username

The name of the user used to authenticate with the servers.

EnableSecurity.securityUsername

security.password

The user password used to authenticate with the servers.

EnableSecurity.securityPassword

security.properties-file

The system pathname to a properties file that contains security credentials.

EnableAuth.propertiesFile

security.client.accessor

X

X

EnableAuth.clientAccessor

security.client.accessor-post-processor

The callback that should be invoked in the post-operation phase, which is when the operation has completed on the server but before the result is sent to the client.

EnableAuth.clientAccessorPostProcessor

security.client.authentication-initializer

Static creation method that returns an AuthInitialize object, which obtains credentials for peers in a cluster.

EnableSecurity.clientAuthentiationInitializer

security.client.authenticator

Static creation method that returns an Authenticator object used by a cluster member (Locator or Server) to verify the credentials of a connecting client.

EnableAuth.clientAuthenticator

security.client.diffie-hellman-algorithm

Used for authentication. For secure transmission of sensitive credentials (such as passwords), you can encrypt the credentials by using the Diffie-Hellman key-exchange algorithm. You can do so by setting the security-client-dhalgo system property on the clients to the name of a valid, symmetric key cipher supported by the JDK.

EnableAuth.clientDiffieHellmanAlgorithm

security.log.file

The pathname to a log file used for security log messages.

EnableAuth.securityLogFile

security.log.level

The log level for security log messages.

EnableAuth.securityLogLevel

security.manager.class-name

The name of a class that implements org.apache.geode.security.SecurityManager.

EnableSecurity.securityManagerClassName

security.peer.authentication-initializer

Static creation method that returns an AuthInitialize object, which obtains credentials for peers in a cluster.

EnableSecurity.peerAuthenticationInitializer

security.peer.authenticator

Static creation method that returns an Authenticator object, which is used by a peer to verify the credentials of a connecting node.

EnableAuth.peerAuthenticator

security.peer.verify-member-timeout

The timeout in milliseconds used by a peer to verify membership of an unknown authenticated peer requesting a secure connection.

EnableAuth.peerVerifyMemberTimeout

security.post-processor.class-name

The name of a class that implements the org.apache.geode.security.PostProcessor interface that can be used to change the returned results of Region get operations.

EnableSecurity.securityPostProcessorClassName

security.shiro.ini-resource-path

The VMware GemFire System property that refers to the location of an Apache Shiro INI file that configures the Apache Shiro Security Framework in order to secure VMware GemFire.

EnableSecurity.shiroIniResourcePath

SSL Properties

Name Description Default From

security.ssl.certificate.alias.cluster

The alias to the stored SSL certificate used by the cluster to secure communications.

EnableSsl.componentCertificateAliases

security.ssl.certificate.alias.default-alias

The default alias to the stored SSL certificate used to secure communications across the entire VMware GemFire system.

EnableSsl.defaultCertificateAlias

security.ssl.certificate.alias.gateway

The alias to the stored SSL certificate used by the WAN Gateway Senders/Receivers to secure communications.

EnableSsl.componentCertificateAliases

security.ssl.certificate.alias.jmx

The alias to the stored SSL certificate used by the Manager's JMX-based JVM MBeanServer and JMX clients to secure communications.

EnableSsl.componentCertificateAliases

security.ssl.certificate.alias.locator

The alias to the stored SSL certificate used by the Locator to secure communications.

EnableSsl.componentCertificateAliases

security.ssl.certificate.alias.server

The alias to the stored SSL certificate used by clients and servers to secure communications.

EnableSsl.componentCertificateAliases

security.ssl.certificate.alias.web

The alias to the stored SSL certificate used by the embedded HTTP server to secure communications (HTTPS).

EnableSsl.componentCertificateAliases

security.ssl.ciphers

Comma-separated list of SSL ciphers or any.

EnableSsl.ciphers

security.ssl.components

Comma-delimited list of VMware GemFire components (for example, WAN) to be configured for SSL communication.

EnableSsl.components

security.ssl.keystore

The system pathname to the Java KeyStore file storing certificates for SSL.

EnableSsl.keystore

security.ssl.keystore.password

The password used to access the Java KeyStore file.

EnableSsl.keystorePassword

security.ssl.keystore.type

The password used to access the Java KeyStore file (for example, JKS).

EnableSsl.keystoreType

security.ssl.protocols

Comma-separated list of SSL protocols or any.

EnableSsl.protocols

security.ssl.require-authentication

Whether two-way authentication is required.

EnableSsl.requireAuthentication

security.ssl.truststore

The system pathname to the trust store (Java KeyStore file) that stores certificates for SSL.

EnableSsl.truststore

security.ssl.truststore.password

The password used to access the trust store (Java KeyStore file).

EnableSsl.truststorePassword

security.ssl.truststore.type

The password used to access the trust store (ex. Java KeyStore (JKS) file).

EnableSsl.truststoreType

security.ssl.web-require-authentication

Whether two-way HTTP authentication is required.

false

EnableSsl.webRequireAuthentication

Service Properties

Name Description Default From

service.http.bind-address

The IP address or hostname of the system NIC used by the embedded HTTP server to bind and listen for HTTP(S) connections.

EnableHttpService.bindAddress

service.http.port

The port used by the embedded HTTP server to listen for HTTP(S) connections.

7070

EnableHttpService.port

service.http.ssl-require-authentication

Whether two-way HTTP authentication is required.

false

EnableHttpService.sslRequireAuthentication

service.http.dev-rest-api-start

Whether to start the Developer REST API web service. A full installation of VMware GemFire is required, and you must set the $GEMFIRE_HOME environment variable.

false

EnableHttpService.startDeveloperRestApi

service.memcached.port

The port of the embedded Memcached server (service).

11211

EnableMemcachedServer.port

service.memcached.protocol

The protocol used by the embedded Memcached server (service).

ASCII

EnableMemcachedServer.protocol

Spring Session-Based Properties

The following properties all have a spring.session.data.gemfire.* prefix. For example, to set the session Region name, set spring.session.data.gemfire.session.region.name in Spring Boot application.properties.

Spring Session Properties

Name Description Default From

cache.client.pool.name

Name of the pool used to send data access operations between the client and servers.

gemfirePool

EnableGemFireHttpSession.poolName

cache.client.Region.shortcut

The DataPolicy used by the client Region to manage (HTTP) session state.

ClientRegionShortcut.PROXY

EnableGemFireHttpSession.clientRegionShortcut

cache.server.Region.shortcut

The DataPolicy used by the server Region to manage (HTTP) session state.

RegionShortcut.PARTITION

EnableGemFireHttpSession.serverRegionShortcut

session.attributes.indexable

The names of session attributes for which an Index is created.

[]

EnableGemFireHttpSession.indexableSessionAttributes

session.expiration.max-inactive-interval-seconds

Configures the number of seconds in which a session can remain inactive before it expires.

1800

EnableGemFireHttpSession.maxInactiveIntervalSeconds

session.Region.name

The name of the (client/server) Region used to manage (HTTP) session state.

ClusteredSpringSessions

EnableGemFireHttpSession.RegionName

session.serializer.bean-name

The name of a Spring bean that implements org.springframework.session.data.gemfire.serialization.SessionSerializer.

EnableGemFireHttpSession.sessionSerializerBeanName

While we do not recommend using VMware GemFire properties directly in your Spring applications, Spring Boot for Tanzu GemFire does not prevent you from doing so. See the complete reference to the VMware GemFire specific properties.

VMware GemFire is very strict about the properties that may be specified in a gemfire.properties file. You cannot mix Spring properties with gemfire.* properties in a VMware GemFire gemfire.properties file.