com.hazelcast.client.config

## Class ClientReliableTopicConfig

- java.lang.Object
- - com.hazelcast.client.config.ClientReliableTopicConfig

-     public class ClientReliableTopicConfig
      extends Object

  Contains the ReliableTopic configuration for a client.
  See Also:
    `ClientReliableTopicProxy`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_READ_BATCH_SIZE` The default read batch size.
    `static TopicOverloadPolicy` | `DEFAULT_TOPIC_OVERLOAD_POLICY` The default slow consumer policy.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClientReliableTopicConfig()`
    `ClientReliableTopicConfig(ClientReliableTopicConfig reliableTopicConfig)` Create a clone of given reliable topic
    `ClientReliableTopicConfig(String name)` Creates a new ReliableTopicConfig with default settings.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object o)`
    `Executor` | `getExecutor()` Gets the Executor that is going to process the events.
    `String` | `getName()` Gets the name of the reliable topic.
    `int` | `getReadBatchSize()` Gets the maximum number of items to read in a batch.
    `TopicOverloadPolicy` | `getTopicOverloadPolicy()` Gets the TopicOverloadPolicy for this reliable topic.
    `int` | `hashCode()`
    `ClientReliableTopicConfig` | `setExecutor(Executor executor)` Sets the Executor that is going to process the event.
    `void` | `setName(String name)` Sets the name or name pattern for this config.
    `ClientReliableTopicConfig` | `setReadBatchSize(int readBatchSize)` Sets the read batch size.
    `ClientReliableTopicConfig` | `setTopicOverloadPolicy(TopicOverloadPolicy topicOverloadPolicy)` Sets the TopicOverloadPolicy for this reliable topic.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_READ_BATCH_SIZE

          public static final int DEFAULT_READ_BATCH_SIZE

      The default read batch size.
      See Also:
        Constant Field Values

    - #### DEFAULT_TOPIC_OVERLOAD_POLICY

          public static final TopicOverloadPolicy DEFAULT_TOPIC_OVERLOAD_POLICY

      The default slow consumer policy.

  - ### Constructor Detail

    - #### ClientReliableTopicConfig

          public ClientReliableTopicConfig()

    - #### ClientReliableTopicConfig

          public ClientReliableTopicConfig(String name)

      Creates a new ReliableTopicConfig with default settings.

    - #### ClientReliableTopicConfig

          public ClientReliableTopicConfig(ClientReliableTopicConfig reliableTopicConfig)

      Create a clone of given reliable topic
      Parameters:
        `reliableTopicConfig` - topic

  - ### Method Detail

    - #### getName

          public String getName()

      Gets the name of the reliable topic.
      Returns:
        the name of the reliable topic.

    - #### setName

          public void setName(String name)

      Sets the name or name pattern for this config. Must not be modified after this instance is added to `ClientConfig`.

    - #### getTopicOverloadPolicy

          public TopicOverloadPolicy getTopicOverloadPolicy()

      Gets the TopicOverloadPolicy for this reliable topic.
      Returns:
        the TopicOverloadPolicy.

    - #### setTopicOverloadPolicy

          public ClientReliableTopicConfig setTopicOverloadPolicy(TopicOverloadPolicy topicOverloadPolicy)

      Sets the TopicOverloadPolicy for this reliable topic. Check the `TopicOverloadPolicy` for more details about this setting.
      Parameters:
        `topicOverloadPolicy` - the new TopicOverloadPolicy.
      Returns:
        the updated reliable topic config.
      Throws:
        `IllegalArgumentException` - if topicOverloadPolicy is null.

    - #### getExecutor

          public Executor getExecutor()

      Gets the Executor that is going to process the events. If no Executor is selected, then the `ExecutionService.ASYNC_EXECUTOR` is used.
      Returns:
        the Executor used to process events.
      See Also:
        `setExecutor(Executor)`

    - #### setExecutor

          public ClientReliableTopicConfig setExecutor(Executor executor)

      Sets the Executor that is going to process the event. In some cases it is desirable to set a specific Executor. For example, you may want to isolate a certain topic from other topics because it contains long running messages or very high priority messages. A single Executor can be shared between multiple Reliable topics, although it could take more time to process a message. If a single Executor is not shared with other reliable topics, then the Executor only needs to have a single thread.
      Parameters:
        `executor` - the Executor. if the executor is null, the `ExecutionService.ASYNC_EXECUTOR` will be used to process the event.
      Returns:
        the updated config.

    - #### getReadBatchSize

          public int getReadBatchSize()

      Gets the maximum number of items to read in a batch. Returned value will always be equal or larger than 1.
      Returns:
        the read batch size.

    - #### setReadBatchSize

          public ClientReliableTopicConfig setReadBatchSize(int readBatchSize)

      Sets the read batch size. The ReliableTopic tries to read a batch of messages from the ringbuffer. It will get at least one, but if there are more available, then it will try to get more to increase throughput. The minimal read batch size can be influenced using the read batch size. Apart from influencing the number of messages to download, the readBatchSize also determines how many messages will be processed by the thread running the MessageListener before it returns back to the pool to look for other MessageListeners that need to be processed. The problem with returning to the pool and looking for new work is that interacting with an Executor is quite expensive due to contention on the work-queue. The more work that can be done without retuning to the pool, the smaller the overhead. If the readBatchSize is 10 and there are 50 messages available, 10 items are retrieved and processed consecutively before the thread goes back to the pool and helps out with the processing of other messages. If the readBatchSize is 10 and there are 2 items available, 2 items are retrieved and processed consecutively. If the readBatchSize is an issue because a thread will be busy too long with processing a single MessageListener and it can't help out other MessageListeners, increase the size of the threadpool so the other MessageListeners don't need to wait for a thread, but can be processed in parallel.
      Parameters:
        `readBatchSize` - the maximum number of items to read in a batch.
      Returns:
        the updated reliable topic config.
      Throws:
        `IllegalArgumentException` - if readBatchSize is smaller than 1.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### equals

          public boolean equals(Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

Copyright © 2019. All rights reserved.