GatewaySenderFactory (Apache Geode 2.0.2)
Description: declaration: package: org.apache.geode.cache.wan, interface: GatewaySenderFactory

Package org.apache.geode.cache.wan

# Interface GatewaySenderFactory

public interface GatewaySenderFactory
Factory to create SerialGatewaySender

Since:
  GemFire 7.0
See Also:
  - `GatewaySender`

- ## Method Summary

  Modifier and Type
  Method
  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 Details

  - ### 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
    Returns:
      this factory

  - ### 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.
    Returns:
      this factory

  - ### addGatewayEventFilter

    GatewaySenderFactory addGatewayEventFilter(GatewayEventFilter filter)
    Adds a `GatewayEventFilter`
    Parameters:
      `filter` - GatewayEventFilter
    Returns:
      this factory

  - ### addGatewayTransportFilter

    GatewaySenderFactory addGatewayTransportFilter(GatewayTransportFilter filter)
    Adds a `GatewayTransportFilter`
    Parameters:
      `filter` - GatewayTransportFilter
    Returns:
      this factory

  - ### 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
    Returns:
      this factory

  - ### 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
    Returns:
      this factory
    Throws:
      `IllegalArgumentException` - if `timeout` is less than `0`.

  - ### setDiskStoreName

    GatewaySenderFactory setDiskStoreName(String name)
    Sets the disk store name for overflow or persistence
    Parameters:
      `name` - the disk store name for overflow or persistence
    Returns:
      this factory

  - ### setDispatcherThreads

    GatewaySenderFactory setDispatcherThreads(int numThreads)
    Sets the number of dispatcher thread. Default number of dispatcher threads is 5.
    Parameters:
      `numThreads` - the number of dispatcher threads
    Returns:
      this factory

  - ### setOrderPolicy

    GatewaySenderFactory setOrderPolicy(GatewaySender.OrderPolicy policy)
    Sets `OrderPolicy` for this GatewaySender. Default order policy is KEY.
    Parameters:
      `policy` - the `OrderPolicy` for this GatewaySender
    Returns:
      this factory

  - ### 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.
    Returns:
      this factory

  - ### 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`.
    Returns:
      this factory

  - ### 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`.
    Returns:
      this factory

  - ### 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`.
    Returns:
      this factory

  - ### 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
    Returns:
      this factory

  - ### 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
    Returns:
      this factory

  - ### 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`
    Returns:
      this factory

  - ### 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
    Returns:
      this factory

  - ### removeGatewayEventFilter

    GatewaySenderFactory removeGatewayEventFilter(GatewayEventFilter filter)
    Removes the provided `GatewayEventFilter` from this GatewaySender.
    Parameters:
      `filter` - the `GatewayEventFilter` to remove
    Returns:
      this factory

  - ### removeGatewayTransportFilter

    GatewaySenderFactory removeGatewayTransportFilter(GatewayTransportFilter filter)
    Removes the provided `GatewayTransportFilter` from this GatewaySender.
    Parameters:
      `filter` - the `GatewayTransportFilter` to remove
    Returns:
      this factory

  - ### setParallelFactorForReplicatedRegion

    GatewaySenderFactory setParallelFactorForReplicatedRegion(int parallel)

  - ### setGatewayEventSubstitutionFilter

    GatewaySenderFactory setGatewayEventSubstitutionFilter(GatewayEventSubstitutionFilter filter)
    Sets the provided `GatewayEventSubstitutionFilter` in this GatewaySenderFactory.
    Parameters:
      `filter` - The `GatewayEventSubstitutionFilter`
    Returns:
      this factory

  - ### 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
    Returns:
      this factory

  - ### 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