---
title:  System 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.
-->

A variety of system properties can be specified when a client connects to a distributed system, either programmatically or in a `geode.properties` file.
See `Apache::Geode::Client::SystemProperties` in the [.NET Framework API documentation](<%=vars.dotnetapiref%>/hierarchy.html).

The following settings can be configured:

-   **[General Properties](#general_props)**<br />Basic information for the process, such as cache creation parameters.
-   **[Logging Properties](#attributes-gfcpp__table_logging_props)**<br />How and where to log system messages.
-   **[Statistics Archiving Properties](#attributes-gfcpp__table_statistic_props)**<br />How to collect and archive statistics information.
-   **[Durable Client Properties](#attributes-gfcpp__table_durable_client_props)**<br />Information about the durable clients connected to the system.
-   **[System Properties for Client Authentication and Authorization](#attributes-gfcpp__table_security_props)**<br /> Information about various security parameters.
-   **[System Properties for High Availability](#attributes-gfcpp__table_high_availability_props)**<br />System properties to configure periodic acknowledgment (ack).

The following tables list attributes that can be specified programmatically or stored in the `geode.properties` file to be read by a client.

### <a id="general_props" class="no-quick-link"></a>General Properties

<table>
<thead>
<tr class="header">
<th>Attribute</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="even">
<td>cache-xml-file</td>
<td>Name and path of the file whose contents are used by default to configure a cache if one is
created. If not specified, the client starts with an empty cache, which is populated at run time.
</td>
<td>no default</td>
</tr>
<tr class="odd">
<td>heap-lru-delta</td>
<td>
The percentage of entries the system will evict each time it detects that it has exceeded the heap-lru-limit.
This property is used only if <code class="ph codeph">heap-lru-limit</code> is greater than 0.</td>
<td>10 %</td>
</tr>
<tr class="even">
<td>heap-lru-limit</td>
<td>Maximum amount of memory, in megabytes, used by the cache for all regions. If this limit is exceeded by <code class="ph codeph">heap-lru-delta</code> percent, LRU reduces the memory footprint as necessary. If not specified, or set to 0, memory usage is governed by each region's LRU entries limit, if any.</td>
<td>0</td>
</tr>
<tr class="odd">
<td>conflate-events</td>
<td>Client side conflation setting, which is sent to the server.</td>
<td>server</td>
</tr>
<tr class="even">
<td>connect-timeout</td>
<td>Amount of time (in seconds) to wait for a response after a socket connection attempt.</td>
<td>59</td>
</tr>
<tr class="odd">
<td>connection-pool-size</td>
<td>Number of connections per endpoint</td>
<td>5</td>
</tr>
<tr class="odd">
<td>enable-chunk-handler-thread</td>
<td>If the chunk-handler-thread is operative (enable-chunk-handler=true), it processes the response for each application thread. 
When the chunk handler is not operative (enable-chunk-handler=false), each application thread processes its own response.</td>
<td>false</td>
</tr>
<tr class="even">
<td>disable-shuffling-of-endpoints</td>
<td>If true, prevents server endpoints that are configured in pools from being shuffled before use.</td>
<td>false</td>
</tr>
<tr class="even">
<td>max-fe-threads</td>
<td>Thread pool size for parallel function execution. An example of this is the GetAll operations.</td>
<td>2 * number of logical processors</td>
</tr>
<tr class="odd">
<td>max-socket-buffer-size</td>
<td>Maximum size of the socket buffers, in bytes, that the client will try to set for client-server connections.</td>
<td>65 * 1024</td>
</tr>
<tr class="even">
<td>notify-ack-interval</td>
<td>Interval, in seconds, in which client sends acknowledgments for subscription notifications.</td>
<td>1</td>
</tr>
<tr class="odd">
<td>notify-dupcheck-life</td>
<td>Amount of time, in seconds, the client tracks subscription notifications before dropping the duplicates.</td>
<td>300</td>
</tr>
<tr class="even">
<td>ping-interval</td>
<td>Interval, in seconds, between communication attempts with the server to show the client is alive. Pings are only sent when the <code class="ph codeph">ping-interval</code> elapses between normal client messages. This must be set lower than the server's <code class="ph codeph">maximum-time-between-pings</code>.</td>
<td>10</td>
</tr>
<tr class="odd">
<td>redundancy-monitor-interval</td>
<td>Interval, in seconds, at which the subscription HA maintenance thread checks for the configured redundancy of subscription servers.</td>
<td>10</td>
</tr>
<tr class="odd">
<td>tombstone-timeout</td>
<td>Time in milliseconds used to timeout tombstone entries when region consistency checking is enabled.
</td>
<td>480000</td>
</tr>
</tbody>
</table>


### <a id="attributes-gfcpp__table_logging_props" class="no-quick-link"></a>Logging Properties

<table>
<thead>
<tr class="header">
<th>Attribute</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>log-disk-space-limit</td>
<td>Maximum amount of disk space, in megabytes, allowed for all log files, current, and rolled. If set to 0, the space is unlimited.</td>
<td>0</td>
</tr>
<tr class="even">
<td>log-file</td>
<td>Name and full path of the file where a running client writes log messages. If not specified, logging goes to <code class="ph codeph">stdout</code>.</td>
<td>no default file</td>
</tr>
<tr class="odd">
<td>log-file-size-limit</td>
<td>Maximum size, in megabytes, of a single log file. Once this limit is exceeded, a new log file is created and the current log file becomes inactive. If set to 0, the file size is unlimited.</td>
<td>0</td>
</tr>
<tr class="even">
<td>log-level</td>
<td>Controls the types of messages that are written to the application's log. These are the levels, in descending order of severity and the types of message they provide:
<ul>
<li><strong>Error</strong> (highest severity) is a serious failure that will probably prevent program execution.</li>
<li><strong>Warning</strong> is a potential problem in the system.</li>
<li><strong>Info</strong> is an informational message of interest to the end user and system administrator.</li>
<li><strong>Config</strong> is a static configuration message, often used to debug problems with particular configurations.</li>
<li><strong>Fine, Finer, Finest, and Debug</strong> provide tracing information. Only use these with guidance from technical support.</li>
</ul>
<p>Enabling logging at any level enables logging for all higher levels.</p></td>
<td>config</td>
</tr>
</tbody>
</table>


### <a id="attributes-gfcpp__table_statistic_props" class="no-quick-link"></a>Statistics Archiving Properties

<table>
<thead>
<tr class="header">
<th>Attribute</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>statistic-sampling-enabled</td>
<td>Controls whether the process creates a statistic archive file.</td>
<td>true</td>
</tr>
<tr class="even">
<td>statistic-archive-file</td>
<td>Name and full path of the file where a running system member writes archives statistics. If <code class="ph codeph">archive-disk-space-limit</code> is not set, the client appends the process ID to the configured file name, like <code class="ph codeph">statArchive-PID.gfs</code>. If the space limit is set, the process ID is not appended but each rolled file name is renamed to statArchive-ID.gfs, where ID is the rolled number of the file.</td>
<td>./statArchive.gfs</td>
</tr>
<tr class="odd">
<td>archive-disk-space-limit</td>
<td>Maximum amount of disk space, in gigabytes, allowed for all archive files, current, and rolled. If set to 0, the space is unlimited.</td>
<td>0</td>
</tr>
<tr class="even">
<td>archive-file-size-limit</td>
<td>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 0, the file size is unlimited.</td>
<td>0</td>
</tr>
<tr class="odd">
<td>statistic-sample-rate</td>
<td>Rate, in seconds, that statistics are sampled. Operating system statistics are updated only when a sample is taken. If statistic archival is enabled, then these samples are written to the archive.
<p>Lowering the sample rate for statistics reduces system resource use while still providing some statistics for system tuning and failure analysis.</p>
</td>
<td>1</td>
</tr>
<tr class="even">
<td>enable-time-statistics</td>
<td>Enables time-based statistics for the distributed system and caching. For performance reasons, time-based statistics are disabled by default.</td>
<td>false</td>
</tr>
</tbody>
</table>


### <a id="attributes-gfcpp__table_durable_client_props" class="no-quick-link"></a>Durable Client Properties

| Attribute | Description                                                                                                                                                                                                                                                                    | Default |
|----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|
| auto-ready-for-events      | Whether client subscriptions automatically receive events when declaratively configured via XML. If set to `false`, event startup is not automatic and you need to call the `Cache.ReadyForEvents()` method API after subscriptions for the server to start delivering events. | true    |
| durable-client-id          | Identifier to specify if you want the client to be durable.                                                                                                                                                                                                                    | empty   |
| durable-timeout            | Time, in seconds, a durable client's subscription is maintained when it is not connected to the server before being dropped.                                                                                                                                                   | 300     |


### <a id="attributes-gfcpp__table_security_props" class="no-quick-link"></a>Security Properties

The table describes the security-related system properties for native client authentication and authorization.

See [SSL Client/Server Communication](../security/sslclientserver.html).

<table>
<caption><span class="tablecap">System Properties for Client Authentication and Authorization</span></caption>
<thead>
<tr class="header">
<th>Attribute</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="even">
<td><code class="ph codeph">security-client-kspath</code></td>
<td>Path to a .PEM file, which contains the public certificates for all Geode cache servers to which the client can connect through specified endpoints.</td>
<td>null</td>
</tr>
<tr class="odd">
<td><code class="ph codeph">ssl-enabled</code></td>
<td>True if SSL connection support is enabled.</td>
<td>empty</td>
</tr>
<tr class="even">
<td><code class="ph codeph">ssl-keystore</code></td>
<td>Name of the .PEM keystore file, containing the client’s private key. Not set by default. Required if <code class="ph codeph">ssl-enabled</code> is true.</td>
<td></td>
</tr>
<tr class="odd">
<td><code class="ph codeph">ssl-keystore-password</code></td>
<td>Sets the password for the private key .PEM file for SSL.</td>
<td>null</td>
</tr>
<tr class="even">
<td><code class="ph codeph">ssl-truststore</code></td>
<td><p>Name of the .PEM truststore file, containing the servers’ public certificate. Not set by default. Required if <code class="ph codeph">ssl-enabled</code> is true.</p></td>
<td></td>
</tr>
</tbody>
</table>

## <a id="attributes-gfcpp__table_high_availability_props" class="no-quick-link"></a>High Availability Properties

<table>
<thead>
<tr class="header">
<th>Attribute</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><code class="ph codeph">notify-ack-interval</code></td>
<td>Minimum period, in seconds, between two consecutive acknowledgment messages sent from the client to the server.</td>
<td>10</td>
</tr>
<tr class="even">
<td><code class="ph codeph">notify-dupcheck-life</code></td>
<td>Minimum time, in seconds, a client continues to track a notification source for duplicates when no new notifications arrive before expiring it.</td>
<td>300</td>
</tr>
</tbody>
</table>
