---
title:  Managing a Peer or Server Cache
---

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

You start your peer or server cache using a combination of XML declarations and API calls. Close the cache when you are done.

<a id="creating_and_closing_a_peer_cache__section_1633A80F0DB04794BB6C3A7F05EED97E"></a>
<%=vars.product_name%> peers are members of a <%=vars.product_name%> distributed system that do not act as clients to another <%=vars.product_name%> distributed system. <%=vars.product_name%> servers are peers that also listen for and process client requests.

1.  Create your cache:
    1.  Start up a cluster and the cluster configuration service:
        1.  Start a locator with `--enable-cluster-configuration` set to true. (It is set true by default.)

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

        2.  Start up member processes that use the cluster configuration service (enabled by default):

            ``` pre
            gfsh>start server --name=server1 --server-port=40404
            ```

        3.  Create regions:

            ``` pre
            gfsh>create region --name=customerRegion --type=REPLICATE

            gfsh>create region --name=ordersRegion --type=PARTITION
            ```

    2.  Or if you are not using the cluster configuration service, directly configure cache.xml in each member of your cluster. In your `cache.xml`, use the `cache` DOCTYPE and configure your cache inside a `<cache>` element. Example:

        ``` pre
        <?xml version="1.0" encoding="UTF-8"?>
        <cache
            xmlns="http://geode.apache.org/schema/cache"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
            version="1.0”>
            // NOTE: Use this <cache-server> element only for server processes 
            <cache-server port="40404"/>
            <region name="customerRegion" refid="REPLICATE" />
            <region name="ordersRegion" refid="PARTITION" />
        </cache>
        ```

    3.  To programmatically create the `Cache` instance:
        -   In your Java application, use the `CacheFactory` create method:

            ``` pre
            Cache cache = new CacheFactory().create();
            ```
        -   If you are running a server using the <%=vars.product_name%> `cacheserver` process, it automatically creates the cache and connection at startup and closes both when it exits.

        The system creates the distributed system connection and initializes the cache according to your `gemfire.properties` and `cache.xml` specifications.

2.  Close your cache when you are done using the inherited `close` method of the `Cache` instance:

    ``` pre
    cache.close();
    ```


