GatewaySenderFactory (Apache Geode 1.14.2)
Date: 2021-12-14

org.apache.geode.cache.wan

## Interface GatewaySenderFactory

-     public interface GatewaySenderFactory

  Factory to create SerialGatewaySender
  Since:
    GemFire 7.0
  See Also:
    `GatewaySender`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `GatewaySenderFactory` | `addGatewayEventFilter(GatewayEventFilter filter)` Adds a `GatewayEventFilter`
    `GatewaySenderFactory` | `addGatewayTransportFilter(GatewayTransportFilter filter)` Adds a `GatewayTransportFilter`
    `GatewaySender` | `create(String id, int remoteDSId)` Creates a `GatewaySender` to communicate with remote distributed system
    `GatewaySenderFactory` | `removeGatewayEventFilter(GatewayEventFilter filter)` Removes the provided `GatewayEventFilter` from this GatewaySender.
    `GatewaySenderFactory` | `removeGatewayTransportFilter(GatewayTransportFilter filter)` Removes the provided `GatewayTransportFilter` from this GatewaySender.
    `GatewaySenderFactory` | `setAlertThreshold(int threshold)` Sets the alert threshold in milliseconds for entries in a `GatewaySender` 's queue.
    `GatewaySenderFactory` | `setBatchConflationEnabled(boolean isConflation)` Sets whether to enable batch conflation for a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setBatchSize(int size)` Sets the batch size to be picked at the time of dispatching from a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setBatchTimeInterval(int interval)` Sets a time interval in milliseconds to wait to form a batch to be dispatched from a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setDiskStoreName(String name)` Sets the disk store name for overflow or persistence
    `GatewaySenderFactory` | `setDiskSynchronous(boolean isSynchronous)` Sets whether or not the writing to the disk is synchronous.
    `GatewaySenderFactory` | `setDispatcherThreads(int numThreads)` Sets the number of dispatcher thread.
    `GatewaySenderFactory` | `setEnforceThreadsConnectSameReceiver(boolean enforceThreadsConnectSameReceiver)` If true, receiver member id is checked by all dispatcher threads when the connection is established to ensure they connect to the same receiver.
    `GatewaySenderFactory` | `setGatewayEventSubstitutionFilter(GatewayEventSubstitutionFilter filter)` Sets the provided `GatewayEventSubstitutionFilter` in this GatewaySenderFactory.
    `GatewaySenderFactory` | `setGroupTransactionEvents(boolean groupTransactionEvents)` Indicates whether events belonging to the same transaction must be delivered inside the same batch, i.e.
    `GatewaySenderFactory` | `setManualStart(boolean start)` Deprecated. - Manual start of senders is deprecated and will be removed in a later release.
    `GatewaySenderFactory` | `setMaximumQueueMemory(int maxQueueMemory)` Sets the maximum amount of memory (in MB) for a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setOrderPolicy(GatewaySender.OrderPolicy policy)` Sets `OrderPolicy` for this GatewaySender.
    `GatewaySenderFactory` | `setParallel(boolean isParallel)` Indicates whether all VMs need to distribute events to remote site.
    `GatewaySenderFactory` | `setParallelFactorForReplicatedRegion(int parallel)`
    `GatewaySenderFactory` | `setPersistenceEnabled(boolean isPersistence)` Sets whether to enable persistence for a `GatewaySender`'s queue.
    `GatewaySenderFactory` | `setSocketBufferSize(int size)` Sets the buffer size in bytes of the socket connection for this `GatewaySender`.
    `GatewaySenderFactory` | `setSocketReadTimeout(int timeout)` Sets the number of milliseconds to wait for a response from a `GatewayReceiver` before timing out the operation and trying another `GatewayReceiver` (if any are available).

