org.apache.geode.cache.server

## Interface ClientSubscriptionConfig

-     public interface ClientSubscriptionConfig

  Used to configure queuing on a cache server for client subscriptions.

  - For eviction-policy none client queue entries are not evicted to disk
  - For eviction-policy mem client queue entries are evicted to disk when limit is reached, defined by capacity
  - For eviction-policy entry HA entries are evicted to disk when limit is reached, defined by capacity
  The capacity limits the total amount of memory or entries for all client queues on held on this server. If this server hosts multiple client queues, they will all share the same capacity.

  Configuration:

  The `client queue` is configurable declaratively or programmatically. Declarative configuration is achieved through defining the configuration parameters in a `cache.xml` file. Programmatic configuration may be achieved by first instantiating a `CacheServer` object and get `CacheServer.getClientSubscriptionConfig()` `ClientSubscriptionConfig` object and modify each desired parameter and value.

  If you are using a `cache.xml` file to create a `CacheServer` declaratively, you can do the following to configure `ClientSubscriptionConfig` and to have none eviction policy no need to specify client-subscription tag as it is a default one.

       <cache-server port=4444>
         <client-subscription eviction-policy="entry | mem" capacity=35 overflow-directory="OverflowDir"></client-subscription>
       </cache-server>

  Since:
    GemFire 5.7
  See Also:
    `getEvictionPolicy()`, `getCapacity()`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_CAPACITY` The default limit that is assigned to client subscription.
    `static java.lang.String` | `DEFAULT_EVICTION_POLICY` The default eviction policy that is assigned to client subscription.
    `static java.lang.String` | `DEFAULT_OVERFLOW_DIRECTORY` The default overflow directory that is assigned to client subscription.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getCapacity()` Returns the capacity of the client queue.
    `java.lang.String` | `getDiskStoreName()` get the diskStoreName for overflow
    `java.lang.String` | `getEvictionPolicy()` Returns the eviction policy that is executed when capacity of the client queue is reached.
    `java.lang.String` | `getOverflowDirectory()` Deprecated. as of 6.5 use `getDiskStoreName()` instead
    `void` | `setCapacity(int capacity)` Sets the capacity of the client queue.
    `void` | `setDiskStoreName(java.lang.String diskStoreName)` Sets the disk store name for overflow
    `void` | `setEvictionPolicy(java.lang.String policy)` Sets the eviction policy that is executed when capacity of the client queue is reached.
    `void` | `setOverflowDirectory(java.lang.String overflowDirectory)` Deprecated. as of 6.5 use `setDiskStoreName(String)` instead

- - ### Field Detail

    - #### DEFAULT_CAPACITY

          static final int DEFAULT_CAPACITY

      The default limit that is assigned to client subscription.
      See Also:
        Constant Field Values

    - #### DEFAULT_EVICTION_POLICY

          static final java.lang.String DEFAULT_EVICTION_POLICY

      The default eviction policy that is assigned to client subscription.
      See Also:
        Constant Field Values

    - #### DEFAULT_OVERFLOW_DIRECTORY

          static final java.lang.String DEFAULT_OVERFLOW_DIRECTORY

      The default overflow directory that is assigned to client subscription.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getCapacity

          int getCapacity()

      Returns the capacity of the client queue. will be in MB for eviction-policy mem else number of entries
      Since:
        GemFire 5.7
      See Also:
        `DEFAULT_CAPACITY`

    - #### setCapacity

          void setCapacity(int capacity)

      Sets the capacity of the client queue. will be in MB for eviction-policy mem else number of entries
      Since:
        GemFire 5.7
      See Also:
        `DEFAULT_CAPACITY`

    - #### getEvictionPolicy

          java.lang.String getEvictionPolicy()

      Returns the eviction policy that is executed when capacity of the client queue is reached.
      Since:
        GemFire 5.7
      See Also:
        `DEFAULT_EVICTION_POLICY`

    - #### setEvictionPolicy

          void setEvictionPolicy(java.lang.String policy)

      Sets the eviction policy that is executed when capacity of the client queue is reached.
      Since:
        GemFire 5.7
      See Also:
        `DEFAULT_EVICTION_POLICY`

    - #### setOverflowDirectory

          void setOverflowDirectory(java.lang.String overflowDirectory)

      Deprecated. as of 6.5 use `setDiskStoreName(String)` instead
      Sets the overflow directory for a client queue
      Parameters:
        `overflowDirectory` - the overflow directory for a client queue's overflowed entries
      Since:
        GemFire 5.7

    - #### getOverflowDirectory

          java.lang.String getOverflowDirectory()

      Deprecated. as of 6.5 use `getDiskStoreName()` instead
      Answers the overflow directory for a client queue's overflowed client queue entries.
      Returns:
        the overflow directory for a client queue's overflowed entries
      Since:
        GemFire 5.7

    - #### setDiskStoreName

          void setDiskStoreName(java.lang.String diskStoreName)

      Sets the disk store name for overflow
      Since:
        GemFire 6.5

    - #### getDiskStoreName

          java.lang.String getDiskStoreName()

      get the diskStoreName for overflow
      Since:
        GemFire 6.5