---
title: start
---

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

Start servers, locators, gateway senders and gateway receivers, and monitoring tools.

-   **[start gateway-receiver](#topic_67738A5B68E84DEE95D1C92DAB2E26E5)**

    Start the gateway receiver on a given member or group of members.

-   **[start gateway-sender](#topic_AB8BA3F42B9645A8BE9BD97CE2F839A8)**

    Start the gateway sender on a member or members.

-   **[start jconsole](#topic_D00507416F3944DFAB48D2FA2B9E4A31)**

    Start the JDK JConsole monitoring application in a separate process.

-   **[start jvisualvm](#topic_5B5BF8BEE905463D8B7762B89E2D65E7)**

    Start the JDK's Java VisualVM monitoring application in a separate process.

-   **[start locator](#topic_591260CF25D64562A0EDD7260D2AC6D4)**

    Start a locator.

-   **[start pulse](#topic_E906BA7D9E7F4C5890FEFA7ECD40DD77)**

    Launch the <%=vars.product_name%> Pulse monitoring dashboard tool in the user's default system browser and navigates the user to the landing page (login page).

-   **[start server](#topic_3764EE2DB18B4AE4A625E0354471738A)**

    Start a <%=vars.product_name%> cache server process.

## <a id="topic_67738A5B68E84DEE95D1C92DAB2E26E5" class="no-quick-link"></a>start gateway-receiver

Start the gateway receiver on a given member or group of members.

Note that 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.

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

**Syntax:**

``` pre
start gateway-receiver [--groups=value(,value)*] [--members=value(,value)*]
```
**Parameters, start gateway-receiver**

| Name                                           | Description                                                      |
|------------------------------------------------|------------------------------------------------------------------|
| <span class="keyword parmname">\\-\\-members</span> | Name or ID of the member(s) on which to start the Gateway Receiver. |
| <span class="keyword parmname">\\-\\-groups</span>  | Group(s) of members on which to start the Gateway Receiver.      |


**Example Commands:**

``` pre
start gateway-receiver
start gateway-receiver --members=member1
```

**Sample Output:**

``` pre
gfsh>start gateway-receiver
      Member                | Result | Message
--------------------------- | -------| -----------------------------------------------------------------------
pc13(2266)<v6>:56852        | OK     | GatewayReceiver is started on member pc13(2266)<v6>:56852
pc13(Manager:2242)<v5>:57631| Error  | GatewayReceiver is not available on member pc13(Manager:2242)<v5>:57631
pc13(2275)<v7>:47480        | OK     | GatewayReceiver is started on member pc13(2275)<v7>:47480
pc13(2293)<v8>:55472        | OK     | GatewayReceiver is started on member pc13(2293)<v8>:55472

gfsh>start gateway-receiver --members=pc13(2266)<v14>:36579
GatewayReceiver is started on member pc13(2266)<v14>:36579

gfsh>start gateway-receiver --group=RG1
         Member      | Result | Message
-------------------- | -------| ----------------------------------------------------------
pc13(2275)<v23>:27484| OK     | GatewayReceiver is started on member pc13(2275)<v23>:27484
pc13(2293)<v24>:55810| OK     | GatewayReceiver is started on member pc13(2293)<v24>:55810
pc13(2266)<v22>:4522 | OK     | GatewayReceiver is started on member pc13(2266)<v22>:4522
```

## <a id="topic_AB8BA3F42B9645A8BE9BD97CE2F839A8" class="no-quick-link"></a>start gateway-sender

Start the gateway sender on a member or members.

For information on how to configure a gateway sender, see [Configure Gateway Senders](../../../topologies_and_comm/multi_site_configuration/setting_up_a_multisite_system.html#setting_up_a_multisite_system__section_1500299A8F9A4C2385680E337F5D3DEC).

Note: By default, gateway senders are configured to start automatically. Manual restart introduces a risk of data loss; it is not intended for production systems.

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

**Syntax:**

``` pre
start gateway-sender --id=value [--groups=value(,value)*] [--members=value(,value)*] [--clean-queues(=value)]
```
**Parameters, start gateway-sender**

| Name                                           | Description                                               | Default  |
|------------------------------------------------|-----------------------------------------------------------|          |
| <span class="keyword parmname">\\-\\-id</span>     | *Required.* ID of the GatewaySender.                      |          |
| <span class="keyword parmname">\\-\\-groups</span>  | Group(s) of members on which to start the Gateway Sender. |          |
| <span class="keyword parmname">\\-\\-members</span> | Member(s) on which to start the Gateway Sender                   |          |
| <span class="keyword parmname">\\-\\-clean-queues</span> | Option to clean existing queue at start of the Gateway Sender. This option is only applicable for Gateway Senders with enabled persistence.  | false   |
**Example Commands:**

``` pre
start gateway-sender --id=sender1-NY
start gateway-sender --id=sender1-NY --members=server1
start gateway-sender --id=sender1-NY --groups=MemberGroup1,MemberGroup2
start gateway-sender --id=sender1-NY --clean-queues
```

**Sample Output:**

``` pre
gfsh>start gateway-sender --id=ln
 Member                       |  Result |                   Message
------------------------------| ------- | -------------------------------------------------------------------------
pc13(30614)<v6>:63670         | OK      | GatewaySender ln is started on member pc13(30614)<v6>:63670
pc13(30621)<v7>:36015         | OK      | GatewaySender ln is started on member pc13(30621)<v7>:36015
pc13(30633)<v8>:13633         | OK      | GatewaySender ln is started on member pc13(30633)<v8>:13633
pc13(Manager:30588)<v5>:42792 | Error   | GatewaySender ln is not available on member pc13(Manager:30588)<v5>:42792

gfsh>start gateway-sender --id=ln --members=pc13(30614)<v14>:44519
GatewaySender ln is started on member pc13(30614)<v14>:44519
gfsh>start gateway-sender --id=ln --groups=SenderGroup1
Member                 | Result| Message
---------------------- | ------| ------------------------------------------------------------
pc13(30614)<v18>:15201 | OK    | GatewaySender ln is started on member pc13(30614)<v18>:15201
pc13(30621)<v19>:61437 | OK    | GatewaySender ln is started on member pc13(30621)<v19>:61437
pc13(30633)<v20>:22567 | OK    | GatewaySender ln is started on member pc13(30633)<v20>:22567
```

## <a id="topic_D00507416F3944DFAB48D2FA2B9E4A31" class="no-quick-link"></a>start jconsole

Start the JDK JConsole monitoring application in a separate process.

JConsole automatically connects to a running JMX Manager node if one is available.

Note that you must have a JDK installed (not just a JRE) and the correct PATH and JAVA\_HOME environment variables set.

See [Browsing <%=vars.product_name%> MBeans through JConsole](../../../managing/management/mbeans_jconsole.html) for an example of using JConsole with the <%=vars.product_name%> management and monitoring system.

**Availability:** Online or offline.

**Syntax:**

``` pre
start jconsole [--interval=<seconds>] [--notile] [--version]
[--J<jconsole JVM options>]
```

**Parameters, start jconsole**

| Name         | Description    | Default Value |
|--------------|----------------|---------------|
| <span class="keyword parmname">\\-\\-interval</span>   | Set the update interval to n seconds (default is 4 seconds). (Equivalent to JConsole's `-interval=n`) | 4             |
| <span class="keyword parmname">\\-\\-notile</span>     | Whether to initially tile windows for two or more connections. This parameter is passed as `-notile` to JConsole. | false         |
| <span class="keyword parmname">&#8209;&#8209;pluginpath</span> | Directories or JAR files which are searched for JConsole plugins. The path should contain a provider-configuration file named:`META-INF/services/com.sun.tools.jconsole.JConsolePlugin` containing one line for each plugin specifying the fully qualified class name of the class implementing the `com.sun.tools.jconsole.JConsolePlugin` class. |               |
| <span class="keyword parmname">\\-\\-version</span>    | Display the JConsole version information. This parameter is passed as `-version` to JConsole. | false         |
| <span class="keyword parmname">\\-\\-J</span>          | Arguments passed to the JVM on which JConsole runs |               |

**Example Commands:**

``` pre
gfsh>start jconsole --interval=8 --notile;
Running JDK JConsole

gfsh>start jconsole --version;
JConsole version "1.8.0_31-b01-1"
Java(TM) SE Runtime Environment (build 1.8.0_31-b01-1-11)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01-11, mixed mode)
```

**Sample Output:**

``` pre
gfsh>start jconsole
Running JDK JConsole
```

The JConsole application appears and auto-connects to a JMX Manager node if one is available:

<img src="../../../images/JConsole.png" id="topic_D00507416F3944DFAB48D2FA2B9E4A31__image_AAB6A784AD4B4BD1B5155AC796C22F82" class="image imagecenter" />

**Error Messages:**

``` pre
An error occurred while launching JConsole = %1$s

Connecting by the <%=vars.product_name%> member's name or ID is not currently supported.
Please specify the member as '<hostname|IP>[PORT].

An IO error occurred while launching JConsole.
Please ensure that JAVA_HOME is set to the JDK installation
or the JDK bin directory is in the system PATH.

JConsole could not be found.\nPlease ensure that JAVA_HOME is set to the
JDK installation or the JDK bin directory is in the system PATH.
```

## <a id="topic_5B5BF8BEE905463D8B7762B89E2D65E7" class="no-quick-link"></a>start jvisualvm

Start the JDK's Java VisualVM monitoring application in a separate process.

**Availability:** Online or offline.

**Syntax:**

``` pre
start jvisualvm [--J=value(,value)*]
```

**Parameters, start jvisualvm**

| Name       | Description |
|------------|-------------|
| <span class="keyword parmname">\\-\\-J</span> | VM-option passed to the spawned CacheServer VM. For example: `--J=-Dfoo.bar=true` for setting foo.bar to 'true'. |

**Example Commands:**

``` pre
start jvisualvm
```

**Sample Output:** <img src="../../../images/jvisualvm.png" id="topic_5B5BF8BEE905463D8B7762B89E2D65E7__image_BDA0F3A31F784C5FBBB5999EDA2BD942" class="image" />

## <a id="topic_591260CF25D64562A0EDD7260D2AC6D4" class="no-quick-link"></a>start locator

Start a locator.

The command creates a subdirectory and log file named after the locator. If the locator detects that no other JMX Manager exists, then the locator will automatically start an embedded JMX Manager and connect the current `gfsh` session to the JMX Manager.

**Note:** You must have `JAVA_HOME` set before starting gfsh to use this command.

In addition, if gfsh is not already connected to a JMX Manager, the gfsh console will automatically connect to the new embedded JMX Manager started by the new locator.

**Note:** When both `--max-heap` and `--initial-heap` are specified during locator startup, additional GC parameters are specified internally by <%=vars.product_name%>'s Resource Manager. If you do not want the additional default GC properties set by the Resource Manager, then use the`-Xms` and `-Xmx` JVM options. See [Controlling Heap Use with the Resource Manager](../../../managing/heap_use/heap_management.html#configuring_resource_manager) for more information.

**Note:** The additional GC parameters introduced by the `--max-heap` option are not compatible with the usage of G1 garbage collector.

**Availability:** Online or offline.

**Syntax:**

``` pre
start locator --name=value [--bind-address=value] [--force(=value)]
 [--groups=value(,value)*] [--hostname-for-clients=value] [--classpath=value]
 [--locators=value] [--log-level=value] [--mcast-address=value] [--mcast-port=value] [--port=value] [--dir=value]
 [--properties-file=value] [--security-properties-file=value] [--initial-heap=value] [--max-heap=value]
 [--connect(=value)] [--enable-cluster-configuration(=value)] [--load-cluster-configuration-from-dir(=value)]
 [--cluster-config-dir=value] [--redirect-output(=value)]
 [--http-service-port=value] [--http-service-bind-address=value] 
 [--J=value(,value)*]
```

**Parameters, start locator**

<table>
<colgroup>
<col width="33%" />
<col width="33%" />
<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">\-\-name</span></td>
<td>Name to be used for this <%=vars.product_name%> locator service. If not specified, gfsh generates a random name.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-bind-address</span></td>
<td>IP address on which the locator will be bound.</td>
<td>bind to all addresses</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-force</span></td>
<td>Whether to allow the PID file from a previous locator run to be overwritten.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-groups</span></td>
<td>Group(s) the locator will be a part of.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-hostname-for-clients</span></td>
<td>Host name or IP address that will be sent to clients so they can connect to this locator.</td>
<td>uses <code>bind-address</code></td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-classpath</span></td>
<td>Application classes to be added to the locator's CLASSPATH after the core jar file. See <a href="../../../getting_started/setup_classpath.html">Setting Up the CLASSPATH</a> for details.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-locators</span></td>
<td>List of locators used by this locator to join the appropriate <%=vars.product_name%> cluster.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-log-level</span></td>
<td>Level of output logged to the locator log file. Possible values for log-level include: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-mcast-address </span></td>
<td>IP address or hostname used to bind the UPD socket for multi-cast networking so the locator can locate other members in the <%=vars.product_name%> cluster. If mcast-port is zero, then mcast-address is ignored.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-mcast-port</span></td>
<td>Port used for multi-cast networking so the locator can locate other members of the <%=vars.product_name%> cluster. A zero value disables mcast.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-port</span></td>
<td>Port the locator will listen on.</td>
<td>10334</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-dir</span></td>
<td>Directory in which the Locator will be started and run.</td>
<td><span class="ph filepath">./&lt;locator-member-name&gt;</span></td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-properties-file</span></td>
<td>Specify the <code class="ph codeph">gemfire.properties</code> file for configuring the locator's cluster. The file's path should be absolute or relative to gfsh's working directory.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-security-properties-file</span></td>
<td>The <span class="ph filepath">gfsecurity.properties</span> file for configuring the Locator's security configuration in the cluster. The file's path can be absolute or relative to gfsh's working directory.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-initial-heap</span></td>
<td>Size has the same format as the <code class="ph codeph">-Xmx</code>/<code class="ph codeph">-Xms</code> JVM options.
<div class="note note">
<b>Note:</b> If you use the <code class="ph codeph">-J-Xms</code> and <code class="ph codeph">-J-Xmx</code> JVM properties instead of <code class="ph codeph">-initial-heap</code> and <code class="ph codeph">-max-heap</code>, then <%=vars.product_name%> does not use default JVM resource management properties. If you use the JVM properties, you must then specify all properties manually for eviction, garbage collection, heap percentage, and so forth.
</div></td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-max-heap</span></td>
<td>Size has the same format as the <code class="ph codeph">-Xmx</code>/<code class="ph codeph">-Xms</code> JVM options
<div class="note note">
<b>Note:</b> If you use the <code class="ph codeph">-J-Xms</code> and <code class="ph codeph">-J-Xmx</code> JVM properties instead of <code class="ph codeph">-initial-heap</code> and <code class="ph codeph">-max-heap</code>, then <%=vars.product_name%> does not use default JVM resource management properties. If you use the JVM properties, you must then specify all properties manually for eviction, garbage collection, heap percentage, and so forth.<br/>
<b>Note:</b> The additional GC parameters introduced by the <code class="ph codeph">-max-heap</code> option are not compatible with the usage of G1 garbage collector.
</div></td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-connect</span></td>
<td>When connect is set to false, gfsh does not automatically connect to the locator which is started using this command.</td>
<td>true</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-enable-cluster-configuration</span></td>
<td>Enables cluster configuration behavior where locators maintain configurations for all members of the cluster. 
See <a href="../../../configuring/cluster_config/gfsh_persist.html">Overview of the Cluster Configuration Service</a>.</td>
<td>true</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-load-cluster-configuration-from-dir</span></td>
<td><b>Deprecated. Use <code>gfsh import cluster-configuration</code> for this functionality.</b> Loads the cluster configuration from the <span class="ph filepath">shared-config</span> directory. (When set to false, the configuration is loaded from the disk store of the internal, persistent region used by the locator to persist the configuration.)</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-cluster-config-dir</span></td>
<td>Directory used by the cluster configuration service to store the cluster configuration on the filesystem</td>
<td>cluster-config</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-redirect-output</span></td>
<td>When true, redirect standard output and standard error to the locator log file. If specified without a value, the value is set to true.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-http-service-port</span></td>
<td>Specifies the HTTP service port.</td>
<td>7070</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-http-service-bind-address</span></td>
<td>Specifies the IP address to which the HTTP service will be bound.
</td>
<td>the local host machine's address</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-J </span></td>
<td>Argument passed to the JVM on which the Locator will run. For example, specifying <code class="ph codeph">--J=-Dfoo.bar=true</code> sets property &quot;foo.bar&quot; to &quot;true&quot;.
<div class="note note">
<b>Note:</b>
<p>If the argument you are passing contains spaces or commas, enclose the option in single quotes. For example:</p>
<pre class="pre codeblock"><code>start locator --name=locator1 --port=9009 --mcast-port=0\
--J=&#39;-Dgemfire.remote-locators=192.0.2.0[9009],192.0.2.1[9009]&#39;</code></pre>
</div></td>
<td>none</td>
</tr>
</tbody>
</table>

**Example Commands:**

``` pre
start locator --name=locator1
```

## <a id="topic_E906BA7D9E7F4C5890FEFA7ECD40DD77" class="no-quick-link"></a>start pulse

Launch the <%=vars.product_name%> Pulse monitoring dashboard tool in the user's default system browser and navigates the user to the landing page (login page).

For more information on <%=vars.product_name%> Pulse, see [<%=vars.product_name%> Pulse](../../pulse/pulse-overview.html).

**Availability:** Online or offline.

**Syntax:**

``` pre
start pulse [--url=value]
```

**Parameters, start pulse**

| Name                                        | Description                      | Default                       |
|---------------------------------------------|----------------------------------|-------------------------------|
| <span class="keyword parmname">\\-\\-url</span> | URL of the Pulse Web application | `http://localhost:7070/pulse` |

**Example Commands:**

``` pre
start pulse
start pulse --url=http://gemfire.example.com:7070/pulse
```

**Sample Output:** See [<%=vars.product_name%> Pulse](../../pulse/pulse-overview.html) for examples of Pulse.

## <a id="topic_3764EE2DB18B4AE4A625E0354471738A" class="no-quick-link"></a>start server

Start a <%=vars.product_name%> cache server process.

**Note:** When both <span class="keyword parmname">\\-\\-max-heap</span> and <span class="keyword parmname">\\-\\-initial-heap</span> are specified during server startup, additional GC parameters are specified on your behalf. If you do not want the additional default GC properties set, then use the `-Xms` and `-Xmx` JVM options to set just these parameters. See [Controlling Heap Use with the Resource Manager](../../../managing/heap_use/heap_management.html#configuring_resource_manager) for more information.

**Note:** The additional GC parameters introduced by the `--max-heap` option are not compatible with the usage of G1 garbage collector.

**Availability:** Online or offline.

**Syntax:**

``` pre
start server --name=value [--assign-buckets(=value)] [--bind-address=value]
    [--cache-xml-file=value] [--classpath=value] [--disable-default-server(=value)]
    [--disable-exit-when-out-of-memory(=value)] [--enable-time-statistics(=value)]
    [--force(=value)] [--include-system-classpath(=value)] [--properties-file=value]
    [--security-properties-file=value] [--groups=value(,value)*]
    [--locators=value] [--locator-wait-time=value] [--log-level=value]
    [--mcast-address=value] [--mcast-port=value] [--memcached-port=value]
    [--memcached-protocol=value] [--rebalance(=value)] [--server-bind-address=value]
    [--server-port=value] [--spring-xml-location=value]
    [--statistic-archive-file=value] [--dir=value] [--initial-heap=value]
    [--max-heap=value] [--use-cluster-configuration(=value)] [--J=value(,value)*]
    [--critical-heap-percentage=value] [--critical-off-heap-percentage=value]
    [--eviction-heap-percentage=value] [--eviction-off-heap-percentage=value]
    [--hostname-for-clients=value] [--max-connections=value]
    [--message-time-to-live=value] [--max-message-count=value] [--max-threads=value]
    [--socket-buffer-size=value] [--lock-memory=value] [--off-heap-memory-size=value]
    [--start-rest-api=value] [--redirect-output(=value)]
    [--http-service-port=value] [--http-service-bind-address=value]
    [--user=value] [--password=value]
```

**Parameters, start server**

<table>
<colgroup>
<col width="33%" />
<col width="33%" />
<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">\-\-name</span></td>
<td>Member name for this server. If not specified, gfsh generates a random name.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-assign-buckets</span></td>
<td>Whether to assign buckets to the partitioned regions of the cache on server start.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-bind-address</span></td>
<td>The IP address on which the server will be bound.</td>
<td>binds to all local addresses</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-cache-xml-file</span></td>
<td>Specifies the name of the XML file or resource to initialize the cache with when it is created.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-classpath</span></td>
<td>Application classes to be added to the server's CLASSPATH after the core jar file. See <a href="../../../getting_started/setup_classpath.html">Setting Up the CLASSPATH</a> for details.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-include-system-classpath</span></td>
<td>When true, include the System CLASSPATH on the Server's CLASSPATH, as the System CLASSPATH is not included by default. If specified without a value, the value is set to true.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-disable-default-server</span></td>
<td>Whether the cache server will be started by default. If the parameter is specified without a value, the value is set to true. If set to true, the cache server acts as a peer.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-disable-exit-when-out-of-memory</span></td>
<td>Prevents the JVM from exiting when an OutOfMemoryError occurs.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-enable-time-statistics</span></td>
<td>Causes additional time-based statistics to be gathered for <%=vars.product_name%> operations.</td>
<td>true</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-properties-file</span></td>
<td>The <span class="ph filepath">gemfire.properties</span> file for configuring the server's cluster. The file's path can be absolute or relative to the gfsh working directory.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-security-properties-file</span></td>
<td>The <span class="ph filepath">gfsecurity.properties</span> file for configuring the server's security configuration in the cluster. The file's path can be absolute or relative to gfsh directory.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-groups</span></td>
<td>Group(s) the Cache Server will be a part of.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-force</span></td>
<td>Whether to allow the PID file from a previous Cache Server run to be overwritten.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-locators </span></td>
<td>Sets the list of locators used by the Cache Server to join the appropriate <%=vars.product_name%> cluster.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-locator-wait-time</span></td>
<td>Sets the number of seconds the server will wait for a locator to become available during startup before giving up.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-log-level</span></td>
<td>Sets the level of output logged to the Cache Server log file. Possible values for log-level include: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-mcast-address</span></td>
<td>The IP address or hostname used to bind the UDP socket for multi-cast networking so the Cache Server can locate other members in the <%=vars.product_name%> cluster. If mcast-port is zero, then mcast-address is ignored.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-mcast-port</span></td>
<td>Sets the port used for multi-cast networking so the Cache Server can locate other members of the <%=vars.product_name%> cluster. A zero value disables mcast.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-memcached-port</span></td>
<td>If specified and is non-zero, sets the port number for an embedded Gemcached server and starts the Gemcached server.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-memcached-protocol</span></td>
<td>Sets the protocol used by an embedded Gemcached server. Valid values are <code class="ph codeph">BINARY</code> and <code class="ph codeph">ASCII.</code> If you omit this property, the ASCII protocol is used.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-server-bind-address</span></td>
<td>Overrides the <code>bind-address</code> on which this server will listen for client connections. Set this option in a multi-homed server environment to distinguish communications from clients. Setting a value of the empty string (&quot;&quot;) uses the value of <code>bind-address</code>.</td>
<td>value of <code>bind-address</code></td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-server-port</span></td>
<td>Port the Server will listen on for client connections.</td>
<td>40404</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-spring-xml-location</span></td>
<td>Specifies the location of a Spring XML configuration file(s) for bootstrapping and configuring a <%=vars.product_name%> Server. This configuration file can exist on the CLASSPATH (default) or any location supported by Spring's Resource(Loader) location specifiers (for example, classpath:, file:, etc). ResourceLoader is described in the 
<a href="http://docs.spring.io/spring/docs/4.0.9.RELEASE/spring-framework-reference/htmlsingle/#resources-resourceloader">Spring documentation</a>.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-rebalance</span></td>
<td>Whether to initiate rebalancing across the <%=vars.product_name%> cluster.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-dir</span></td>
<td>Specify the directory in which the server will run in. This directory is written to the location where you started <code class="ph codeph">gfsh</code>.</td>
<td>If not specified, the directory is named after the server.</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-statistic-archive-file </span></td>
<td>The file that statistic samples are written to. For example: &quot;StatisticsArchiveFile.gfs&quot;. Must be defined to store the archiving to a file. An empty string (default) disables statistic archival.</td>
<td><em>not set</em></td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-initial-heap</span></td>
<td>Initial size of the heap in the same format as the JVM -Xms parameter.
<div class="note note">
<b>Note:</b> If you use the <code class="ph codeph">--J=-Xms</code> and <code class="ph codeph">--J=-Xmx</code> JVM properties instead of <code class="ph codeph">--initial-heap</code> and <code class="ph codeph">--max-heap</code>, then <%=vars.product_name%> does not use default JVM resource management properties. If you use the JVM properties, you must then specify all properties manually for eviction, garbage collection, heap percentage, and so forth.
</div></td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-max-heap</span></td>
<td>Maximum size of the heap in the same format as the JVM -Xmx parameter.
<div class="note note">
<b>Note:</b> If you use the <code class="ph codeph">--J=-Xms</code> and <code class="ph codeph">--J=-Xmx</code> JVM properties instead of <code class="ph codeph">--initial-heap</code> and <code class="ph codeph">--max-heap</code>, then <%=vars.product_name%> does not use default JVM resource management properties. If you use the JVM properties, you must then specify all properties manually for eviction, garbage collection, heap percentage, and so forth.<br/>
<b>Note:</b> The additional GC parameters introduced by the <code class="ph codeph">-max-heap</code> option are not compatible with the usage of G1 garbage collector.
</div></td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-J</span></td>
<td>Argument passed to the JVM on which the Cache Server will run. For example, <code class="ph codeph">--J=-Dfoo.bar=true</code> will set the property &quot;foo.bar&quot; to &quot;true&quot;.
<p>If the argument you are passing contains spaces or commas, enclose the option in single quotes.</p></td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-use-cluster-configuration</span></td>
<td>Specifies whether the server requests a cluster configuration from the locator. 
See <a href="../../../configuring/cluster_config/gfsh_persist.html">Overview of the Cluster Configuration Service</a>.</td>
<td>true</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-critical-heap-percentage</span></td>
<td>Set the percentage of heap at or above which the cache is considered in danger of becoming inoperable due to garbage collection pauses or out of memory exceptions. Past the threshold, operations that require heap space will throw a <code class="ph codeph">LowMemoryException</code>. This feature requires additional VM flags to perform properly; you must set <code class="ph codeph">--initial-heap</code> and <code class="ph codeph">--max-heap</code> or the corresponding JVM properties to use this threshold. You must also set <code class="ph codeph">--max-heap</code> and <code class="ph codeph">--initial-heap</code> to the same value.</td>
<td>0 (no critical heap threshold enforced)</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-critical-off-heap-percentage</span></td>
<td>The percentage of off-heap memory used at or above which the cache is considered in danger of becoming inoperable due to out of memory exceptions. Past the threshold, operations that require heap space will throw a <code class="ph codeph">LowMemoryException</code>.</td>
<td>0 (no critical off-heap threshold enforced)</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-eviction-heap-percentage</span></td>
<td>Set the percentage of heap at or above which the eviction should begin on Regions configured for HeapLRU eviction. Changing this value may cause eviction to begin immediately. Only one change to this attribute or critical heap percentage will be allowed at any given time and its effect will be fully realized before the next change is allowed. This feature requires additional VM flags to perform properly; you must set <code class="ph codeph">--initial-heap</code> and <code class="ph codeph">--max-heap</code> or the corresponding JVM properties to use this threshold. You must also set <code class="ph codeph">--max-heap</code> and <code class="ph codeph">--initial-heap</code> to the same value.</td>
<td><ul>
<li>0, if no region is configured with heap eviction</li>
<li>If <code class="ph codeph">critical-heap-percentage</code> is set to a non-zero value, 5% less than that value.</li>
<li>80%, if <code class="ph codeph">critical-heap-percentage</code> is not configured.</li>
</ul></td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-eviction-off-heap-percentage</span></td>
<td>The percentage of off-heap memory used at or above which the eviction should begin on regions configured for off-heap and HeapLRU eviction. Changing this value may cause eviction to begin immediately. Only one change to this attribute or critical off-heap percentage will be allowed at any given time, and its effect will be fully realized before the next change is allowed.</td>
<td><ul>
<li>0, if no region is configured with heap eviction</li>
<li>If <code class="ph codeph">critical-off-heap-percentage</code> is set to a non-zero value, 5% less than that value.</li>
<li>80%, if <code class="ph codeph">critical-off-heap-percentage</code> is not configured.</li>
</ul></td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-hostname-for-clients</span></td>
<td>Sets the IP address or host name that a locator will provide to clients. Clients use the address to connect to a server. Set this value when clients use a different address to connect with the server than the <code>bind-address</code>, as those clients might with servers in a private cloud or multi-homed environment. Not specifying this option or setting this option to the empty string (&quot;&quot;) causes the <code>bind-address</code> to be given to clients.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-max-connections</span></td>
<td>Sets the maximum number of client connections allowed. When the maximum is reached the cache server will stop accepting connections</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-message-time-to-live</span></td>
<td>Sets the time (in seconds ) after which a message in the client queue will expire.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-max-message-count</span></td>
<td>Sets maximum number of messages that can be enqueued in a client-queue.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-max-threads</span></td>
<td>Sets the maximum number of threads allowed in this cache server to service client requests. The default of 0 causes the cache server to dedicate a thread for every client connection. When client-server TLS/SSL is configured, values other than the default are not supported.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-socket-buffer-size</span></td>
<td>Sets the buffer size in bytes of the socket connection for this CacheServer. The default is 32768 bytes.</td>
<td> </td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-lock-memory</span></td>
<td>(Linux only) When true, the member's heap and off-heap memory are locked in RAM, preventing them from being paged to disk. You must increase the related <code class="ph codeph">ulimit</code> operating system resource to allow the OS to lock memory chunks of sufficient size.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-off-heap-memory-size</span></td>
<td>The integer quantity of off-heap memory to be used for storing region values. Specified in Gigabytes with a 'g' suffix, or Megabytes with an 'm' suffix. For example, allocate a 2 Gigabyte off-heap space with <code class="ph codeph">--off-heap-memory-size=2g</code>. The default value of 0 does not use any off-heap memory.</td>
<td>0</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-start-rest-api</span></td>
<td>When true, starts the REST API service.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-redirect-output</span></td>
<td>When true, redirect standard output and standard error to the server log file. If specified without a value, the value is set to true.</td>
<td>false</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-http-service-port</span></td>
<td>Specifies the HTTP service port.</td>
<td>7070</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-http-service-bind-address</span></td>
<td>Specifies the IP address to which the HTTP service will be bound.
</td>
<td>the local host machine's address</td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-user</span></td>
<td>The user name of the credential to use in authenticating to the cluster.
When specified, if the <code>--password</code> option is not also specified,
then <code>gfsh</code> will prompt for the password.
</td>
<td></td>
</tr>
<tr>
<td><span class="keyword parmname">\-\-password</span></td>
<td>The password portion of the credential to use in authenticating to
the cluster.
</td>
<td></td>
</tr>
</tbody>
</table>


### <a id="topic_3764EE2DB18B4AE4A625E0354471738A__section_A50120613D3C4A848463236C4EFF18C7" class="no-quick-link"></a>Examples

``` pre
gfsh>start server --name=server1
gfsh>start server --name=server2 --server-port=40405
```
