| --- |
| 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 [C++ API docs](cppdocs). |
| |
| 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. See <a href="../system-statistics/chapter-overview.html#concept_3BE5237AF2D34371883453E6A9474A79">System Statistics</a>. </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="odd"> |
| <td><code class="ph codeph">security-client-auth-factory</code></td> |
| <td>Sets the key for the <code class="ph codeph">AuthInitialize</code> factory function.</td> |
| <td>empty</td> |
| </tr> |
| <tr class="even"> |
| <td><code class="ph codeph">security-client-auth-library</code></td> |
| <td>Registers the path to the <code class="ph codeph">securityImpl.dll</code> library.</td> |
| <td>empty</td> |
| </tr> |
| <tr class="odd"> |
| <td><code class="ph codeph">security-client-dhalgo</code></td> |
| <td>Diffie-Hellman based credentials encryption is not supported.</td> |
| <td>null</td> |
| </tr> |
| <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> |