---
title: alter
---

<!--
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 id="topic_9323467A645D4F2B82EC236448030D14"></a>


Modify an existing <%=vars.product_name%> resource.

-   **[alter async-event-queue](#topic_alter_async_event_queue)**

    Modifies attributes of an async event queue

-   **[alter disk-store](#topic_99BCAD98BDB5470189662D2F308B68EB)**

    Modifies or removes a region from an offline disk-store.

-   **[alter gateway-sender](#topic_alter_gateway_sender)**

    Modifies attributes of a gateway-sender.

-   **[alter query-service](#topic_alter_query_service)**

    Alter configuration details of the query configuration service.

-   **[alter region](#topic_E74ED23CB60342538B2175C326E7D758)**

    Alters the configuration of a region.

-   **[alter runtime](#topic_7E6B7E1B972D4F418CB45354D1089C2B)**

    Alters configuration properties for all members or a subset of members while the member or members are running.

## <a id="topic_alter_async_event_queue" class="no-quick-link"></a>alter async-event-queue

Alter attributes of a specified asynchronous event queue. Each server hosting the specified async event queue must be restarted for the new attribute
settings to take effect on that server.

**Availability:** Online. You must be connected in <span class="keyword parmname">gfsh</span> to a JMX Manager member to use this command.

**Syntax:**

``` pre
alter async-event-queue --id=value [--batch-size=value] [--batch-time-interval=value]
    [--max-queue-memory=value] [--if-exists(=value)] [--pause-event-processing(=value)]
```

The required option, `--id`, identifies the async event queue to be altered.

**Parameters, alter async-event-queue**

| Name | Description |
|------|-------------|
| &#8209;&#8209;id   | _Required._ ID of the async event queue to be changed |
| &#8209;&#8209;batch&#8209;size | Maximum number of events that a batch can contain |
| &#8209;&#8209;batch&#8209;time&#8209;interval | Maximum amount of time, in ms, that can elapse before a batch is delivered |
| &#8209;&#8209;max&#8209;queue&#8209;memory | Maximum amount of memory, in megabytes, that the queue can consume before overflowing to disk |
| &#8209;&#8209;if&#8209;exists | If the specified async event queue does not exist, gfsh responds with a message to that effect. If this parameter is true, the response is prefixed with the label "Skipping: ". Useful for scripted tests. Default (if the parameter is not specified): false. Default (if the parameter is specified without value): true. |
| &#8209;&#8209;pause&#8209;event&#8209;processing | Specifies whether event dispatching from the queue to the listener(s) will be paused when the AsyncEventQueue is started. Default (if the parameter is not specified): false. Default (if the parameter is specified without value): true.

**Example Commands:**

``` pre
alter async-event-queue --id=myAsyncEventQueue --batch-size=50 --if-exists
```

## <a id="topic_99BCAD98BDB5470189662D2F308B68EB" class="no-quick-link"></a>alter disk-store

Modify or remove a region from an offline disk-store.

When modifying a region's configuration, it is customary to take the region off-line and restart using the new configuration. You can use the `alter disk-store` command to change the configuration of the region stored in the disk-store to match the configuration you will use at restart.

**Availability:** Offline.

**Syntax:**

``` pre
alter disk-store --name=value --region=value --disk-dirs=value(,value)*
    [--compressor(=value)] [--concurrency-level=value]
    [--enable-statistics=value] [--initial-capacity=value] [--load-factor=value]
    [--lru-algorithm=value] [--lru-action=value] [--lru-limit=value]
    [--off-heap(=value)] [--remove(=value)]
```

The three required options, `--name`, `--region`, and `--disk-dirs`, identify the disk store and region to be altered. If no additional options are specified, `gfsh` displays the current configuration without making any changes.

**Parameters, alter disk-store**

<table>
<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;name</span></td>
<td><em>Required</em>. Name of the disk-store whose contents will be altered.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;region</span></td>
<td><em>Required</em>. Name (including path) of the region using the disk store.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;disk-dirs</span></td>
<td><em>Required</em>. Directories where the data for the disk store was previously written.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;compressor</span></td>
<td>The fully-qualified class name of the compressor to use when compressing region entry values. A value of <code class="ph codeph">none</code> removes the compressor.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;concurrency-level</span></td>
<td>An estimate of the maximum number of application threads that will concurrently access a region entry. Together with <span class="keyword parmname">&#8209;&#8209;initial-capacity</span> and <span class="keyword parmname">&#8209;&#8209;load-factor</span>, sets the parameters on the underlying <code class="ph codeph">java.util.ConcurrentHashMap</code> used for storing region entries. This attribute does not apply to partitioned regions.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-statistics</span></td>
<td>Enables statistics for the region specified by the <code>--region</code> option. Valid values are true or false. If the parameter is specified without a value, the value of true is used.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;initial-capacity</span></td>
<td>Together with <span class="keyword parmname">&#8209;&#8209;concurrency-level</span> and <span class="keyword parmname">&#8209;&#8209;load-factor</span>, sets the parameters on the underlying <code class="ph codeph">java.util.ConcurrentHashMap</code> used for storing region entries.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;load-factor</span></td>
<td>Together with <span class="keyword parmname">&#8209;&#8209;concurrency-level</span> and <span class="keyword parmname">&#8209;&#8209;initial-capacity</span>, sets the parameters on the underlying <code class="ph codeph">java.util.ConcurrentHashMap</code> used for storing region entries. This must be a floating point number between 0 and 1, inclusive.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;lru-action</span></td>
<td>Action to take when evicting entries from the region. Valid values are:
<ul>
<li><code class="ph codeph">none</code></li>
<li><code class="ph codeph">overflow-to-disk</code></li>
<li><code class="ph codeph">local-destroy</code></li>
</ul></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;lru-algorithm</span></td>
<td>Least recently used eviction algorithm. Valid types are:
<ul>
<li><code class="ph codeph">none</code></li>
<li><code class="ph codeph">lru-entry-count</code></li>
<li><code class="ph codeph">lru-heap-percentage</code></li>
<li><code class="ph codeph">lru-memory-size</code></li>
</ul></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;lru-limit</span></td>
<td>Number of entries allowed in the region before eviction occurs.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;off-heap</span></td>
<td>Specifies whether the region values are in heap memory or off-heap memory. When true, region values are in off-heap memory. If the parameter is specified without a value, the value of true is used.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;remove</span></td>
<td>Specifies whether to remove the region from the disk-store. If the parameter is specified without a value, the value of true is used. Note: <span class="keyword parmname">&#8209;&#8209;remove</span> deletes all persistent data for the region. Consider copying the disk store files to a backup before using this option if you might want to retrieve the data at a later date.</td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
alter disk-store --name=DiskStore1 --region=region1 --disk-dirs=/Disks/DiskStore1 --off-heap
alter disk-store --name=DiskStore1 --region=region1 --disk-dirs=/Disks/DiskStore1 --remove
```

## <a id="topic_alter_gateway_sender" class="no-quick-link"></a>alter gateway-sender

Alter attributes of a specified gateway sender on one or more members of a cluster.

**Availability:** Online. You must be connected in <span class="keyword parmname">gfsh</span> to a JMX Manager member to use this command.

**Syntax:**

``` pre
alter gateway-sender --id=value [--members=value(,value)*] [--groups=value(,value)*]
    [--alert-threshold=value] [--batch-size=value] [--batch-time-interval=value]
    [--gateway-event-filter=value(,value)*] [--group-transaction-events(=value)?]
```

The required option, `--id`, identifies the gateway sender to be altered.

**Parameters, alter gateway-sender**
<table>
<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;id</span></td>
<td><em>Required.</em> ID of the gateway sender to be changed</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;members</span></td>
<td>Name or ID of the member(s) whose configuration is to be altered at runtime. If you do not specify this parameter, the configuration properties are modified for all cluster members using the cluster configuration service.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;groups</span></td>
<td>Name of the group(s) whose members' runtime configurations are to be altered. If you do not specify this parameter, the configuration properties are modified for all cluster members using the cluster configuration service.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;alert-threshold</span></td>
<td>Maximum time, in milliseconds, that a region event can remain in the gateway sender queue before <%=vars.product_name%> logs an alert.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;batch-size</span></td>
<td>Maximum number of messages that a batch can contain.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;batch-time-interval</span></td>
<td>Maximum time, in milliseconds, that can elapse between sending batches.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;gateway-event-filter</span></td>
<td>A list of fully-qualified class names of GatewayEventFilters (separated by commas) to be associated with the GatewaySender. This serves as a callback for users to filter out events before dispatching to a remote cluster. For example:
<pre class="pre codeblock"><code>gateway-event-filter=com.user.filters.MyFilter1,com.user.filters.MyFilters2</code></pre>
<p>In case no value is provided, all existing filters will be removed.</p></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;group-transaction-events</span></td>
<td>Boolean value to ensure that all the events of a transaction are sent in the same batch, i.e., they are never spread across different batches.
<p>Only allowed to be set on gateway senders with the <code class="ph codeph">parallel</code> attribute set to false and <code class="ph codeph">dispatcher-threads</code> attribute equal to 1, or on gateway senders with the <code class="ph codeph">parallel</code> attribute set to true. Also, the  <code class="ph codeph">enable-batch-conflation</code> attribute of the gateway sender must be set to false.</p>
<p><b>Note:</b> In order to work for a transaction, the regions to which the transaction events belong must be replicated by the same set of senders with this flag enabled.</p></td>
</td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
alter gateway-sender --id=sender1 --alert-threshold=100 --batch-size=200 --group-transaction-events
```

## <a id="topic_alter_query_service" class="no-quick-link"></a>alter query-service

Alter configuration details of the query configuration service.

**Availability:** Online. You must be connected in <span class="keyword parmname">gfsh</span> to a JMX Manager member to use this command.

**Syntax:**

``` pre
alter query-service --method-authorizer=value
    [--authorizer-parameters=value(;value)*] [--force-update(=value)]
```

**Parameters, alter query-service**

| Name | Description |
|------|-------------|
| &#8209;&#8209;method-authorizer       | _Required._ Fully qualified class name of the `MethodInvocationAuthorizer` to be used for query authorization. |
| &#8209;&#8209;authorizer-parameters   | A **semicolon-separated** list of parameters to be used by the specified `MethodInvocationAuthorizer`. This requires that a method-authorizer option has been specified. |
| &#8209;&#8209;force-update            | Specifies whether to forcibly update the `MethodInvocationAuthorizer`, even when there are continuous queries registered in the member. Default (if the parameter is not specified): `false`. Default (if the parameter is specified without value): `true`. **Note:** when set as `true`, any registered CQ will pick up the new `MethodInvocationAuthorizer` and invalidate its internal cache; consider checking that the new `MethodInvocationAuthorizer` allows the methods invoked by the CQs before using this option. |

**Example Commands:**

``` pre
alter query-service --method-authorizer=org.apache.geode.cache.query.security.UnrestrictedMethodAuthorizer
alter query-service --method-authorizer=org.apache.geode.cache.query.security.UnrestrictedMethodAuthorizer --force-update=true
alter query-service --method-authorizer=org.apache.geode.cache.query.security.JavaBeanAccessorMethodAuthorizer --authorizer-parameters=java.lang;java.util
```

## <a id="topic_E74ED23CB60342538B2175C326E7D758" class="no-quick-link"></a>alter region

Alters the configuration of a region.

See [Specifying JSON within Command-Line Options](../json_in_gfsh.html)
for syntax details.

**Availability:** Online. You must be connected in <span class="keyword parmname">gfsh</span> to a JMX Manager member to use this command.

**Syntax:**

``` pre
alter region --name=value [--groups=value(,value)*]
    [--entry-idle-time-expiration=value]
    [--entry-idle-time-expiration-action(=value)?]
    [--entry-time-to-live-expiration=value]
    [--entry-time-to-live-expiration-action(=value)?]
    [--entry-idle-time-custom-expiry=value] [--entry-time-to-live-custom-expiry=value]
    [--region-idle-time-expiration=value]
    [--region-idle-time-expiration-action(=value)?]
    [--region-time-to-live-expiration=value]
    [--region-time-to-live-expiration-action(=value)?]
    [--cache-listener=value(,value)*] [--cache-loader=value]
    [--cache-writer=value] [--async-event-queue-id=value(,value)*]
    [--gateway-sender-id=value(,value)*] [--enable-cloning(=value)?]
    [--eviction-max(=value)?]
```

**Parameters, alter region**

<table>
<colgroup>
<col width="25%" />
<col width="60%" />
<col width="15%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;async-event-queue-id</span></td>
<td>IDs of the Async Event Queues that will be used for write-behind operations.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;cache-listener</span></td>
<td>Fully qualified class name of a plug-in to be instantiated for receiving after-event notification of changes to the region and its entries. Any number of cache listeners can be configured. A fully qualified class name may be appended with a JSON specification that will be parsed to become the fields of the parameter to the <code>init()</code> method for a class that implements the <code>Declarable</code> interface.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;cache-loader</span></td>
<td>Fully qualified class name of a plug-in to be instantiated for receiving notification of cache misses in the region. At most, one cache loader can be defined in each member for the region. For distributed regions, a cache loader may be invoked remotely from other members that have the region defined. A fully qualified class name may be appended with a JSON specification that will be parsed to become the fields of the parameter to the <code>initialize()</code> method for a class that implements the <code>Declarable</code> interface.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;cache-writer</span></td>
<td>Fully qualified class name of a plug-in to be instantiated for receiving before-event notification of changes to the region and its entries. The plug-in may cancel the event. At most, one cache writer can be defined in each member for the region. A fully qualified class name may be appended with a JSON specification that will be parsed to become the fields of the parameter to the <code>init()</code> method for a class that implements the <code>Declarable</code> interface.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-cloning</span></td>
<td><p>Determines how <code class="ph codeph">fromDelta</code> applies deltas to the local cache for delta propagation. When true, the updates are applied to a clone of the value and then the clone is saved to the cache. When false, the value is modified in place in the cache.</p></td>
<td><code class="ph codeph">false</code></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-idle-time-expiration</span></td>
<td>Number of seconds before a region or an entry expires. Specify <code class="ph codeph">-1</code> to indicate that there is no expiration of this type</td>
<td>-1</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-idle-time-expiration-action</span></td>
<td>Action that should take place when a region or an entry expires.
<div class="p">
Select one of the following expiration actions:
<table>
<tbody>
<tr>
<td><span class="keyword option">local-destroy</span></td>
<td>Removes the region or entry from the local cache, but does not distribute the removal operation to remote members. You cannot use this action on partitioned region entries.</td>
</tr>
<tr>
<td><span class="keyword option">destroy</span></td>
<td>Removes the region or entry completely from the cache. Destroy actions are distributed according to the region's distribution settings. Use this option when the region or entry is no longer needed for any application in the cluster.</td>
</tr>
<tr>
<td><span class="keyword option">invalidate</span></td>
<td>Default expiration action. Marks an entry or all entries in the region as invalid. Distributes the invalidation according to the region's scope. This is the proper choice when the region or the entry is no longer valid for any application in the cluster.</td>
</tr>
<tr>
<td><span class="keyword option">local-invalidate</span></td>
<td>Marks an entry or all entries in the region as invalid but does not distribute the operation. You cannot use this action on partitioned region entries. Local region invalidation is only supported for regions that are not configured as replicated regions.</td>
</tr>
</tbody>
</table>
</div></td>
<td><code class="ph codeph">invalidate</code></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-time-to-live-expiration</span></td>
<td>Number of seconds before a region or an entry expires. Specify <code class="ph codeph">-1</code> to indicate that there is no expiration of this type.</td>
<td>-1</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-time-to-live-expiration-action</span></td>
<td>Action that should take place when a region or an entry expires.
<div class="p">
Select one of the following expiration actions:
<table>
<tbody>
<tr>
<td><span class="keyword option">local-destroy</span></td>
<td>Removes the region or entry from the local cache, but does not distribute the removal operation to remote members. You cannot use this action on partitioned region entries.</td>
</tr>
<tr>
<td><span class="keyword option">destroy</span></td>
<td>Removes the region or entry completely from the cache. Destroy actions are distributed according to the region's distribution settings. Use this option when the region or entry is no longer needed for any application in the cluster.</td>
</tr>
<tr>
<td><span class="keyword option">invalidate</span></td>
<td>Default expiration action. Marks an entry or all entries in the region as invalid. Distributes the invalidation according to the region's scope. This is the proper choice when the region or the entry is no longer valid for any application in the cluster.</td>
</tr>
<tr>
<td><span class="keyword option">local-invalidate</span></td>
<td>Marks an entry or all entries in the region as invalid but does not distribute the operation. You cannot use this action on partitioned region entries. Local region invalidation is only supported for regions that are not configured as replicated regions.</td>
</tr>
</tbody>
</table>
</div></td>
<td><code class="ph codeph">invalidate</code></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-idle-time-custom-expiry</span></td>
<td>The name of a class implementing CustomExpiry for entry idle time. Append a JSON string for initialization properties.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-time-to-live-custom-expiry</span></td>
<td>The name of a class implementing CustomExpiry for entry time to live. Append a JSON string for initialization properties.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;eviction-max</span></td>
<td>Maximum value for the Eviction Attributes that the eviction algorithm uses to determine when to perform its eviction action. The unit of the maximum value is determined by the Eviction Algorithm.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;gateway-sender-id</span></td>
<td>IDs of the Gateway Senders where data is routed.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;groups</span></td>
<td>Group(s) of members where the region will be altered.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;name</span></td>
<td>Required. Name (including path) of the region.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;region-idle-time-expiration</span></td>
<td>Number of seconds before a region or an entry expires. If timeout is not specified, it defaults to zero (which means no expiration).</td>
<td>-1</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;region-idle-time-expiration-action</span></td>
<td>Action that should take place when a region or an entry expires.
<div class="p">
Select one of the following expiration actions:
<table>
<tbody>
<tr>
<td><span class="keyword option">local-destroy</span></td>
<td>Removes the region or entry from the local cache, but does not distribute the removal operation to remote members. You cannot use this action on partitioned region entries.</td>
</tr>
<tr>
<td><span class="keyword option">destroy</span></td>
<td>Removes the region or entry completely from the cache. Destroy actions are distributed according to the region's distribution settings. Use this option when the region or entry is no longer needed for any application in the cluster.</td>
</tr>
<tr>
<td><span class="keyword option">invalidate</span></td>
<td>Default expiration action. Marks an entry or all entries in the region as invalid. Distributes the invalidation according to the region's scope. This is the proper choice when the region or the entry is no longer valid for any application in the cluster.</td>
</tr>
<tr>
<td><span class="keyword option">local-invalidate</span></td>
<td>Marks an entry or all entries in the region as invalid but does not distribute the operation. You cannot use this action on partitioned region entries. Local region invalidation is only supported for regions that are not configured as replicated regions.</td>
</tr>
</tbody>
</table>
</div></td>
<td><code class="ph codeph">invalidate</code></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;region-time-to-live-expiration </span></td>
<td>Number of seconds before a region or an entry expires. If timeout is not specified, it defaults to zero (which means no expiration).</td>
<td>-1</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;region-time-to-live-expiration-action</span></td>
<td>Action that should take place when a region or an entry expires.
<div class="p">
Select one of the following expiration actions:
<table>
<tbody>
<tr>
<td><span class="keyword option">local-destroy</span></td>
<td>Removes the region or entry from the local cache, but does not distribute the removal operation to remote members. You cannot use this action on partitioned region entries.</td>
</tr>
<tr>
<td><span class="keyword option">destroy</span></td>
<td>Removes the region or entry completely from the cache. Destroy actions are distributed according to the region's distribution settings. Use this option when the region or entry is no longer needed for any application in the cluster.</td>
</tr>
<tr>
<td><span class="keyword option">invalidate</span></td>
<td>Default expiration action. Marks an entry or all entries in the region as invalid. Distributes the invalidation according to the region's scope. This is the proper choice when the region or the entry is no longer valid for any application in the cluster.</td>
</tr>
<tr>
<td><span class="keyword option">local-invalidate</span></td>
<td>Marks an entry or all entries in the region as invalid but does not distribute the operation. You cannot use this action on partitioned region entries. Local region invalidation is only supported for regions that are not configured as replicated regions.</td>
</tr>
</tbody>
</table>
</div></td>
<td><code class="ph codeph">invalidate</code></td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
alter region --name=region1 --eviction-max=5000 [-group=all]
```

**Sample Output:**

``` pre
gfsh>alter region --name=customer --eviction-max=5000
Member  | Status
------- | ----------------------------------
server1 | Region "/customer" altered on "server1"
```

## <a id="topic_7E6B7E1B972D4F418CB45354D1089C2B" class="no-quick-link"></a>alter runtime

Alters configuration properties for all servers or a subset of servers while the member or members are running.
Alter runtime is a cluster configuration command that affects the configuration for newly joining servers.
In order for running members to adopt the alteration, they must be stopped and restarted.

The alter runtime command does not apply to locators.

For more information on these configuration properties, see [cache.xml](../../../reference/topics/chapter_overview_cache_xml.html#cache_xml) and configuration parameter reference.

**Availability:** Online. You must be connected in `gfsh` to a JMX Manager member to use this command.

**Syntax:**

``` pre
alter runtime [--members=value(,value)*] [--groups=value(,value)*]
    [--archive-disk-space-limit=value]
    [--archive-file-size-limit=value] [--log-disk-space-limit=value]
    [--log-file-size-limit=value] [--log-level=value]
    [--statistic-archive-file=value] [--statistic-sample-rate=value]
    [--enable-statistics=value] [--copy-on-read(=value)?] [--lock-lease=value]
    [--lock-timeout=value] [--message-sync-interval=value] [--search-timeout=value]
```

**Parameters, alter runtime**
<table>
<colgroup>
<col width="25%" />
<col width="50%" />
<col width="25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;members</span></td>
<td>Name or ID of the member(s) whose configuration is to be altered at runtime. If you do not specify this parameter, the configuration properties are modified for all cluster members using the cluster configuration service.</td>
<td>If not specified, all members using the cluster configuration service</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;groups</span></td>
<td>Name of the group(s) whose members's runtime configuration is to be altered. If you do not specify this parameter, the configuration properties are modified for all cluster members using the cluster configuration service.</td>
<td>If not specified, all members using the cluster configuration service</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;archive-disk-space-limit</span></td>
<td>Archive disk space limit. 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. Valid values are (in megabytes): 0 - 1000000.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;archive-file-size-limit</span></td>
<td>Archive file size limit. 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. Valid values are (in megabytes): 0 - 1000000.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;log-disk-space-limit </span></td>
<td>Log disk space limit. 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. Valid values are (in megabytes): 0 - 1000000.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;log-file-size-limit</span></td>
<td>Log file size limit. 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 zero, log rolling is disabled. Valid values are (in megabytes): 0 - 1000000.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;log-level </span></td>
<td>The new log level. This option is required and you must specify a value.
Valid values are: `ALL`, `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`, `OFF`. 
<td>INFO</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;statistic-archive-file </span></td>
<td>The file to which the running system member writes statistic samples. For example: &quot;StatisticsArchiveFile.gfs&quot;. Must be defined to store the archiving to a file. Adding the <code>.gz</code> suffix to the file name causes it to be compressed. See <a href="../../../managing/statistics/chapter_overview.html">Statistics</a>.</td>
<td><em>not set</em></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;statistic-sample-rate </span></td>
<td>Statistic sampling rate. Valid values are (in milliseconds): 100 - 60000. See <a href="../../../managing/statistics/chapter_overview.html">Statistics</a>.</td>
<td>1000</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-statistics</span></td>
<td>Whether statistic sampling should be enabled. Specify <code>--statistic-archive-file</code> to store the statistics to a file. Valid values are: <code class="ph codeph">true</code> and <code class="ph codeph">false</code>. See <a href="../../../managing/statistics/chapter_overview.html">Statistics</a>.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;copy-on-read</span></td>
<td>True or false. Sets the copy on read region attribute for cache read operations. See <a href="../../../basic_config/data_entries_custom_classes/copy_on_read.html">Copy on Read Behavior</a>.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;lock-lease</span></td>
<td>Sets the length, in seconds, of distributed lock leases obtained by this cache. See <a href="../../../managing/monitor_tune/performance_controls_setting_cache_timeouts.html#perf">Setting Cache Timeouts</a>.</td>
<td>120</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;lock-timeout</span></td>
<td>Sets the number of seconds a cache operation may wait to obtain a distributed lock lease before timing out.  See <a href="../../../managing/monitor_tune/performance_controls_setting_cache_timeouts.html#perf">Setting Cache Timeouts</a>.</td>
<td>60</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;message-sync-interval</span></td>
<td>Sets the frequency (in seconds) at which a message will be sent by the primary cache-server node to all the secondary cache-server nodes to remove the events which have already been dispatched from the queue. See <a href="../../../developing/events/ha_event_messaging_whats_next.html#ha_event_messaging_whats_next__section_741052B413F24F47A14F5B7D7955F0AA">Change Server Queue Synchronization Frequency</a>.</td>
<td>1</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;search-timeout</span></td>
<td>Sets the number of seconds a cache get operation can spend searching for a value. See <a href="../../../managing/monitor_tune/performance_controls_setting_cache_timeouts.html#perf">Setting Cache Timeouts</a>.</td>
<td>300</td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
alter runtime --members=server1 --log-level=WARN --enable-statistics=true
```

**Sample Output:**

``` pre
gfsh>alter runtime --members=server1 --log-level=WARN --enable-statistics=true
Runtime configuration altered successfully for the following member(s)
192.0.2.0(server1:240)<v1>:64871
```
