Annotation Interface EnableGemFireProperties


The EnableGemFireProperties annotation marks a Spring @Configuration annotated class to configure GemFire/Geode System properties at runtime during [Spring Boot] application startup.
Since:
1.9.0
Author:
John Blum
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    int
    Number of seconds the distributed system will wait after the ack-wait-threshold for a message to be acknowledged before it issues an alert at severe level.
    int
    Number of seconds a distributed message can wait for acknowledgment before it sends an alert to signal that something might be wrong with the system member that is unresponsive.
    long
    The number of milliseconds a process that is publishing to this process should attempt to distribute a cache operation before switching over to asynchronous messaging for this process.
    int
    Affects non-conflated asynchronous queues for members that publish to this member.
    long
    Affects asynchronous queues for members that publish to this member.
    Relevant only for multi-homed hosts - machines with multiple network interface cards (NICs).
    Declarative initialization file for the member’s cache.
    This property specifies the directory in which the cluster configuration related disk-store and artifacts are stored.
    Used only by clients in a client/server installation.
    boolean
    Specifies whether sockets are shared by the system member’s threads.
    boolean
    Specifies whether to distribute the deltas for entry updates, instead of the full values, between clients and servers, and between peers.
    Working directory used when deploying JAR application files to distributed system members.
    boolean
    Boolean indicating whether to disable the use of TCP/IP sockets for inter-cache point-to-point messaging.
    int
    Identifier used to distinguish messages from different distributed systems.
    boolean
    Boolean instructing the system to detect and handle splits in the distributed system, typically caused by a partitioning of the network (split brain) where the distributed system is running.
    boolean
    Whether partitioned regions will put redundant copies of the same data in different members running on the same physical machine.
    Defines the list of groups that this member belongs to.
    boolean
    Setting this property to true causes loading of cluster configuration from the cluster_config directory in the Locator.
    long
    The number of seconds that a member should wait for a Locator to start if a Locator is not available when attempting to join the distributed system.
    boolean
    When true, locks heap and off-heap memory into RAM to prevent the operating system from paging the memory out to disk.
    long
    Maximum number of milliseconds to wait for the distributed system to reconnect on each reconnect attempt.
    The range of ports available for unicast UDP messaging and for TCP failure detection.
    long
    GemFire uses the member-timeout server configuration, specified in milliseconds, to detect the abnormal termination of members.
    Configures the name of this member in the Apache Geode/Pivotal GemFire distributed system whether the member is a client in the client/server topology or a peer in the cluster.
    Defines this member’s redundancy zone.
    Used to configure the Locators that a cluster will use in order to connect to a remote site in a multi-site (WAN) configuration.
    boolean
    When this property is set to true, the primary server drops unresponsive clients from all secondaries and itself.
    A List of items that become full class names of objects that the system will serialize when the property validateSerializableObjects() is set to true.
    int
    Receive buffer sizes in bytes of the TCP/IP connections used for data transmission.
    long
    Time, in milliseconds, a thread can have exclusive access to a socket it is not actively using.
    int
    The TCP port to listen on for cache communications.
    int
    The number of tombstones that can accumulate before the GemFire member triggers garbage collection for tombstones.
    int
    Maximum fragment size, in bytes, for transmission over UDP unicast or multicast sockets.
    int
    The size of the socket buffer used for incoming UDP point-to-point transmissions.
    int
    The size of the socket buffer used for outgoing UDP point-to-point transmissions.
    A comma separated list of Java packages that contain classes implementing the Spring Shell CommandMarker interface.
    boolean
    A boolean that defaults to false.
  • Element Details

    • ackSevereAlertThreshold

      int ackSevereAlertThreshold
      Number of seconds the distributed system will wait after the ack-wait-threshold for a message to be acknowledged before it issues an alert at severe level. A value of zero disables this feature. Defaults to 0 seconds.
      Default:
      0
    • ackWaitThreshold

      int ackWaitThreshold
      Number of seconds a distributed message can wait for acknowledgment before it sends an alert to signal that something might be wrong with the system member that is unresponsive. The waiter continues to wait. The alerts are logged in the system member’s log as warnings. Valid values are in the range 0…2147483647 Defaults to 15 seconds.
      Default:
      15
    • asyncDistributionTimeout

      long asyncDistributionTimeout
      The number of milliseconds a process that is publishing to this process should attempt to distribute a cache operation before switching over to asynchronous messaging for this process. The switch to asynchronous messaging lasts until this process catches up, departs, or some specified limit is reached, such as async-queue-timeout or async-max-queue-size. This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication. Defaults to 0 milliseconds.
      Default:
      0L
    • asyncMaxQueueSize

      int asyncMaxQueueSize
      Affects non-conflated asynchronous queues for members that publish to this member. This is the maximum size the queue can reach (in megabytes) before the publisher asks this member to leave the distributed system. Valid values are in the range 0..1024. This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication. Defaults to 8 MB.
      Default:
      8
    • asyncQueueTimeout

      long asyncQueueTimeout
      Affects asynchronous queues for members that publish to this member. This is the maximum milliseconds the publisher should wait with no distribution to this member before it asks this member to leave the distributed system. Used for handling slow receivers. This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication. Defaults to 60000 milliseconds.
      Default:
      60000L
    • bindAddress

      String bindAddress
      Relevant only for multi-homed hosts - machines with multiple network interface cards (NICs). Specifies the adapter card the cache binds to for peer-to-peer (P2P) communication. Also specifies the default location for GemFire Servers to listen on, which is used unless overridden by the server-bind-address. An empty string causes the member to listen on the default card for the machine. This is a machine-wide attribute used for system member and client/server communication. It has no effect on Locator location, unless the Locator is embedded in a member process. Specify the IP address, not the hostname, because each network card may not have a unique hostname. An empty string (the default) causes the member to listen on the default card for the machine. Defaults to unset.
      Default:
      ""
    • cacheXmlFile

      String cacheXmlFile
      Declarative initialization file for the member’s cache. Defaults to unset.
      Default:
      ""
    • clusterConfigurationDirectory

      String clusterConfigurationDirectory
      This property specifies the directory in which the cluster configuration related disk-store and artifacts are stored. This property is only applicable to dedicated Locators that have enable-cluster-configuration set to true. Defaults to unset.
      Default:
      ""
    • conflateEvents

      String conflateEvents
      Used only by clients in a client/server installation. This is a client-side property that is passed to the server. Affects subscription queue conflation in this client’s servers. Specifies whether to conflate (true setting), not conflate (false), or to use the server’s conflation setting (server). Defaults to server.
      Default:
      "server"
    • conserveSockets

      boolean conserveSockets
      Specifies whether sockets are shared by the system member’s threads. If true, threads share, and a minimum number of sockets are used to connect to the distributed system. If false, every application thread has its own sockets for distribution purposes. You can override this setting for individual threads inside your application. Where possible, it is better to set conserve-sockets to true and enable the use of specific extra sockets in the application code if needed. WAN deployments increase the messaging demands on a GemFire system. To avoid hangs related to WAN messaging, always set conserve-sockets to false for GemFire members that participate in a WAN deployment. Defaults to true.
      Default:
      true
    • deltaPropagation

      boolean deltaPropagation
      Specifies whether to distribute the deltas for entry updates, instead of the full values, between clients and servers, and between peers. Default to true.
      Default:
      true
    • deployWorkingDirectory

      String deployWorkingDirectory
      Working directory used when deploying JAR application files to distributed system members. This directory can be local and unique to the member or a shared resource. Defaults to current working directory of this GemFire JVM process.
      Default:
      "."
    • disableTcp

      boolean disableTcp
      Boolean indicating whether to disable the use of TCP/IP sockets for inter-cache point-to-point messaging. If disabled, the cache uses datagram (UDP) sockets. Defaults to false.
      Default:
      false
    • distributedSystemId

      int distributedSystemId
      Identifier used to distinguish messages from different distributed systems. Set this to different values for different systems in a multi-site (WAN) configuration. This is required for Portable Data eXchange (PDX) data serialization. This setting must be the same for every member in the same distributed system and unique to the distributed system within the WAN installation. -1 means no setting. Valid values are integers in the range -1…255. Defaults to -1.
      Default:
      -1
    • enableNetworkPartitionDetection

      boolean enableNetworkPartitionDetection
      Boolean instructing the system to detect and handle splits in the distributed system, typically caused by a partitioning of the network (split brain) where the distributed system is running. We recommend setting this property to true. You must set this property to the same value across all your distributed system members. In addition, you must set this property to true if you are using persistent Regions and configure your Regions to use DISTRIBUTED_ACK or GLOBAL scope to avoid potential data conflicts. Defaults to false.
      Default:
      false
    • enforceUniqueHost

      boolean enforceUniqueHost
      Whether partitioned regions will put redundant copies of the same data in different members running on the same physical machine. By default, GemFire tries to put redundant copies on different machines, but it will put them on the same machine if no other machines are available. Setting this property to true prevents this and requires different machines for redundant copies. Defaults to false.
      Default:
      false
    • groups

      String[] groups
      Defines the list of groups that this member belongs to. Use commas to separate group names. Note that anything defined by the roles gemfire property will also be considered a group. Default to unset.
      Default:
      {}
    • loadClusterConfigurationFromDirectory

      boolean loadClusterConfigurationFromDirectory
      Setting this property to true causes loading of cluster configuration from the cluster_config directory in the Locator. This property is only applicable to dedicated Locators that have enable-cluster-configuration set to true. Defaults to false.
      Default:
      false
    • locatorWaitTimeout

      long locatorWaitTimeout
      The number of seconds that a member should wait for a Locator to start if a Locator is not available when attempting to join the distributed system. Use this setting when you are starting Locators and peers all at once. This timeout allows peers to wait for the Locators to finish starting up before attempting to join the distributed system. Defaults to 0 seconds.
      Default:
      0L
    • lockMemory

      boolean lockMemory
      When true, locks heap and off-heap memory into RAM to prevent the operating system from paging the memory out to disk. Defaults to false.
      Default:
      false
    • maxWaitTimeReconnect

      long maxWaitTimeReconnect
      Maximum number of milliseconds to wait for the distributed system to reconnect on each reconnect attempt. PeerCacheApplication.enableAutoReconnect() or CacheServerApplication.enableAutoReconnect() must be set to true for this property to have any effect. Defaults to 60000 milliseconds.
      Default:
      60000L
    • memberTimeout

      long memberTimeout
      GemFire uses the member-timeout server configuration, specified in milliseconds, to detect the abnormal termination of members. The configuration setting is used in two ways: 1) First, it is used during the UDP heartbeat detection process. When a member detects that a heartbeat datagram is missing from the member that it is monitoring after the time interval of 2 * the value of member-timeout, the detecting member attempts to form a TCP/IP stream-socket connection with the monitored member as described in the next case. 2) The property is then used again during the TCP/IP stream-socket connection. If the suspected process does not respond to the are you alive datagram within the time period specified in member-timeout, the membership coordinator sends out a new membership view that notes the member’s failure. Valid values are in the range 1000..600000. Defaults to 5000 milliseconds.
      Default:
      5000L
    • membershipPortRange

      String membershipPortRange
      The range of ports available for unicast UDP messaging and for TCP failure detection. This is specified as two integers separated by a hyphen. Different members can use different ranges. GemFire randomly chooses at least two unique integers from this range for the member, one for UDP unicast messaging and the other for TCP failure detection messaging. If tcp-port is configured to 0, it will also randomly select a port from this range for TCP sockets used for peer-to-peer communication only. Therefore, the specified range must include at least three available port numbers (UDP, FD_SOCK, and TCP DirectChannel). The system uniquely identifies the member using the combined host IP address and UDP port number. You may want to restrict the range of ports that GemFire uses so the product can run in an environment where routers only allow traffic on certain ports. Defaults to 1024-65535.
      Default:
      "1024-65535"
    • name

      String name
      Configures the name of this member in the Apache Geode/Pivotal GemFire distributed system whether the member is a client in the client/server topology or a peer in the cluster. Defaults to unset.
      Default:
      ""
    • redundancyZone

      String redundancyZone
      Defines this member’s redundancy zone. Used to separate member’s into different groups for satisfying Partitioned Region redundancy. If this property is set, GemFire will not put redundant copies of data in members with the same redundancy zone setting. Defaults to unset.
      See Also:
      Default:
      ""
    • remoteLocators

      String remoteLocators
      Used to configure the Locators that a cluster will use in order to connect to a remote site in a multi-site (WAN) configuration. To use Locators in a WAN configuration, you must specify a unique distributed system ID (distributed-system-id) for the local cluster and remote Locator(s) for the remote clusters to which you will connect. For each remote Locator, provide a host name and/or address (separated by ‘@’, if you use both), followed by a port number in brackets. Examples:
           
       remote-locators=address1[port1],address2[port2]
      
       remote-locators=hostName1@address1[port1],hostName2@address2[port2]
      
       remote-locators=hostName1[port1],hostName2[port2]
           
       
      Defaults to unset.
      Default:
      ""
    • removeUnresponsiveClient

      boolean removeUnresponsiveClient
      When this property is set to true, the primary server drops unresponsive clients from all secondaries and itself. Clients are deemed unresponsive when their messaging queues become full on the server. While a client’s queue is full, puts that would add to the queue block on the server. Defaults to false.
      Default:
      false
    • serializableObjectFilter

      String[] serializableObjectFilter
      A List of items that become full class names of objects that the system will serialize when the property validateSerializableObjects() is set to true. The list is expanded using the patterns specified in the createFilter method at Class ObjectInputFilter.Config. Defaults to unset.
      Default:
      {}
    • socketBufferSize

      int socketBufferSize
      Receive buffer sizes in bytes of the TCP/IP connections used for data transmission. To minimize the buffer size allocation needed for distributing large, serializable messages, the messages are sent in chunks. This setting determines the size of the chunks. Larger buffers can handle large messages more quickly, but take up more memory. Defaults to 32768 bytes.
      Default:
      32768
    • socketLeaseTime

      long socketLeaseTime
      Time, in milliseconds, a thread can have exclusive access to a socket it is not actively using. A value of zero causes socket leases to never expire. This property is ignored if conserve-sockets is true. Valid values are in the range 0..600000. Defaults to 60000 milliseconds.
      Default:
      60000L
    • tcpPort

      int tcpPort
      The TCP port to listen on for cache communications. If set to zero, the operating system selects an available port. Each process on a machine must have its own TCP port. Note that some operating systems restrict the range of ports usable by non-privileged users, and using restricted port numbers can cause runtime errors in GemFire startup. Valid values are in the range 0..65535. Defaults to 0.
      Default:
      0
    • tombstoneGcThreshold

      int tombstoneGcThreshold
      The number of tombstones that can accumulate before the GemFire member triggers garbage collection for tombstones. Defaults to 100000 tombstones.
      See Also:
      Default:
      100000
    • udpFragmentSize

      int udpFragmentSize
      Maximum fragment size, in bytes, for transmission over UDP unicast or multicast sockets. Smaller messages are combined, if possible, for transmission up to the fragment size setting. Valid values are in the range 1000..60000. Defaults to 60000 bytes.
      Default:
      60000
    • udpReceiveBufferSize

      int udpReceiveBufferSize
      The size of the socket buffer used for incoming UDP point-to-point transmissions. If disable-tcp is false, a reduced buffer size of 65535 is used by default. The default setting of 1048576 is higher than the default OS maximum buffer size on Unix, which should be increased to at least 1 megabyte to provide high-volume messaging on Unix systems. Valid values are in the range 2048.. OS_maximum. Defaults to 1048576 bytes.
      Default:
      1048576
    • udpSendBufferSize

      int udpSendBufferSize
      The size of the socket buffer used for outgoing UDP point-to-point transmissions. Valid values are in the range 2048..OS_maximum. Defaults to 65535 bytes.
      Default:
      65535
    • userCommandPackages

      String userCommandPackages
      A comma separated list of Java packages that contain classes implementing the Spring Shell CommandMarker interface. Matching classes will be loaded when the VM starts and will be available in the GFSH command-line utility. Defaults to unset.
      Default:
      ""
    • validateSerializableObjects

      boolean validateSerializableObjects
      A boolean that defaults to false. When true, instances of classes that are not internal to Apache Geode/Pivotal GemFire and whose class name is not allowed by the list defined in the serializableObjectFilter() property will not be permitted to be deserialized. An IncompatibleClassException is thrown for objects not listed. JDK 8 build 121 or a later build must be installed to use this property. Servers and clients that do not meet this requirement will throw an exception upon startup. Defaults to false.
      Default:
      false