---
title: create
---

<!--
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.
-->

Create async-event-queues, disk-stores, gateway receivers, gateway senders, indexes, and regions.

-   **[create async-event-queue](#topic_ryz_pb1_dk)**

    Creates an asynchronous event queue for batching events before they are delivered by a gateway sender.

-   **[create defined indexes](#topic_w2t_l3m_qq)**

    Creates all the defined indexes.

-   **[create disk-store](#topic_bkn_zty_ck)**

    Defines a pool of one or more disk stores, which can be used by regions and client subscription queues, and gateway sender queues for WAN distribution.

-   **[create gateway-receiver](#topic_a4x_pb1_dk)**

    Creates a gateway receiver. You can only have one gateway receiver on each member, and unlike a gateway sender, you do not need to specify an identifier for the gateway receiver .

-   **[create gateway-sender](#topic_hg2_bjz_ck)**

    Creates a gateway sender on one or more members of a cluster.

-   **[create index](#topic_960A5B6FD3D84E1881EE118E299DD12D)**

    Create an index that can be used when executing queries.

-   **[create jndi-binding](#create_jndi-binding)**

    Create a JNDI binding that specifies resource attributes which describe a JDBC connection.

-   **[create lucene index](#create_lucene_index)**

    Create a region with given path and configuration.

-   **[create region](#topic_54B0985FEC5241CA9D26B0CE0A5EA863)**

    Create a region with given path and configuration.


**Note:** The order in which components are created matters. For example, the recommendation for WAN setup is:

- Create/start WAN senders first
- Create Regions
- Create/start WAN receivers last

This assures that when WAN receivers are started, their associated regions are in place. Otherwise,
the `create region` command may fail if events are received before the region exists.
For more on this topic, see [Configuring a Multi-site (WAN) System](../../../topologies_and_comm/multi_site_configuration/setting_up_a_multisite_system.html).

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

Creates an asynchronous event queue for batching events before they are delivered by a gateway sender.

See [Configuring Multi-Site (WAN) Event Queues](../../../developing/events/configure_multisite_event_messaging.html#configure_multisite_event_messaging).

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

**Syntax:**

``` pre
create async-event-queue --id=value --listener=value [--groups=value(,value)*]
    [--parallel(=value)?] [--enable-batch-conflation(=value)?] [--batch-size=value]
    [--batch-time-interval=value] [--persistent(=value)?] [--disk-store=value]
    [--disk-synchronous(=value)?] [--max-queue-memory=value]
    [--dispatcher-threads=value] [--order-policy=value]
    [--gateway-event-filter=value(,value)*]
    [--gateway-event-substitution-filter=value]
    [--listener-param=value(,value)*] [--forward-expiration-destroy(=value)?]
    [--pause-event-processing(=value)?]
```

**Parameters, create async-event-queue:**
<table>
<colgroup>
<col width="33%" />
<col width="34%" />
<col width="33%" />
</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;id</span></td>
<td><em>Required</em>. ID of the asynchronous event queue</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;groups</span></td>
<td>The queue is created on all members of the group(s). If you do not specify a group, the queue is created on all members.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;parallel</span></td>
<td>Specifies whether the queue is parallel.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-batch-conflation</span></td>
<td>Enables batch conflation.</td>
<td>false</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>
<td>100</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;batch-time-interval</span></td>
<td>Maximum amount of time, in ms, that can elapse before a batch is delivered.</td>
<td>5</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;persistent</span></td>
<td>Boolean value that determines whether <%=vars.product_name%> persists this queue.</td>
<td>false
<p>If specified with out a value, default is true.</p></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;disk-store</span></td>
<td>Named disk store to use for storing queue overflow, or for persisting the queue. If you specify a value, the named disk store must exist. If you specify a null value, <%=vars.product_name%> uses the default disk store for overflow and queue persistence.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;disk-synchronous</span></td>
<td>Specifies whether disk writes are synchronous.</td>
<td>true</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;max-queue-memory</span></td>
<td>Maximum amount of memory in megabytes that the queue can consume before overflowing to disk.</td>
<td>100</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;dispatcher-threads</span></td>
<td>Number of threads used for sending events.</td>
<td>5</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;order-policy</span></td>
<td>Policy for dispatching events when <code>&#8209;&#8209;dispatcher-threads</code> is &gt; 1. Possible values are <code class="ph codeph">THREAD</code>, <code class="ph codeph">KEY</code>, <code class="ph codeph">PARTITION</code>.</td>
<td>KEY</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;gateway-event-filter</span></td>
<td>List of fully qualified class names of GatewayEventFilters for this queue. These classes filter events before dispatching to remote servers.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;gateway-event-substitution-filter</span></td>
<td>Fully-qualified class name of the <code class="ph codeph">GatewayEventSubstitutionFilter</code> for this queue.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;listener</span></td>
<td><em>Required.</em> Fully-qualified class name of Async Event Listener for this queue</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;listener-param</span></td>
<td>Parameter name and value to be passed to the Async Event Listener class. Optionally, you can specify a value by following the parameter name with the <code>#</code> character and the value. For example:
<pre class="pre codeblock"><code>--listener-param=myParam#24</code></pre></td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;forward-expiration-destroy</span></td>
<td>Enables forwarding of expiration destroy operations to AsyncEventListener instances. If specified without a value, this parameter is set to “false”.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;pause-event-processing</span></td>
<td>Specifies whether event dispatching from the queue to the listener(s) will be paused when the AsyncEventQueue is started. If specified without a value, this parameter is set to "true".</td>
<td>false</td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
create async-event-queue --id=myAEQ --listener=myApp.myListener
```

## <a id="topic_w2t_l3m_qq" class="no-quick-link"></a>create defined indexes

Creates all the defined indexes.

See also [define index](define.html) and [clear defined indexes](clear.html).

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

**Syntax:**

``` pre
create defined indexes [--members=value(,value)*] [--groups=value(,value)*]
```

**Parameters, create defined indexes:**

| Name                                           | Description                                                        | Default |
|------------------------------------------------|--------------------------------------------------------------------|---------|
| <span class="keyword parmname">&#8209;&#8209;members</span> | Name/Id of the member(s) on which index will be created.              |         |
| <span class="keyword parmname">&#8209;&#8209;groups</span>  | The index will be created on all the members in the member group(s). |         |


**Example Commands:**

``` pre
create defined indexes
```

**Sample Output:**

``` pre
gfsh>create defined indexes
Indexes successfully created. Use list indexes to get details.
1. ubuntu(server1:17682)<v1>:27574
```

If index creation fails, you may receive an error message in gfsh similar to the following:

``` pre
gfsh>create defined indexes
Exception : org.apache.geode.cache.query.RegionNotFoundException , 
Message : Region ' /r3' not found: from  /r3Occurred on following members
1. india(s1:17866)<v1>:27809
```

## <a id="topic_bkn_zty_ck" class="no-quick-link"></a>create disk-store

Defines a pool of one or more disk stores, which can be used by regions and client subscription queues, and gateway sender queues for WAN distribution.

See [Disk Storage](../../../managing/disk_storage/chapter_overview.html)

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

**Syntax:**

``` pre
create disk-store --name=value --dir=value(,value)* [--allow-force-compaction(=value)?] 
[--auto-compact(=value)?] [--compaction-threshold=value] [--max-oplog-size=value]
[--queue-size=value] [--time-interval=value] [--write-buffer-size=value]
[--groups=value(,value)*]
[--disk-usage-warning-percentage=value] [--disk-usage-critical-percentage=value]
```


**Parameters, create disk-store:**

<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;name</span></td>
<td><em>Required.</em> The name of this disk store.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;dir</span></td>
<td><em>Required.</em> One or more directory names where the disk store files are written. Optionally, directory names may be followed by <code class="ph codeph">#</code> and the maximum number of megabytes that the disk store can use in the directory. For example:
<pre class="pre codeblock"><code>--dir=/data/ds1 
--dir=/data/ds2#5000</code></pre>
If the specified directory does not exist, the command will create the directory for you.</td>
<td>If the maximum directory size in megabytes is not specified, it will be set to `2147483647` (the value of `Integer.MAX_VALUE`)</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;allow-force-compaction</span></td>
<td>Set to true to allow disk compaction to be forced on this disk store.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;auto-compact</span></td>
<td>Set to true to automatically compact the disk files.</td>
<td>true</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;compaction-threshold</span></td>
<td>Percentage of non-garbage remaining, below which the disk store is eligible for compaction.</td>
<td>50</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;max-oplog-size</span></td>
<td>Maximum size, in megabytes, for an oplog file. When the oplog file reaches this size, the file is rolled over to a new file.</td>
<td>1024</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;queue-size</span></td>
<td>Maximum number of operations that can be asynchronously queued to be written to disk.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;time-interval</span></td>
<td>The number of milliseconds that can elapse before unwritten data is written to disk.</td>
<td>1000</td>
</tr>
<tr>
<td><span class="keyword parmname"> --groups</span></td>
<td>The disk store is created on all members of the group(s). If no group is specified, the disk store is created on all members.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;write-buffer-size</span></td>
<td>The size in bytes of the write buffer that this disk store uses when writing data to disk. Larger values may increase performance but use more memory. The disk store allocates one direct memory buffer of this size.</td>
<td>32768</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;disk-usage-warning-percentage</span></td>
<td>Disk usage above this threshold generates a warning message. For example, if the threshold is set to 90%, then on a 1 TB drive falling under 100 GB of free disk space generates the warning.
<p>Set to &quot;0&quot; (zero) to disable.</p></td>
<td>90</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;disk-usage-critical-percentage</span></td>
<td>Disk usage above this threshold generates an error message and shuts down the member's cache. For example, if the threshold is set to 99%, then falling under 10 GB of free disk space on a 1 TB drive generates the error and shuts down the cache.
<p>Set to &quot;0&quot; (zero) to disable.</p></td>
<td>99</td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
create disk-store --name-store1 --dir=/data/ds1
```

**Sample Output:**

``` pre
gfsh>create disk-store --name-store1 --dir=/data/ds1
Member  | Result
------- | -------
server1 | Success
```

## <a id="topic_a4x_pb1_dk" class="no-quick-link"></a>create gateway-receiver

Creates gateway receivers. You can only have one gateway receiver on each member, and unlike a gateway sender, you do not need to specify an identifier for the gateway receiver.

The create occurs on all servers,
unless the `--groups` or `--members` option is specified.

If the gateway receiver creation succeeds on at least one member,
this `gfsh` command exits with an exit code indicating success.

Outputs a tabular format status of each member's gateway receiver,
independent of the success or failure of the creation.

See [Gateway Receivers](../../../topologies_and_comm/topology_concepts/multisite_overview.html).

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

**Syntax:**

``` pre
create gateway-receiver [--groups=value(,value)*] [--members=value(,value)*] 
  [--manual-start=(value)?] [--start-port=value] [--end-port=value] [--bind-address=value] 
  [--maximum-time-between-pings=value] [--socket-buffer-size=value]
  [--gateway-transport-filter=value(,value)*] [--hostname-for-senders=value]
  [--if-not-exists=(value)?]
```

**Parameters, create gateway-receiver:**

<table>
<colgroup>
<col width="25%" />
<col width="65%" />
<col width="10%" />
</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;groups</span></td>
<td>Gateway receivers are created on the members of the group(s).</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;members</span></td>
<td>Name of the member(s) on which to create the gateway receiver.
For backward compatibility, no gateway receiver configuration is persisted
if this option is specified and cluster configuration is enabled.
</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;manual-start</span></td>
<td>Boolean value that specifies whether you need to manually start the gateway receiver. When specified without providing a boolean value or when specified and set to &quot;true&quot;, the gateway receiver must be started manually.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;start-port</span></td>
<td><p>Starting port number to use when specifying the range of possible port numbers this gateway receiver will use to connects to gateway senders in other sites. <%=vars.product_name%> chooses an unused port number in the specified port number range to start the receiver. If no port numbers in the range are available, an exception is thrown.</p>
<p>The <code class="ph codeph">start-port</code> and <code class="ph codeph">end-port</code> values are inclusive. For example, if you specify <code class="ph codeph">start-port=&quot;50510&quot;</code> and <code class="ph codeph">end-port=&quot;50520&quot;</code>, <%=vars.product_name%> chooses a port value from 50510 to 50520.</p></td>
<td>5000</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;end-port</span></td>
<td><p>Defines the upper bound port number to use when specifying the range of possible port numbers this gateway receiver will use to for connections from gateway senders in other sites. <%=vars.product_name%> chooses an unused port number in the specified port number range to start the receiver. If no port numbers in the range are available, an exception is thrown.</p>
<p>The <code class="ph codeph">end-port</code> and <code class="ph codeph">start-port</code> values are inclusive. For example, if you specify <code class="ph codeph">start-port=&quot;50510&quot;</code> and <code class="ph codeph">end-port=&quot;50520&quot;</code>, <%=vars.product_name%> chooses a port value from 50510 to 50520.</p></td>
<td>5500</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;bind-address</span></td>
<td>Network address for connections from gateway senders in other sites. Specify the address as a literal string value.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;socket-buffer-size</span></td>
<td>An integer value that sets the buffer size (in bytes) of the socket connection for this gateway receiver. This value should match the <code class="ph codeph">socket-buffer-size</code> setting of gateway senders that connect to this receiver.</td>
<td>32768</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;gateway-transport-filter</span></td>
<td>The fully qualified class name of the GatewayTransportFilter to be added to the Gateway receiver.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;maximum-time-between-pings</span></td>
<td>Integer value that specifies the time interval (in milliseconds) to use between pings to connected WAN sites. This value determines the maximum amount of time that can elapse before a remote WAN site is considered offline.</td>
<td>60000</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;hostname-for-senders</span></td>
<td>The host name or IP address told to gateway senders as the address for them to connect to. The locator informs gateway senders of this value.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;if-not-exists</span></td>
<td>When specified without providing a boolean value or when specified and set to &quot;true&quot;, gateway receivers will not be created if they already exist. Command output reports the status of each creation attempt.
</td>
<td>false</td>
</tr>

</tbody>
</table>

**Example Commands:**

``` pre
gfsh>create gateway-receiver --members=server1
```

**Sample Output:**

``` pre
gfsh>create gateway-receiver --members=server1
Member  | Status
------- | ---------------------------------------------------------------------------
server1 | GatewayReceiver created on member "server1" and will listen on the port "0"
```

## <a id="topic_hg2_bjz_ck" class="no-quick-link"></a>create gateway-sender

Creates a gateway sender on one or more members of a cluster.

See [Gateway Senders](../../../topologies_and_comm/topology_concepts/multisite_overview.html).

**Note:**
The gateway sender configuration for a specific sender `id` must be identical on each <%=vars.product_name%> member that hosts the gateway sender.

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

**Syntax:**

``` pre
create gateway-sender --id=value --remote-distributed-system-id=value 
   [--groups=value(,value)*] [--members=value(,value)*] [--parallel(=value)?]
   [--manual-start=value] [--socket-buffer-size=value] [--socket-read-timeout=value] 
   [--enable-batch-conflation=value] [--batch-size=value] [--batch-time-interval=value]
   [--enable-persistence=value] [--disk-store-name=value] [--disk-synchronous=value] 
   [--maximum-queue-memory=value] [--alert-threshold=value] [--dispatcher-threads=value] 
   [--order-policy=value][--gateway-event-filter=value(,value)*]
   [--gateway-transport-filter=value(,value)*]
   [--group-transaction-events(=value)?]
```

**Parameters, create gateway-sender:**

<table>
<colgroup>
<col width="30%" />
<col width="50%" />
<col width="20%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;id</span></td>
<td><em>Required.</em> Unique identifier for the gateway sender, usually an identifier associated with a physical location.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;remote-distributed-system-id</span></td>
<td><em>Required.</em> ID of the remote cluster where this gateway sender sends events.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;groups</span></td>
<td>Gateway senders are created on the members of the group(s).</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;members</span></td>
<td>Name of the member(s) on which to create the gateway sender.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;parallel</span></td>
<td>When set to true, specifies a parallel Gateway Sender.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-batch-conflation</span></td>
<td>Boolean value that determines whether <%=vars.product_name%> should conflate messages.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;manual-start</span></td>
<td><b>Deprecated.</b> Boolean value that specifies whether you need to manually start the gateway sender. If you supply a null value, the default value of false is used, and the gateway sender starts automatically. <em>A manual start is likely to cause data loss, so manual start should never be used in a production system.</em></td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;socket-buffer-size</span></td>
<td>Size of the socket buffer that sends messages to remote sites. This size should match the size of the <code class="ph codeph">socket-buffer-size</code> attribute of remote gateway receivers that process region events.</td>
<td>32768</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;socket-read-timeout</span></td>
<td>Amount of time in milliseconds that the gateway sender will wait to receive an acknowledgment from a remote site. By default this is set to 0, which means there is no timeout. If you do set this timeout, you must set it to a minimum of 30000 (milliseconds). Setting it to a lower number will generate an error message and reset the value to the default of 0.</td>
<td>0</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>
<td>100</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;batch-time-interval</span></td>
<td>Maximum number of milliseconds that can elapse between sending batches.</td>
<td>1000</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-persistence</span></td>
<td>Boolean value that determines whether <%=vars.product_name%> persists the gateway queue.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;disk-store-name</span></td>
<td>Named disk store to use for storing the queue overflow, or for persisting the queue. If you specify a value, the named disk store must exist. If you specify a null value, <%=vars.product_name%> uses the default disk store for overflow and queue persistence.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;disk-synchronous</span></td>
<td>For regions that write to disk, boolean that specifies whether disk writes are done synchronously for the region.</td>
<td>true</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;maximum-queue-memory</span></td>
<td>Maximum amount of memory in megabytes that the queue can consume before overflowing to disk.</td>
<td>100 MB</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;alert-threshold</span></td>
<td>Maximum number of milliseconds that a region event can remain in the gateway sender queue before <%=vars.product_name%> logs an alert.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;dispatcher-threads</span></td>
<td>Number of dispatcher threads that are used to process region events from a gateway sender queue or asynchronous event queue.</td>
<td>5</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;order-policy</span></td>
<td>When the <code class="ph codeph">dispatcher-threads</code> attribute is greater than 1, <code class="ph codeph">order-policy</code> configures the way in which multiple dispatcher threads process region events from a serial gateway queue or serial asynchronous event queue. This attribute can have one of the following values:
<dt><b>key</b></dt>
<dd>When distributing region events from the local queue, multiple dispatcher threads preserve the order of key updates.</dd>
<dt><b>thread</b></dt>
<dd>When distributing region events from the local queue, multiple dispatcher threads preserve the order in which a given thread added region events to the queue.</dd>
<dt><b>partition</b></dt>
<dd>When distributing region events from the local queue, multiple dispatcher threads preserve the order in which region events were added to the local queue. For a partitioned region, this means that all region events delivered to a specific partition are delivered in the same order to the remote <%=vars.product_name%> site. For a distributed region, this means that all key updates delivered to the local gateway sender queue are distributed to the remote site in the same order.</dd>

<p>You cannot configure the <code class="ph codeph">order-policy</code> for a parallel event queue, because parallel queues cannot preserve event ordering for regions. Only the ordering of events for a given partition (or in a given queue of a distributed region) can be preserved.</p></td>
<td>key</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></td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;gateway-transport-filter</span></td>
<td>The fully-qualified class name of the GatewayTransportFilter to be added to the GatewaySender.</td>
<td> </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>
<p><b>Note:</b> If the above condition is not fulfilled or under very high load traffic conditions, it may not be guaranteed that all the events for a transaction will be sent in the same batch, even if <code class="ph codeph">group-transaction-events</code> is enabled. The number of batches sent with incomplete transactions can be retrieved from the <code class="ph codeph">GatewaySenderMXBean</code> bean.</p></td>
<td>false</td>
</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enforce-threads-connect-same-receiver</span></td>
<td>This parameter applies only to serial gateway senders. If true, receiver member id is checked by all dispatcher threads when the connection is established to ensure they connect to the same receiver. Instead of starting all dispatcher threads in parallel, one thread is started first, and after that the rest are started in parallel.</td>
<td>false</td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
gfsh>create gateway-sender --remote-distributed-system-id="2" --id="sender2"
```

**Sample Output:**

``` pre
gfsh>create gateway-sender --remote-distributed-system-id="2" --id="sender2"
Member  | Status
------- | --------------------------------------------
server1 | GatewaySender "sender2" created on "server1"
```

## <a id="topic_960A5B6FD3D84E1881EE118E299DD12D" class="no-quick-link"></a>create index

Create an index that can be used when executing queries.

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

See [Working with Indexes](../../../developing/query_index/query_index.html).

**Syntax:**

``` pre
create index --name=value --expression=value --region=value 
[--members=value(,value)*] [--type=value] [--groups=value(,value)*]
```

**Parameters, create index:**

| Name                                               | Description                                                                            | Default |
|----------------------------------------------------|----------------------------------------------------------------------------------------|---------|
| <span class="keyword parmname">&#8209;&#8209;name</span>       | *Required.* Name of the index to create.                                               |         |
| <span class="keyword parmname">&#8209;&#8209;expression</span> | *Required.* Field of the region values that are referenced by the index.               |         |
| <span class="keyword parmname">&#8209;&#8209;region</span>     | *Required.* Name/Path of the region which corresponds to the "from" clause in a query. |         |
| <span class="keyword parmname">&#8209;&#8209;members</span>     | Name/Id of the member(s) on which index will be created.                                  |         |
| <span class="keyword parmname">&#8209;&#8209;type</span>       | Type of the index. Valid values are: `range` and `key`. (A third type, `hash`, is still recognized but hash indexes are deprecated.)                       | `range` |
| <span class="keyword parmname">&#8209;&#8209;groups</span>      | The index will be created on all the members in the group(s).                     |         |


**Example Commands:**

``` pre
create index --name=myKeyIndex --expression=region1.Id --region=region1 --type=key
```

**Sample Output:**

``` pre
gfsh>create index --name=myKeyIdex --expression=region1.Id --region=region1 --type=key
Index successfully created with following details
Name       : myKeyIdex
Expression : region1.Id
RegionPath : /region1
Members which contain the index
1. ubuntu(server1:17682)<v1>:27574

gfsh>create index --name=myIndex2 --expression=exp2 --region=/exampleRegion
Failed to create index "myIndex2" due to following reasons
Index "myIndex2" already exists.  Create failed due to duplicate name.
Occurred on following members
1. ubuntu(server1:17682)<v1>:27574
```

## <a id="create_jndi-binding" class="no-quick-link"></a>create jndi-binding

Create a JNDI binding that specifies resource attributes which describe a
JDBC connection.

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

**Syntax:**

``` pre
create jndi-binding --name=value --url=value
 [--jdbc-driver-class=value] [--type=value] [--blocking-timeout-seconds=value]
 [--conn-pooled-datasource-class=value] [--idle-timeout-seconds=value]
 [--init-pool-size=value] [--login-timeout-seconds=value]
 [--managed-conn-factory-class=value] [--max-pool-size=value] [--password=value]
 [--transaction-type=value] [--username=value] [--xa-datasource-class=value]
 [--if-not-exists(=value)?] [--datasource-config-properties=value(,value)*]
```

**Parameters, create jndi-binding:**

| Name                                               | Description                                                                            | Default |
|----------------------------------------------------|----------------------------------------------------------------------------------------|---------|
| <span class="keyword parmname">&#8209;&#8209;name</span>       | *Required.* Name of the binding to create.                                               |         |
| <span class="keyword parmname">&#8209;&#8209;url or &#8209;&#8209;connection-url</span>       | *Required.* the JDBC driver connection URL string. For example, `jdbc:hsqldb:hsql://localhost:1701`.              |         |
| <span class="keyword parmname">&#8209;&#8209;jdbc-driver-class</span>       | The fully qualified name of the JDBC driver class.              |         |
| <span class="keyword parmname">&#8209;&#8209;type</span>       | Type of the XA datasource. One of: `MANAGED`, `SIMPLE`, `POOLED`, or `XAPOOLED`. If `--type=POOLED` and a `--conn-pooled-datasource-class` option is not specified, a pool will be created using Hikari. For more information on Hikari, see [https://brettwooldridge.github.io/HikariCP](https://brettwooldridge.github.io/HikariCP).    | `SIMPLE` |
| <span class="keyword parmname">&#8209;&#8209;blocking-timeout-seconds</span>       | Specifies the maximum time, in seconds, to block while waiting for a connection before throwing an exception.                                        |         |
| <span class="keyword parmname">&#8209;&#8209;conn-pooled-datasource-class</span>   | The fully qualified name of the connection pool implementation that holds XA datasource connections. If `--type=POOLED`, then this class must implement `org.apache.geode.datasource.PooledDataSourceFactory`.                                                 |         |
| <span class="keyword parmname">&#8209;&#8209;idle-timeout-seconds</span>   | Specifies the time, in seconds, that a connection may be idle before being closed. |         |
| <span class="keyword parmname">&#8209;&#8209;init-pool-size</span>   | Specifies the initial number of connections the pool should hold.                  |         |
| <span class="keyword parmname">&#8209;&#8209;login-timeout-seconds</span>   | The quantity of seconds after which the client thread will be disconnected due to inactivity. |         |
| <span class="keyword parmname">&#8209;&#8209;managed-conn-factory-class</span>   | The fully qualified name of the connection factory implementation.     |         |
| <span class="keyword parmname">&#8209;&#8209;max-pool-size</span>   | The maximum number of connections that may be created in a pool.                    |         |
| <span class="keyword parmname">&#8209;&#8209;password</span>   | The default password used when creating a new connection.                                |         |
| <span class="keyword parmname">&#8209;&#8209;transaction-type</span>   | Type of the transaction. One of `XATransaction`, `NoTransaction`, or `LocalTransaction`. |         |
| <span class="keyword parmname">&#8209;&#8209;username</span>   | Specifies the user name to be used when creating a new connection. When specified, if the `--password` option is not also specified, gfsh will prompt for the password. |         |
| <span class="keyword parmname">&#8209;&#8209;xa-datasource-class</span>   | The fully qualified name of the `javax.sql.XADataSource` implementation class. |         |
| <span class="keyword parmname">&#8209;&#8209;if-not-exists</span>   | When true, a duplicate jndi binding will not be created if one with the same name already exists.  When false, an attempt to create a duplicate jndi binding results in an error. The option is set to true if the option is specified without a value. | false   |
| <span class="keyword parmname">&#8209;&#8209;datasource-config-properties</span>   | Properties for the custom `XADataSource` driver. Append a JSON string containing a (name, type, value) tuple to set any property. If `--type=POOLED`, the properties will configure the database data source. If `--type=POOLED` and the value of a name within the tuple begins with the string "pool.", then the properties will configure the pool data source. For example: `--datasource-config-properties={'name':'name1','type':'type1','value':'value1'},{'name':'pool.name2','type':'type2','value':'value2'}`         |         |

**Example Commands:**

``` pre
gfsh>create jndi-binding --name=jndi1 --type=SIMPLE \
  --jdbc-driver-class=org.apache.derby.jdbc.EmbeddedDriver \
  --url="jdbc:derby:newDB;create=true"
```

## <a id="create_lucene_index" class="no-quick-link"></a>create lucene index

Create a Lucene index. For details on Lucene index creation, see [Apache Lucene Integration](../../../tools_modules/lucene_integration.html).

For additional Lucene-related gfsh commands, see [describe lucene index](describe.html#describe_lucene_index), [destroy lucene index](destroy.html#destroy_lucene_index), [list lucene indexes](list.html#list_lucene_indexes) and [search lucene](search.html#search_lucene).

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

**Syntax:**

``` pre
create lucene index --name=value --region=value --field=value(,value)*
  [--analyzer=value(,value)*] [--serializer=value] [--group=value(,value)*]
```

**Parameters, create lucene index:**

| Name                                               | Description                                                                            | Default |
|----------------------------------------------------|----------------------------------------------------------------------------------------|---------|
| <span class="keyword parmname">&#8209;&#8209;name</span>       | *Required.* Name of the index to create.                                               |         |
| <span class="keyword parmname">&#8209;&#8209;region</span>     | *Required.* Name/Path of the region on which to define the index. |         |
| <span class="keyword parmname">&#8209;&#8209;field</span>      | *Required.* Field(s) of the region values that are referenced by the index, specified as a comma-separated list. To treat the entire value as a single field, specify `__REGION_VALUE_FIELD`. |         |
| <span class="keyword parmname">&#8209;&#8209;analyzer</span>   | Analyzer(s) to extract terms from text, specified as a comma-separated list. If not specified, the default analyzer is used for all fields. If specified, the number of analyzers must exactly match the number of fields specified. When listing analyzers, use the keyword `DEFAULT` for any field that will use the default analyzer.                                  | Lucene `StandardAnalyzer`        |
| <span class="keyword parmname">&#8209;&#8209;serializer</span>   | Fully qualified class name of the serializer to be used with this index. The serializer must implement the `LuceneSerializer` interface. You can use the built-in `org.apache.geode.cache.lucene.FlatFormatSerializer` to index and search collections and nested fields. If not specified, the simple default serializer is used, which indexes and searches only the top level fields of the region objects.   | simple serializer        |
| <span class="keyword parmname">&#8209;&#8209;group</span>      | The index will be created on all the members in the specified member groups.                     |         |


**Example Commands:**

``` pre
gfsh>create lucene index --name=customerIndex --region=/Customer 
   --field=__REGION_VALUE_FIELD

gfsh>create lucene index --name=analyzerIndex --region=/Person 
     --field=name,email,address,revenue 
     --analyzer=DEFAULT,org.apache.lucene.analysis.core.KeywordAnalyzer,
                examples.MyCharacterAnalyzer,DEFAULT
```

**Sample Output:**

``` pre
gfsh>create lucene index --name=testIndex --region=testRegion
    --field=__REGION_VALUE_FIELD
               Member                  | Status
-------------------------------------- | ---------------------------------
192.168.1.23(server505:17200)<v1>:1025 | Successfully created lucene index
```

## <a id="topic_54B0985FEC5241CA9D26B0CE0A5EA863" class="no-quick-link"></a>create region

Create a region with given path and configuration.

You must specify either a `--type` or a `--template-region` for initial configuration when creating a region. Specifying a `--key-constraint` and `--value-constraint` makes object type information available during querying and indexing.

See [Region Data Storage and Distribution](../../../developing/region_options/chapter_overview.html).

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

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

**Syntax:**

``` pre
 create region --name=value [--type=value] [--template-region=value]
    [--groups=value(,value)*] [--if-not-exists(=value)?]
    [--key-constraint=value] [--value-constraint=value]
    [--enable-statistics=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] [--disk-store=value]
    [--enable-synchronous-disk=value] [--enable-async-conflation=value]
    [--enable-subscription-conflation=value] [--cache-listener=value(,value)*]
    [--cache-loader=value] [--cache-writer=value]
    [--async-event-queue-id=value(,value)*]
    [--gateway-sender-id=value(,value)*] [--enable-concurrency-checks=value]
    [--enable-cloning=value] [--concurrency-level=value]
    [--colocated-with=value] [--local-max-memory=value]
    [--recovery-delay=value] [--redundant-copies=value]
    [--startup-recovery-delay=value] [--total-max-memory=value]
    [--total-num-buckets=value] [--compressor=value] [--off-heap(=value)?]
    [--partition-listener=value(,value)*] [--partition-resolver=value]
    [--eviction-entry-count=value] [--scope=value]
    [--eviction-max-memory=value] [--eviction-action=value]
    [--eviction-object-sizer=value]
```

**Parameters, create region:**

<table>
<colgroup>
<col width="20%" />
<col width="50%" />
<col width="30%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;name</span></td>
<td><em>Required.</em> Name/Path of the region to be created.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;type</span></td>
<td><em>Required</em> (if template-region is not specified.) Type of region to create. Options include: PARTITION, PARTITION_REDUNDANT, REPLICATE, LOCAL, etc.
<p>To get a list of of all region type options, add the <span class="keyword parmname">&#8209;&#8209;type</span> parameter and then select the TAB key to display a full list.</p></td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;template-region </span></td>
<td><em>Required</em> (if type is not specified.) Name/Path of the region whose attributes should be duplicated when creating this region.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;groups</span></td>
<td>Group(s) of members on which the region will be created.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;if-not-exists</span></td>
<td>A new region will not be created if a region with the same name already exists. By default, an attempt to create a duplicate region is reported as an error.
If this option is specified without a value or is specified with a value of <code>true</code>, then gfsh displays a "Skipping..." acknowledgement, but does not throw an error.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;key-constraint</span></td>
<td>Fully qualified class name of the objects allowed as region keys. Ensures that keys for region entries are all of the same class.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;value-constraint </span></td>
<td>Fully qualified class name of the objects allowed as region values. If not specified, then region values can be of any class.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-statistics</span></td>
<td>Whether to gather statistics for the region. Must be true to use expiration on the region.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-idle-time-expiration</span></td>
<td>How long, in seconds, the region's entries can remain in the cache without being accessed.</td>
<td>no expiration</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-idle-time-expiration-action </span></td>
<td>Action to be taken on an entry that has exceeded the idle expiration. Valid expiration actions include destroy, local-destroy, invalidate (default), local-invalidate.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-time-to-live-expiration</span></td>
<td>How long, in seconds, the region's entries can remain in the cache without being accessed or updated. The default is no expiration of this type.</td>
<td>no expiration</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;entry-time-to-live-expiration-action</span></td>
<td>Action to be taken on an entry that has exceeded the TTL expiration. Valid expiration actions include destroy, local-destroy, invalidate (default), local-invalidate.</td>
<td> </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;region-idle-time-expiration</span></td>
<td>How long, in seconds, the region can remain in the cache without its entries being accessed. The default is no expiration of this type.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;region-idle-time-expiration-action</span></td>
<td>Action to be taken on a region that has exceeded the idle expiration. Valid expiration actions include destroy, local-destroy, invalidate (default), local-invalidate. The destroy and local-destroy actions destroy the region. The invalidate and local-invalidate actions leave the region in place, but invalidate all of its entries.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;region-time-to-live-expiration</span></td>
<td>How long, in seconds, the region can remain in the cache without its entries being accessed or updated. The default is no expiration of this type.</td>
<td>no expiration</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;region-time-to-live-expiration-action</span></td>
<td>Action to be taken on a region that has exceeded the TTL expiration. Valid expiration actions include destroy, local-destroy, invalidate (default), local-invalidate. The destroy and local-destroy actions destroy the region. The invalidate and local-invalidate actions leave the region in place, but invalidate all of its entries.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;disk-store</span></td>
<td>Disk Store to be used by this region. The <a href="list.html#topic_BC14AD57EA304FB3845766898D01BD04">list disk-stores</a> command can be used to display existing disk stores.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-synchronous-disk</span></td>
<td>Whether writes are done synchronously for regions that persist data to disk.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-async-conflation</span></td>
<td>Whether to allow aggregation of asynchronous TCP/IP messages sent by the producer member of the region. A false value causes all asynchronous messages to be sent individually.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-subscription-conflation</span></td>
<td>Whether the server should conflate its messages to the client. A false value causes all server-client messages to be sent individually.</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;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;gateway-sender-id</span></td>
<td>IDs of the Gateway Senders to which data will be routed.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-concurrency-checks</span></td>
<td>Whether Region Version Vectors are implemented. Region Version Vectors are an extension to the versioning scheme that aid in synchronization of replicated regions.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;enable-cloning</span></td>
<td>Determines how fromDelta 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.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;concurrency-level </span></td>
<td>Estimate of the maximum number of application threads that will concurrently access a region entry at one time. This attribute does not apply to partitioned regions.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;colocated-with </span></td>
<td>Central Region with which this region should be colocated.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;local-max-memory</span></td>
<td>Maximum amount of memory, in megabytes, to be used by the region in this process. (The default is 90% of available heap.)</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;recovery-delay </span></td>
<td>Delay in milliseconds that existing members will wait after a member crashes before restoring this region's redundancy on the remaining members. The default value (-1) indicates that redundancy will not be recovered after a failure.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;redundant-copies </span></td>
<td>Number of extra copies of buckets desired. Extra copies allow for both high availability in the face of VM departure (intended or unintended) and load balancing read operations. (Allowed values: 0, 1, 2 and 3)</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;startup-recovery-delay </span></td>
<td>Delay in milliseconds that new members will wait before assuming their share of cluster-level redundancy. This allows time for multiple regions to start before the redundancy workload is parceled out to the new members. A value of -1 indicates that adding new members will not trigger redundancy recovery.</td>
<td>The default is to recover redundancy immediately when a new member is added.</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;total-max-memory </span></td>
<td>Maximum amount of memory, in megabytes, to be used by the region in all processes.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;total-num-buckets </span></td>
<td>Total number of hash buckets to be used by the region in all processes.</td>
<td>113</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;compressor</span></td>
<td>Java class name that implements compression for the region. You can write a custom compressor that implements <code class="ph codeph">org.apache.geode.compression.Compressor</code> or you can specify the Snappy compressor (<code class="ph codeph">org.apache.geode.compression.SnappyCompressor</code>), which is bundled with <%=vars.product_name%>. See <a href="../../../managing/region_compression.html">Region Compression</a>.</td>
<td>no compression</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;off-heap</span></td>
<td>Specifies whether the region values are stored 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>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;partition-listener</span></td>
<td>Specifies fully-qualified class names of one or more custom partition listeners.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;partition-resolver</span></td>
<td>Specifies the full path to a custom partition resolver. Specify <code class="ph codeph">org.apache.geode.cache.util.StringPrefixPartitionResolver</code> to use the included string prefix <code class="ph codeph">PartitionResolver</code>.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;eviction-entry-count</span></td>
<td>Enables eviction, where the eviction policy is based on the number of entries in the region.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;eviction-max-memory</span></td>
<td>Enables eviction, where the eviction policy is based on the amount of memory consumed by the region, specified in megabytes.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;eviction-action</span></td>
<td>Action to take when the eviction threshold is reached.
<div class="p">
<table>
<tbody>
<tr>
<td>local-destroy</td>
<td>Entry is destroyed locally. Use with caution - may lead to inconsistencies.</td>
</tr>
<tr>
<td>overflow-to-disk</td>
<td>Entry is overflowed to disk. For partitioned regions, this provides the most reliable read behavior across the region.</td>
</tr>
</tbody>
</table>
</div>
</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;eviction-object-sizer</span></td>
<td>Specifies your implementation of the ObjectSizer interface to measure the size of objects in the region.
The sizer applies only to heap and memory based eviction.</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">&#8209;&#8209;scope</span></td>
<td>Specifies the scope of the Replicated region. This field can be only used if the --type parameter is set with a replicated region type. This parameter is invalid for all other region types. If this parameter is not set and --type is set to a replicated region, the the default scope DISTRIBUTED_ACK is set.</td>
<td></td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
create region --name=region1 --type=REPLICATE_PERSISTENT \
--cache-writer=org.apache.geode.examples.MyCacheWriter \
--group=Group1 --disk-store=DiskStore1

create region --name=region12 --template-region=/region1

create region --name=region2 --type=REPLICATE \
--cache-listener=org.apache.geode.examples.MyCacheListener1,\
org.apache.geode.examples.MyCacheListener2 \
--group=Group1,Group2

create region --name=region3 --type=PARTITION_PERSISTENT --redundant-copies=2 \
--total-max-memory=1000 --startup-recovery-delay=5 --total-num-buckets=100 \
--disk-store=DiskStore2 --cache-listener=org.apache.geode.examples.MyCacheListener3 \
--group=Group2 

create region --name=region4 --type=REPLICATE_PROXY \
--cache-listener=org.apache.geode.examples.MyCacheListener1 --group=Group1,Group2

create region --name=myRegion --type=REPLICATE --eviction-max-memory=100 \
--eviction-action=overflow-to-disk --eviction-object-sizer=my.company.geode.MySizer

create region --name=r1 --type=PARTITION \
--cache-loader=org.example.myLoader{'URL':'jdbc:cloudscape:rmi:MyData'}
```

**Sample Output:**

``` pre
gfsh>create region --name=myRegion --type=LOCAL
Member  | Status
------- | ---------------------------------------
server1 | Region "/myRegion" created on "server1"
```


