<% set_title("gemfire.properties and gfsecurity.properties:", product_name, "Properties") %>

<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

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 <%=vars.product_name%> 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 <%=vars.product_name_long%> Property Files](non-ascii_strings_in_config_files.html) 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.

<table>
<colgroup>
<col width="35%" />
<col width="45%" />
<col width="10%" />
<col width="10%" />
</colgroup>
<thead>
<tr class="header">
<th>Setting</th>
<th>Definition</th>
<th>Applies to (Server Locator, Client)</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td>ack-severe-alert-threshold</td>
<td>Number of seconds the cluster will wait after the <code class="ph codeph">ack-wait-threshold</code> for a message to be acknowledged before it issues an alert at severe level. A value of zero disables this feature.</td>
<td>S, L</td>
<td>0</td>
</tr>
<tr>
<td>ack-wait-threshold</td>
<td>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.
<p>The waiter continues to wait. The alerts are logged in the system member’s log as warnings.</p>
Valid values are in the range 0...2147483647</td>
<td>S, L</td>
<td>15</td>
</tr>
<tr>
<td>archive-disk-space-limit</td>
<td>Maximum size (in megabytes) of all inactive statistic archive files combined. If this limit is exceeded, inactive archive files are deleted, oldest first, until the total size is within the limit. If set to zero, disk space use is unlimited.</td>
<td>S, L</td>
<td>0</td>
</tr>
<tr>
<td>archive-file-size-limit</td>
<td>The maximum size (in megabytes) of a single statistic archive file. Once this limit is exceeded, a new statistic archive file is created, and the current archive file becomes inactive. If set to zero, file size is unlimited.</td>
<td>S, L</td>
<td>0</td>
</tr>
<tr>
<td>async-distribution-timeout</td>
<td>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.
<p>To enable asynchronous messaging, the value must be set above zero. Valid values are in the range 0...60000.</p>
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication.</p>
</div></td>
<td>S</td>
<td>0</td>
</tr>
<tr>
<td>async-max-queue-size</td>
<td>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 cluster.
<p>Valid values are in the range 0..1024.</p>
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication.</p>
</div></td>
<td>S</td>
<td>8</td>
</tr>
<tr>
<td>async-queue-timeout</td>
<td>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 cluster. Used for handling slow receivers.
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication.</p>
</div></td>
<td>S, L</td>
<td>60000</td>
</tr>
<tr>
<td>bind-address</td>
<td>Relevant only for multi-homed hosts - machines with multiple network interface cards. Specifies the adapter card the cache binds to for peer-to-peer communication. Also specifies the default location for <%=vars.product_name%> servers to listen on, which is used unless overridden by the <code class="ph codeph">server-bind-address</code>. 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.
<p>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.</p></td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>cache-xml-file</td>
<td>Declarative initialization file for the member's cache.</td>
<td>S</td>
<td>cache.xml</td>
</tr>
<tr>
<td>cluster-configuration-dir</td>
<td>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 &quot;enable-cluster-configuration&quot; set to true.</td>
<td>L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>conflate-events</td>
<td>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).</td>
<td>S</td>
<td>server</td>
</tr>
<tr>
<td>conserve-sockets</td>
<td>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 cluster. 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 <%=vars.product_name%> system. To avoid hangs related to WAN messaging, always set <code class="ph codeph">conserve-sockets=false</code> for <%=vars.product_name%> members that participate in a WAN deployment.</td>
<td>S, L</td>
<td>true</td>
</tr>
<tr>
<td>delta-propagation</td>
<td>Specifies whether to distribute the deltas for entry updates, instead of the full values, between clients and servers and between peers.</td>
<td>S</td>
<td>true</td>
</tr>
<tr>
<td>deploy-working-dir</td>
<td>Working directory used when deploying JAR application files to cluster members. This directory can be local and unique to the member or a shared resource. 
See <a href="../../configuring/cluster_config/deploying_application_jars.html">Deploying Application JARs to <%=vars.product_name_long%> Members</a> for more information.</td>
<td>S</td>
<td>. (current directory)</td>
</tr>
<tr>
<td>disable-auto-reconnect</td>
<td>By default, a <%=vars.product_name%> member (both locators and servers) will attempt 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. Use this property to turn off the autoreconnect behavior. 
See <a href="../../managing/member-reconnect.html">Handling Forced Cache Disconnection Using Autoreconnect</a> for more details.</td>
<td>S, L</td>
<td>false</td>
</tr>
<tr>
<td>disable-jmx</td>
<td>By default, <%=vars.product_name%> automatically creates JMX MBeans. This boolean, when true, prevents the creation of JMX MBeans. Both gfsh and Pulse require JMX MBeans.</td>
<td>S, L</td>
<td>false</td>
</tr>
<tr>
<td>disable-tcp</td>
<td>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.</td>
<td>S, L</td>
<td>false</td>
</tr>
<tr>
<td>distributed-system-id</td>
<td>Identifier used to distinguish messages from different clusters. 
This is required for Portable Data eXchange (PDX) data serialization. 
Set <code class="ph codeph">distributed-system-id</code> to different values for different systems in a multi-site (WAN) configuration, and to different values for production vs. development environments.
This setting must be the same for every member of a given cluster and unique to each cluster within a WAN installation. 
<br/>Valid values are integers in the range -1...255.
-1 means no setting. 
</td>
<td>S, L</td>
<td>-1</td>
</tr>
<tr>
<td>durable-client-id</td>
<td>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.</td>
<td>C</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>durable-client-timeout</td>
<td>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.</td>
<td>C</td>
<td>300</td>
</tr>
<tr>
<td>enable-network-partition-detection</td>
<td>Boolean instructing the system to detect and handle splits in the cluster, typically caused by a partitioning of the network (split brain) where the cluster is running. You must set this property to the same value across all your cluster members. In addition, this property must be set to <code class="ph codeph">true</code> if you are using persistent regions and configure your regions to use DISTRIBUTED_ACK or GLOBAL scope to avoid potential data conflicts.</td>
<td>S, L</td>
<td>true</td>
</tr>
<tr>
<td>enable-cluster-configuration</td>
<td>A value of &quot;true&quot; causes the creation of cluster configuration on dedicated locators. The cluster configuration service on dedicated locator(s) with this property set to &quot;true&quot; would serve the configuration to new members joining the cluster and also save the configuration changes caused by the <code class="ph codeph">gfsh</code> commands. This property is only applicable to dedicated locators..</td>
<td>L</td>
<td>true</td>
</tr>
<tr>
<td>enable-time-statistics</td>
<td>Boolean instructing the system to track time-based statistics for the cluster and caching. Disabled by default for performance reasons and not recommended for production environments. You must also configure <code class="ph codeph">statistic-sampling-enabled</code> to true and specify a <code class="ph codeph">statistic-archive-file</code>.</td>
<td>S, L</td>
<td>false</td>
</tr>
<tr>
<td>enforce-unique-host</td>
<td>Whether partitioned regions will put redundant copies of the same data in different members running on the same physical machine. By default, <%=vars.product_name%> 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.</td>
<td>S</td>
<td>false</td>
</tr>
<tr>
<td>geode.disallow-internal-messages-without-credentials</td>
<td>A boolean that enables internal message validation when true. Set this system property to true on the <code>gfsh start server</code> command line when restarting servers to work with upgraded clients.
</td>
<td>S</td>
<td>false</td>
<tr>
<td>groups</td>
<td>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. 
See <a href="../../configuring/cluster_config/using_member_groups.html">Using Member Groups</a> for more information.</td>
<td>S</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>http-service-bind-address</td>
<td>If set, then the <%=vars.product_name%> member binds the embedded HTTP service to the specified address. If this property is not set but the HTTP service is enabled using <code class="ph codeph">http-service-port</code>, then <%=vars.product_name%> binds the HTTP service to the member's local address. Used by the <%=vars.product_name%> Pulse Web application and the developer REST API service.</td>
<td>S</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>http-service-port</td>
<td>If non-zero, then <%=vars.product_name%> starts an embedded HTTP service that listens on this port. The HTTP service is used to host the <%=vars.product_name%> Pulse Web application and the development REST API service. If you are hosting the Pulse web app on your own Web server and are not using the development REST API service, then disable this embedded HTTP service by setting this property to zero. Ignored if <code class="ph codeph">jmx-manager</code> and <code class="ph codeph">start-dev-rest-api</code> are both set to false.</td>
<td>S</td>
<td>7070</td>
</tr>
<tr>
<td>jmx-manager</td>
<td>If true then this member is willing to be a JMX Manager. All the other JMX Manager properties will be used when it does become a manager. If this property is false then all other <code class="ph codeph">jmx-manager-*</code> properties are ignored.</td>
<td>S, L</td>
<td>false (except on locators)</td>
</tr>
<tr>
<td>jmx-manager-bind-address</td>
<td>By default the jmx-manager (when configured with a port) will listen on all the local host's addresses. You can use this property to configure what IP address or host name the JMX Manager will listen on for non-HTTP connections. Ignored if JMX Manager is false or <code class="ph codeph">jmx-manager-port</code> is zero.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>jmx-manager-hostname-for-clients</td>
<td>Lets you control what hostname will be given to clients that ask the locator for the location of a JMX Manager. By default the IP address that the jmx-manager reports is used. But for clients on a different network this property allows you to configure a different hostname that will be given to clients. Ignored if <code class="ph codeph">jmx-manager</code> is false or <code class="ph codeph">jmx-manager-port</code> is zero.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>jmx-manager-http-port</td>
<td><em>Deprecated.</em> Use <code class="ph codeph">http-service-port</code> instead.</td>
<td>S, L</td>
<td>7070</td>
</tr>
<tr>
<td>jmx-manager-port</td>
<td>The port this JMX Manager will listen to for client connections. If this property is set to zero then <%=vars.product_name%> will not allow remote client connections but you can alternatively use the standard system properties supported by the JVM for configuring access from remote JMX clients. Ignored if <code class="ph codeph">jmx-manager</code> is false.</td>
<td>S, L</td>
<td>1099</td>
</tr>
<tr>
<td>jmx-manager-start</td>
<td>If true then this member will start a jmx manager when it creates a cache. Management tools like gfsh can be configured to connect to the jmx-manager. In most cases you should not set this because a jmx manager will automatically be started when needed on a member that sets &quot;jmx-manager&quot; to true. Ignored if jmx-manager is false.</td>
<td>S, L</td>
<td>false</td>
</tr>
<tr>
<td>jmx-manager-update-rate</td>
<td>The rate, in milliseconds, at which this member will push updates to any JMX Managers. Currently this value should be greater than or equal to the statistic-sample-rate. Setting this value too high will cause stale values to be seen by gfsh and <%=vars.product_name%> Pulse.</td>
<td>S, L</td>
<td>2000</td>
</tr>
<tr>
<td>load-cluster-configuration-from-dir</td>
<td>Setting this property to &quot;true&quot; causes loading of cluster configuration from &quot;cluster_config&quot; directory in the locator. This property is only applicable to dedicated locators that have &quot;enable-cluster-configuration&quot; set to true.</td>
<td>L</td>
<td>false</td>
</tr>
<tr>
<td>locator-wait-time</td>
<td>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 cluster. 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 cluster.</td>
<td>S</td>
<td>0</td>
</tr>
<tr>
<td>locators</td>
<td><p>The list of locators used by system members. The list must be configured consistently for every member of the cluster. If the list is empty, locators are not used.</p>
<p>For each locator, provide a host name and/or address (separated by ‘@’, if you use both), followed by a port number in brackets. Examples:</p>
<pre class="pre codeblock"><code>locators=address1[port1],address2[port2] </code></pre>
<pre class="pre codeblock"><code>locators=hostName1@address1[port1],hostName2@address2[port2] </code></pre>
<pre class="pre codeblock"><code>locators=hostName1[port1],hostName2[port2]</code></pre>
<div class="note note">
**Note:**
<p>On multi-homed hosts, this last notation will use the default address. If you use bind addresses for your locators, explicitly specify the addresses in the locators list—do not use just the hostname.</p>
</div>
<p>If you have values specified for the <code class="ph codeph">locators</code> property, the <code class="ph codeph">mcast-port</code> property defaults to 0.</p>
<div class="note note">
**Note:**
<p>If you specify invalid DNS hostnames in this property, any locators or servers started with <code class="ph codeph">gfsh</code> will not produce log files. Make sure you provide valid DNS hostnames before starting the locator or server with <code class="ph codeph">gfsh</code>.</p>
</div></td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>lock-memory</td>
<td>When <code class="ph codeph">true</code>, locks heap and off-heap memory into RAM to prevent the operating system from paging the memory out to disk.</td>
<td>S, L</td>
<td>false</td>
</tr>
<tr>
<td>log-disk-space-limit</td>
<td>Maximum size in megabytes of all inactive log files combined. If this limit is exceeded, inactive log files are deleted, oldest first, until the total size is within the limit. If set to zero, disk space use is unlimited.</td>
<td>S, L</td>
<td>0</td>
</tr>
<tr>
<td>log-file</td>
<td>File to which a running system member writes log messages. If set to null, the default is used.
<p>Each member type has its own default output:</p>
<ul>
<li>application: standard out</li>
<li>locator: <code class="ph codeph">&lt;locator_name&gt;.log</code></li>
<li>server: <code class="ph codeph">&lt;server_name&gt;.log</code></li>
</ul></td>
<td>S, L</td>
<td>null</td>
</tr>
<tr>
<td>log-file-size-limit</td>
<td>Maximum size in megabytes of a log file before it is closed and logging rolls on to a new (child) log file. If set to 0, log rolling is disabled.</td>
<td>S, L</td>
<td>0</td>
</tr>
<tr>
<td>log-level</td>
<td>Level of detail of the messages written to the system member’s log. Setting log-level to one of the ordered levels causes all messages of that level and greater severity to be printed.
<p>Valid values from lowest to highest are fine, config, info, warning, error, severe, and none.</p></td>
<td>S, L</td>
<td>config</td>
</tr>
<tr>
<td>max-wait-time-reconnect</td>
<td>Maximum number of milliseconds to wait for the cluster to reconnect on each reconnect attempt.</td>
<td>S, L</td>
<td>60000</td>
</tr>
<tr>
<td>mcast-address</td>
<td>Address used to discover other members of the cluster. Only used if mcast-port is non-zero. This attribute must be consistent across the cluster. Select different multicast addresses and different ports for different clusters. Do not just use different addresses. Some operating systems may not keep communication separate between systems that use unique addresses but the same port number.
<p>This default multicast address was assigned by IANA
(<a href="http://www.iana.org/assignments/multicast-addresses">http://www.iana.org/assignments/multicast-addresses</a>). Consult the IANA chart when selecting another multicast address to use with <%=vars.product_name%>.</p>
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication. If multicast is enabled, distributed regions use it for most communication. Partitioned regions only use multicast for a few purposes, and mainly use either TCP or UDP unicast.</p>
</div></td>
<td>S, L</td>
<td><p>239.192.81.1 for IPv4 (the default IP version)</p>
<p>FF38::1234 for IPv6</p></td>
</tr>
<tr>
<td>mcast-flow-control</td>
<td>Tuning property for flow-of-control protocol for unicast and multicast no-ack UDP messaging. Compound property made up of three settings separated by commas: byteAllowance, rechargeThreshold, and rechargeBlockMs.
<p>Valid values range from these minimums: 10000,0.1,500 to these maximums: no_maximum ,0.5,60000.</p>
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication, generally between distributed regions.</p>
</div></td>
<td>S, L</td>
<td>1048576,0.25, 5000</td>
</tr>
<tr>
<td>mcast-port</td>
<td>Port used, along with the mcast-address, for multicast communication with other members of the cluster. If zero, multicast is disabled.
<div class="note note">
**Note:**
<p>Select different multicast addresses and ports for different clusters. Do not just use different addresses. Some operating systems may not keep communication separate between systems that use unique addresses but the same port number.</p>
</div>
<p>Valid values are in the range 0..65535.</p>
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication.</p>
</div>
<p>If you have values specified for the <code class="ph codeph">locators</code> property, the <code class="ph codeph">mcast-port</code> property defaults to 0.</p></td>
<td>S, L</td>
<td>10334</td>
</tr>
<tr>
<td>mcast-recv-buffer-size</td>
<td>Size of the socket buffer used for incoming multicast transmissions. You should set this high if there will be high volumes of messages.
<p>Valid values are in the range 2048.. OS_maximum.</p>
<div class="note note">
**Note:**
<p>The default setting 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.</p>
</div>
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication.</p>
</div></td>
<td>S, L</td>
<td>1048576</td>
</tr>
<tr>
<td>mcast-send-buffer-size</td>
<td>The size of the socket buffer used for outgoing multicast transmissions.
<p>Valid values are in the range 2048.. OS_maximum.</p>
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication.</p>
</div></td>
<td>S, L</td>
<td>65535</td>
</tr>
<tr>
<td>mcast-ttl</td>
<td>How far multicast messaging goes in your network. Lower settings may improve system performance. A setting of 0 constrains multicast messaging to the machine.
<div class="note note">
**Note:**
<p>This setting controls only peer-to-peer communication and does not apply to client/server or multi-site communication.</p>
</div></td>
<td>S, L</td>
<td>32</td>
</tr>
<tr>
<td>member-timeout</td>
<td><%=vars.product_name%> uses the <code class="ph codeph">member-timeout</code> server configuration, specified in milliseconds, to detect unresponsive members.

<%=vars.product_name%> members use a combination of UDP heartbeat messages and TCP sockets to monitor the health of other members. If a member is suspected to be unreachable, two active checks of the member are performed. Each of those checks waits a maximum of one <code class="ph codeph">member-timeout</code>. If those health checks receive a connection failure or no response within the timeout, the member is considered dead and is removed from the list of members.

This setting also controls how frequently heartbeat messages are sent. They are sent at a frequency of half the <code class="ph codeph">member-timeout</code>.

The total time it takes to remove a member that is not responding to any network traffic is therefore 2 to 3 times the <code class="ph codeph">member-timeout</code>. This is not the minimum time it takes to remove a member from the list of members in the cluster. If the Java process has crashed, but the operating system can still return a connection failure response to the health checks, the crashed member may be removed from the membership list immediately.

<p>Valid values are in the range 1000..600000.</p></td>
<td>S, L</td>
<td>5000</td>
</tr>
<tr>
<td>membership-port-range</td>
<td>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.
<p><%=vars.product_name%> 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.</p>
<p>Therefore, the specified range must include at least three available port numbers (UDP, FD_SOCK, and TCP DirectChannel).</p>
<p>The system uniquely identifies the member using the combined host IP address and UDP port number.</p>
<p>You may want to restrict the range of ports that <%=vars.product_name%> uses so the product can run in an environment where routers only allow traffic on certain ports.</p></td>
<td>S, L</td>
<td>41000-61000</td>
</tr>
<tr>
<td>memcached-port</td>
<td>If specified and is non-zero, sets the port number for an embedded Gemcached server and starts the Gemcached server.</td>
<td>S</td>
<td>0</td>
</tr>
<tr>
<td>memcached-protocol</td>
<td>Sets the protocol used by an embedded Gemcached server. Valid values are <code class="ph codeph">BINARY</code> and <code class="ph codeph">ASCII.</code> If you omit this property, the ASCII protocol is used.</td>
<td>S</td>
<td>ASCII</td>
</tr>
<tr>
<td>name</td>
<td>Symbolic name used to identify this system member.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>off-heap-memory-size</td>
<td>Specifies the size of off-heap memory in megabytes (m) or gigabytes (g). For example:
<pre class="pre codeblock"><code>off-heap-memory-size=4096m
off-heap-memory-size=120g</code></pre></td>
<td>S</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>redundancy-zone</td>
<td>Defines this member's redundancy zone. Used to separate member's into different groups for satisfying partitioned region redundancy. If this property is set, <%=vars.product_name%> will not put redundant copies of data in members with the same redundancy zone setting. 
See <a href="../../developing/partitioned_regions/configuring_ha_for_pr.html">Configure High Availability for a Partitioned Region</a> for more details.</td>
<td>S</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>remote-locators</td>
<td>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 (<code class="ph codeph">distributed-system-id</code>) for the local cluster and remote locator(s) for the remote clusters to which you will connect.
<p>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:</p>
<pre class="pre codeblock"><code>remote-locators=address1[port1],address2[port2] </code></pre>
<pre class="pre codeblock"><code>remote-locators=hostName1@address1[port1],hostName2@address2[port2] </code></pre>
<pre class="pre codeblock"><code>remote-locators=hostName1[port1],hostName2[port2]</code></pre></td>
<td>L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>remove-unresponsive-client</td>
<td>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.</td>
<td>S</td>
<td>false</td>
</tr>
<tr>
<td>security-*</td>
<td>
Any security-related (properties that begin with <code class="ph codeph">security-</code>) configuration properties that are normally configured in <code class="ph codeph">gemfire.properties</code> can be moved to a separate <code class="ph codeph">gfsecurity.properties</code> 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 <code class="ph codeph">gemfire.properties</code> file.
</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-client-accessor</td>
<td><b>Deprecated.</b> Used for authorization. Static creation method returning an <code class="ph codeph">AccessControl</code> object, which determines authorization of client-server cache operations. This specifies the callback that should be invoked in the pre-operation phase, which is when the request for the operation is received from the client.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-client-accessor-pp</td>
<td><b>Deprecated.</b> Used for authorization. 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. The post-operation callback is also invoked for the updates that are sent from server to client through the notification channel.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-client-auth-init</td>
<td>Used for authentication. Static creation method returning an <code class="ph codeph">AuthInitialize</code> object, which obtains credentials for peers in a cluster. The obtained credentials should be acceptable to the <code class="ph codeph">Authenticator</code> specified through the security-peer-authenticator property on the peers.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-client-authenticator</td>
<td><b>Deprecated.</b> Used for authentication. Static creation method returning an <code class="ph codeph">Authenticator</code> object, which is used by a peer to verify the credentials of the connecting peer.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-client-dhalgo</td>
<td><strong>Deprecated.</strong> Use <code class="ph codeph">ssl-enabled-components</code> instead.
<br>Used for authentication. For secure transmission of sensitive credentials like passwords, you can encrypt the credentials using the Diffie-Hellman key-exchange algorithm. Do this by setting the security-client-dhalgo system property on the clients to the name of a valid, symmetric key cipher supported by the JDK.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-log-file</td>
<td>Used with authentication. The log file for security log messages. If not specified, the member's regular log file is used.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-log-level</td>
<td>Used with authentication. Logging level detail for security log messages.
<p>Valid values from lowest to highest are fine, config, info, warning, error, severe, and none.</p></td>
<td>S, L</td>
<td>config</td>
</tr>
<tr>
<td>security-manager</td>
<td>Specifies the implementation of the <code>SecurityManager</code> interface that implements the callbacks that do authentication and authorization.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-peer-auth-init</td>
<td><b>Deprecated.</b> Used with authentication. Static creation method returning an <code class="ph codeph">AuthInitialize</code> object, which obtains credentials for peers in a cluster. The obtained credentials should be acceptable to the <code class="ph codeph">Authenticator</code> specified through the security-peer-authenticator property on the peers.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-peer-authenticator</td>
<td><b>Deprecated.</b> Used with authentication. Static creation method returning an <code class="ph codeph">Authenticator</code> object, which is used by a peer to verify the credentials of the connecting peer.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-peer-verifymember-timeout</td>
<td>Used with authentication. Timeout in milliseconds used by a peer to verify membership of an unknown authenticated peer requesting a secure connection.</td>
<td>S, L</td>
<td>1000</td>
</tr>
<tr>
<td>security-post-processor</td>
<td>Specifies the implementation of the <code>PostProcessor</code> interface that implements user-defined callbacks that can change the returned results of region get operations.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>security-udp-dhalgo</td>
<td>Specifies a string that defines the name of a valid, symmetric key cipher supported by the JDK. When defined, the named cipher will be used for server-to-server UDP communications.</td>
<td>S</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>serializable-object-filter</td>
<td>A semicolon-separated list of items that become full class names of objects that the system will serialize when the property validate-serializable-objects is set to true. The list is expanded using the patterns specified in the <code>createFilter</code> method at
<a href="https://docs.oracle.com/javase/9/docs/api/java/io/ObjectInputFilter.Config.html">https://docs.oracle.com/javase/9/docs/api/java/io/ObjectInputFilter.Config.html</a>.</td>
<td>S, C</td>
<td>"!*"</td>
</tr>
<tr>
<td>server-bind-address</td>
<td>Relevant only for multi-homed hosts - machines with multiple network interface cards. Network adapter card a <%=vars.product_name%> server binds to for client/server communication. You can use this to separate the server’s client/server communication from its peer-to-peer communication, spreading the traffic load.
<p>This is a machine-wide attribute used for communication with clients in client/server and multi-site installations. This setting has no effect on locator configuration.</p>
<p>Specify the IP address, not the hostname, because each network card may not have a unique hostname.</p>
<p>An empty string causes the servers to listen on the same card used for peer-to-peer communication. This is either the <code class="ph codeph">bind-address</code> or, if that is not set, the machine’s default card.</p></td>
<td>S</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>socket-buffer-size</td>
<td>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.</td>
<td>S, L</td>
<td>32768</td>
</tr>
<tr>
<td>socket-lease-time</td>
<td>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.
<p>Valid values are in the range 0..600000.</p></td>
<td>S, L</td>
<td>60000</td>
</tr>

<tr>
<td>ssl-enabled-components</td>
<td>Components for which to enable SSL. Comma-separated list of one or more of (cluster, gateway, jmx, locator, server, web) or "all". When defining this property, also set <code>security-udp-dhalgo</code> to secure UDP cluster communications.</td>
<td>S, L</td>
<td>all</td>
</tr>

<tr>
<td>ssl-endpoint-identification-enabled</td>
<td>Boolean. When set to true, causes clients to validate the server's hostname using the server's certificate.</td>
<td>C, S, L</td>
<td>false</td>
</tr>

<tr>
<td>ssl-use-default-context</td>
<td>Boolean. When set to true, allows <%=vars.product_name%> to use the default SSL context.
When enabled, also sets ssl-endpoint-identification-enabled to true.</td>
<td>C, S, L</td>
<td>false</td>
</tr>

<tr>
<td>ssl-require-authentication</td>
<td>Boolean. Require two-way authentication for SSL-enabled components. Applies to all components except web.</td>
<td>S, L</td>
<td>true</td>
</tr>

<tr>
<td>ssl-http-require-authentication</td>
<td>Boolean. Require two-way authentication for web component.</td>
<td>S, L</td>
<td>false</td>
</tr>

<tr>
<td>ssl-default-alias</td>
<td>String. Default certificate name. If empty, use first certificate in key store.</td>
<td>S, L</td>
<td></td>
</tr>

<tr>
<td>ssl-<em>component</em>-alias</td>
<td>String. Certificate name for specified <em>component</em>, which is one of: cluster, gateway, jmx, locator, server, or web.</td>
<td>S, L</td>
<td></td>
</tr>

<tr>
<td>ssl-ciphers</td>
<td>Comma-separated list of SSL ciphers or "any"</td>
<td>S, L</td>
<td>any</td>
</tr>

<tr>
<td>ssl-parameter-extension</td>
<td>Specifies the implementation of the <code>SSLParameterExtension</code> interface that implements the SSL parameter extensions.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>

<tr>
<td>ssl-protocols</td>
<td>Comma-separated list of SSL protocols or "any"</td>
<td>S, L</td>
<td>any</td>
</tr>

<tr>
<td>ssl-keystore, ssl-keystore-password</td>
<td>Strings. Path to key store, key store password.</td>
<td>S, L</td>
<td></td>
</tr>

<tr>
<td>ssl-truststore, ssl-truststore-password</td>
<td>Strings. Path to trust store, trust store password.</td>
<td>S, L</td>
<td></td>
</tr>

<tr>
<td>ssl-keystore-type, ssl-truststore-type</td>
<td>Strings. Type of key store or trust store. "JKS" indicates Java. One common alternative is "pkcs12".</td>
<td>S, L</td>
<td>JKS</td>
</tr>

<tr>
<td>start-dev-rest-api</td>
<td>If set to true, then the developer REST API service will be started when cache is created. REST service can be configured using <code class="ph codeph">http-service-port</code> and <code class="ph codeph">http-service-bind-address</code> properties.</td>
<td>S</td>
<td>false</td>
</tr>
<tr>
<td>start-locator</td>
<td>If set, automatically starts a locator in the current process when the member connects to the cluster and stops the locator when the member disconnects.
<p>To use, specify the locator with an optional address or host specification and a required port number, in one of these formats:</p>
<pre class="pre codeblock"><code>start-locator=address[port1] </code></pre>
<pre class="pre codeblock"><code>start-locator=port1</code></pre>
If you only specify the port, the address assigned to the member is used for the locator.
<p>If not already there, this locator is automatically added to the list of locators in this set of <code class="ph codeph">gemfire properties</code>.</p></td>
<td>S</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>statistic-archive-file</td>
<td>The file to which the running system member writes statistic samples. For example: &quot;StatisticsArchiveFile.gfs&quot;. Adding .gz suffix to the file name causes it to be compressed. To disable archiving set the filename to <code class="ph codeph">/dev/null</code>.</td>
<td>S, L</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>statistic-sample-rate</td>
<td>How often to sample statistics, in milliseconds.
<p>Valid values are in the range 100..60000.</p></td>
<td>S, L</td>
<td>1000</td>
</tr>
<tr>
<td>statistic-sampling-enabled</td>
<td>Whether to collect and archive statistics on the member.
<p>Statistics sampling provides valuable information for ongoing system tuning and troubleshooting purposes. Sampling statistics at the default sample rate does not impact system performance. We recommend enabling statistics sampling in production environments.</p>
<div class="note note">
**Note:**
<p>This setting does not apply to partitioned regions, where statistics are always enabled.</p>
</div></td>
<td>S, L</td>
<td>false</td>
</tr>
<tr>
<td>tcp-port</td>
<td>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 <%=vars.product_name%> startup.
<p>Valid values are in the range 0..65535.</p></td>
<td>S, L</td>
<td>0</td>
</tr>
<tr>
<td>thread-monitor-enabled</td>
<td><p>
Boolean. When true, enables monitoring of <%=vars.product_name%>-created operational threads. Informational messages are written to the log file.
</p></td>
<td>S</td>
<td>true</td>
</tr>
<tr>
<td>thread-monitor-interval-ms</td>
<td><p>
The time interval (in milliseconds) with which thread monitoring is scheduled to run.
</p></td>
<td>S</td>
<td>60000</td>
</tr>
<tr>
<td>thread-monitor-time-limit-ms</td>
<td><p>
The time period (in milliseconds) after which the monitored thread is considered to be stuck.
</p></td>
<td>S</td>
<td>30000</td>
</tr>
<tr>
<td>tombstone-gc-threshold</td>
<td>The number of tombstones that can accumulate before the <%=vars.product_name%> member triggers garbage collection for tombstones. 
See <a href="../../developing/distributed_regions/how_region_versioning_works.html#topic_321B05044B6641FCAEFABBF5066BD399">How Destroy and Clear Operations Are Resolved</a>.</td>
<td>S</td>
<td>100000</td>
</tr>
<tr>
<td>udp-fragment-size</td>
<td>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.
<p>Valid values are in the range 1000..60000.</p></td>
<td>S, L</td>
<td>60000</td>
</tr>
<tr>
<td>udp-recv-buffer-size</td>
<td>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.
<p>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.</p>
<p>Valid values are in the range 2048.. OS_maximum.</p></td>
<td>S, L</td>
<td>1048576</td>
</tr>
<tr>
<td>udp-send-buffer-size</td>
<td>The size of the socket buffer used for outgoing UDP point-to-point transmissions.
<p>Valid values are in the range 2048..OS_maximum.</p></td>
<td>S, L</td>
<td>65535</td>
</tr>
<tr>
<td>use-cluster-configuration</td>
<td>This property is only applicable for data members (non-client and non-locator). A value of &quot;true&quot; causes a member to request and use the configuration from cluster configuration services running on dedicated locators. Setting this property to &quot;false&quot; causes a member to not request the configuration from the configuration services running on the locator(s).</td>
<td>S</td>
<td>true</td>
</tr>
<tr>
<td>user-command-packages</td>
<td>A comma separated list of Java packages that contain classes implementing the <code class="ph codeph">CommandMarker</code> interface. Matching classes will be loaded when the VM starts and will be available in the GFSH command-line utility.</td>
<td>S</td>
<td><em>not set</em></td>
</tr>
<tr>
<td>validate-serializable-objects</td>
<td>A boolean that defaults to false. When true, instances of classes that are not internal to <%=vars.product_name%> and whose class name is not allowed by the list defined in the serializable-object-filter property will not be permitted to be deserialized. An <code>IncompatibleClassException</code> 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.</td>
<td>S, C</td>
<td>false</td>
</tr>
</tbody>
</table>

-   **[Using Non-ASCII Strings in <%=vars.product_name_long%> Property Files](../../reference/topics/non-ascii_strings_in_config_files.html)**

    You can specify Unicode (non-ASCII) characters in <%=vars.product_name_long%> property files by using a `\uXXXX` escape sequence.
