Changing the Default Geode Configuration in the Tomcat Module
By default, the Tomcat module will run Geode automatically with pre-configured settings. You can change these Geode settings.
Here are the default settings:
- Locators are used for member discovery.
- The region name is set to
gemfire_modules_sessions
. - The cache region is replicated for peer-to-peer configurations and partitioned (with redundancy turned on) for client/server configurations.
- Geode clients have local caching turned on and when the local cache needs to evict data, it will evict least-recently-used (LRU) data first.
Note: On the application server side, the default inactive interval for session expiration is set to 30 minutes. To change this value, refer to Session Expiration.
Changing Geode Distributed System Properties
Geode system properties must be set by adding properties to Tomcat’s server.xml
file. When setting properties, use the following syntax:
<Listener
className="org.apache.geode.modules.session.catalina.xxxLifecycleListener"
property-name="property-value"
property-name="property-value"
...
/>
where property-name
is the name of a property and property-value
is that property’s value.
If the xxxLifecycleListener
is a PeerToPeerCacheLifecycleListener
, then a minimal addition to the server.xml
file is
<Listener
className="org.apache.geode.modules.session.catalina.
PeerToPeerCacheLifecycleListener"
cache-xml-file="cache-peer.xml"
locators="localhost[10334]"
/>
The list of Tomcat’s configurable server.xml
system properties includes any of the properties that can be specified in Geode’s gemfire.properties
file. The following list contains some of the properties that can be configured.
Property | Description | Default |
---|---|---|
cache-xml-file | name of the cache configuration file | cache-peer.xml for peer-to-peer, cache-client.xml for client/server |
locators (only for peer-to-peer topology) | (required) list of locators (host[port]) used by Geode members; if a single locator listens on its default port, then set this value to "localhost[10334]" |
empty string |
log-file | name of the Geode log file | gemfire_modules.log |
statistic-archive-file | name of the Geode statistics file | gemfire_modules.gfs |
statistic-sampling-enabled | whether Geode statistics sampling is enabled | false |
For more information on these properties, along with the full list of properties, see the Reference.
In addition to the standard Geode system properties, the following cache-specific properties can also be configured with the LifecycleListener
.
Property | Description | Default |
---|---|---|
criticalHeapPercentage | percentage of heap at which updates to the cache are refused | 0 (disabled) |
evictionHeapPercentage | percentage of heap at which session eviction begins | 80.0 |
rebalance | whether a rebalance of the cache should be done when the application server instance is started | false |
Although these properties are not part of the standard Geode system properties, they apply to the entire JVM instance and are therefore also handled by the LifecycleListener
. For more information about managing the heap, refer to Managing Heap and Off-heap Memory.
Changing Cache Configuration Properties
To edit Geode cache properties such as the name and the characteristics of the cache region, you add these properties to Tomcat’s context.xml
file. When adding properties, unless otherwise specified, use the following syntax:
<Manager
className="org.apache.geode.modules.session.catalina.Tomcat9DeltaSessionManager"
property-name="property-value"
property-name="property-value"
...
/>
where property-name
is the name of a property and property-value
is that property’s value.
For example, this entry creates a partitioned region by the name of “my_region”.
<Manager className="org.apache.geode.modules.session.catalina.
Tomcat9DeltaSessionManager"
regionAttributesId="PARTITION_REDUNDANT"
regionName="my_region"
/>
The following parameters are the cache configuration parameters that can be added to Tomcat’s context.xml
file.
context.xml
file, then only one put will be performed into the cache for the session per HTTP request. If the configuration line is not included, then the session is saved each time the setAttribute
or removeAttribute
method is invoked. As a consequence, multiple puts are performed into the cache during a single session. This configuration setting is recommended for any applications that modify the session frequently during a single HTTP request.Default: Set
To disable this configuration, remove or comment out the following line from Tomcat’s context.xml
file.
<Valve className="org.apache.geode.modules.session.catalina.CommitSessionValve"/>
Default: false
The Geode API equivalent to setting this parameter:
// Create factory
AttributesFactory factory = ...; <or> RegionFactory factory = ...;
// Add cache listener
factory.addCacheListener(new DebugCacheListener());
Default: false
for peer-to-peer, true
for client/server
The Geode API equivalent to setting this parameter:
// For peer-to-peer members:
Cache.createRegionFactory(REPLICATE_PROXY);
// For client members:
ClientCache.createClientRegionFactory(CACHING_PROXY_HEAP_LRU);
Default: REPLICATE for peer-to-peer, PARTITION_REDUNDANT for client/server
The Geode API equivalent to setting this parameter:
// Creates a region factory for the specified region shortcut
Cache.createRegionFactory(regionAttributesId);
Default: gemfire_modules_sessions
The Geode API equivalent to setting this parameter:
// Creates a region with the specified name
RegionFactory.create(regionName);