- - ### Method Detail

    - #### setParallel

          GatewaySenderFactory setParallel(boolean isParallel)

      Indicates whether all VMs need to distribute events to remote site. In this case only the events originating in a particular VM will be dispatched in order.
      Parameters:
        `isParallel` - boolean to indicate whether distribution policy is parallel

    - #### setGroupTransactionEvents

          GatewaySenderFactory setGroupTransactionEvents(boolean groupTransactionEvents)

      Indicates whether events belonging to the same transaction must be delivered inside the same batch, i.e. they cannot be spread across different batches. `groupTransactionEvents` can be enabled only on parallel gateway senders or on serial gateway senders with just one dispatcher thread. It cannot be enabled if batch conflation is enabled.
      Parameters:
        `groupTransactionEvents` - boolean to indicate whether events from the same transaction must be delivered inside the same batch.

    - #### addGatewayEventFilter

          GatewaySenderFactory addGatewayEventFilter(GatewayEventFilter filter)

      Adds a `GatewayEventFilter`
      Parameters:
        `filter` - GatewayEventFilter

    - #### addGatewayTransportFilter

          GatewaySenderFactory addGatewayTransportFilter(GatewayTransportFilter filter)

      Adds a `GatewayTransportFilter`
      Parameters:
        `filter` - GatewayTransportFilter

    - #### setSocketBufferSize

          GatewaySenderFactory setSocketBufferSize(int size)

      Sets the buffer size in bytes of the socket connection for this `GatewaySender`. The default is 32768 bytes.
      Parameters:
        `size` - The size in bytes of the socket buffer

    - #### setSocketReadTimeout

          GatewaySenderFactory setSocketReadTimeout(int timeout)

      Sets the number of milliseconds to wait for a response from a `GatewayReceiver` before timing out the operation and trying another `GatewayReceiver` (if any are available). Default is 0 which means infinite timeout.
      Parameters:
        `timeout` - number of milliseconds to wait for a response from a GatewayReceiver
      Throws:
        `IllegalArgumentException` - if `timeout` is less than `0`.

    - #### setDiskStoreName

          GatewaySenderFactory setDiskStoreName(String name)

      Sets the disk store name for overflow or persistence

    - #### setDispatcherThreads

          GatewaySenderFactory setDispatcherThreads(int numThreads)

      Sets the number of dispatcher thread. Default number of dispatcher threads is 5.

    - #### setOrderPolicy

          GatewaySenderFactory setOrderPolicy(GatewaySender.OrderPolicy policy)

      Sets `OrderPolicy` for this GatewaySender. Default order policy is KEY.

    - #### setMaximumQueueMemory

          GatewaySenderFactory setMaximumQueueMemory(int maxQueueMemory)

      Sets the maximum amount of memory (in MB) for a `GatewaySender`'s queue. Default is 100.
      Parameters:
        `maxQueueMemory` - The maximum amount of memory (in MB) for a `GatewaySender`'s queue.

    - #### setBatchSize

          GatewaySenderFactory setBatchSize(int size)

      Sets the batch size to be picked at the time of dispatching from a `GatewaySender`'s queue. Default batchSize is 100.
      Parameters:
        `size` - The size of batches sent from a `GatewaySender` to its corresponding `GatewayReceiver`.

    - #### setBatchTimeInterval

          GatewaySenderFactory setBatchTimeInterval(int interval)

      Sets a time interval in milliseconds to wait to form a batch to be dispatched from a `GatewaySender`'s queue. Default is 1000.
      Parameters:
        `interval` - The maximum time interval (in milliseconds) that can elapse before a partial batch is sent from a `GatewaySender` to its corresponding `GatewayReceiver`.

    - #### setBatchConflationEnabled

          GatewaySenderFactory setBatchConflationEnabled(boolean isConflation)

      Sets whether to enable batch conflation for a `GatewaySender`'s queue. Default is false.
      Parameters:
        `isConflation` - Whether or not to enable batch conflation for batches sent from a `GatewaySender` to its corresponding `GatewayReceiver`.

    - #### setPersistenceEnabled

          GatewaySenderFactory setPersistenceEnabled(boolean isPersistence)

      Sets whether to enable persistence for a `GatewaySender`'s queue. Default is false.
      Parameters:
        `isPersistence` - Whether to enable persistence for a `GatewaySender`'s queue

    - #### setAlertThreshold

          GatewaySenderFactory setAlertThreshold(int threshold)

      Sets the alert threshold in milliseconds for entries in a `GatewaySender` 's queue. Default value is 0.
      Parameters:
        `threshold` - the alert threshold for entries in a `GatewaySender`'s queue

    - #### setManualStart

          @Deprecated
          GatewaySenderFactory setManualStart(boolean start)

      Deprecated. - Manual start of senders is deprecated and will be removed in a later release.
      Sets the manual start boolean property for this `GatewaySender`. Default is false i.e. the `GatewaySender` will automatically start once created.
      Parameters:
        `start` - the manual start boolean property for this `GatewaySender`

    - #### setDiskSynchronous

          GatewaySenderFactory setDiskSynchronous(boolean isSynchronous)

      Sets whether or not the writing to the disk is synchronous. Default is true.
      Parameters:
        `isSynchronous` - boolean if true indicates synchronous writes

    - #### removeGatewayEventFilter

          GatewaySenderFactory removeGatewayEventFilter(GatewayEventFilter filter)

      Removes the provided `GatewayEventFilter` from this GatewaySender.

    - #### removeGatewayTransportFilter

          GatewaySenderFactory removeGatewayTransportFilter(GatewayTransportFilter filter)

      Removes the provided `GatewayTransportFilter` from this GatewaySender.

    - #### setParallelFactorForReplicatedRegion

          GatewaySenderFactory setParallelFactorForReplicatedRegion(int parallel)

    - #### setGatewayEventSubstitutionFilter

          GatewaySenderFactory setGatewayEventSubstitutionFilter(GatewayEventSubstitutionFilter filter)

      Sets the provided `GatewayEventSubstitutionFilter` in this GatewaySenderFactory.
      Parameters:
        `filter` - The `GatewayEventSubstitutionFilter`

    - #### setEnforceThreadsConnectSameReceiver

          GatewaySenderFactory setEnforceThreadsConnectSameReceiver(boolean enforceThreadsConnectSameReceiver)

      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. Default is false.
      Parameters:
        `enforceThreadsConnectSameReceiver` - boolean if true threads will verify if they are connected to the same receiver

    - #### create

          GatewaySender create(String id,
                               int remoteDSId)

      Creates a `GatewaySender` to communicate with remote distributed system
      Parameters:
        `id` - unique id for this SerialGatewaySender
        `remoteDSId` - unique id representing the remote distributed system
      Returns:
        instance of SerialGatewaySender
      Throws:
        `IllegalStateException` - If the GatewaySender creation fails during validation due to mismatch of attributes of GatewaySender created on other nodes with same id