org.apache.geode.cache.wan

## Interface GatewaySender

-     public interface GatewaySender

  Since:
    GemFire 7.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `GatewaySender.OrderPolicy` The order policy.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `CONNECTION_RETRY_INTERVAL` Retry a connection from sender to receiver after specified time interval (in milliseconds) in case receiver is not up and running.
    `static int` | `DEFAULT_ALERT_THRESHOLD` The default alert threshold in milliseconds
    `static boolean` | `DEFAULT_BATCH_CONFLATION` The default batch conflation
    `static int` | `DEFAULT_BATCH_SIZE` The default batch size
    `static int` | `DEFAULT_BATCH_TIME_INTERVAL` The default batch time interval in milliseconds
    `static boolean` | `DEFAULT_DISK_SYNCHRONOUS` The default value ( true) for writing to disk synchronously in case of persistence.
    `static int` | `DEFAULT_DISPATCHER_THREADS`
    `static int` | `DEFAULT_DISTRIBUTED_SYSTEM_ID`
    `static boolean` | `DEFAULT_FORWARD_EXPIRATION_DESTROY`
    `static boolean` | `DEFAULT_IS_FOR_INTERNAL_USE`
    `static boolean` | `DEFAULT_IS_PARALLEL`
    `static boolean` | `DEFAULT_MANUAL_START` The default value (false) for manually starting a `GatewaySender`.
    `static int` | `DEFAULT_MAXIMUM_QUEUE_MEMORY` The default maximum amount of memory (MB) to allow in the queue before overflowing entries to disk
    `static GatewaySender.OrderPolicy` | `DEFAULT_ORDER_POLICY`
    `static int` | `DEFAULT_PARALLELISM_REPLICATED_REGION`
    `static boolean` | `DEFAULT_PERSISTENCE_ENABLED` The default value (false)of whether to persist queue data to disk or not.
    `static int` | `DEFAULT_SOCKET_BUFFER_SIZE` The default buffer size for socket buffers from a sending GatewaySender to its receiving `GatewayReceiver`.
    `static int` | `DEFAULT_SOCKET_READ_TIMEOUT` The default amount of time in milliseconds that a socket read between a sending `Gateway` and its receiving `Gateway` will block.
    `static boolean` | `EARLY_ACK`
    `static int` | `GATEWAY_CONNECTION_IDLE_TIMEOUT`
    `static java.lang.String` | `GATEWAY_CONNECTION_READ_TIMEOUT_PROPERTY` The obsolete socket read timeout java system property.
    `static long` | `GATEWAY_SENDER_TIMEOUT` Time, in seconds, that we allow before a `GatewaySender is considered dead and should be aborted`
    `static int` | `MINIMUM_SOCKET_READ_TIMEOUT` The default minimum socket read timeout.
    `static int` | `QUEUE_OPLOG_SIZE` Size of the oplog file used for the persistent queue in bytes
    `static boolean` | `REMOVE_FROM_QUEUE_ON_EXCEPTION` If the System property is set, use it.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addGatewayEventFilter(GatewayEventFilter filter)` Adds the provided `GatewayEventFilter` to this GatewaySender.
    `void` | `destroy()` Destroys the GatewaySender.
    `int` | `getAlertThreshold()` Returns the alert threshold in milliseconds for entries in a GatewaySender's queue.
    `int` | `getBatchSize()` Returns the batch size for this GatewaySender.
    `int` | `getBatchTimeInterval()` Returns the batch time interval for this GatewaySender.
    `java.lang.String` | `getDiskStoreName()` Gets the disk store name for overflow or persistence.
    `int` | `getDispatcherThreads()` Returns the number of dispatcher threads working for this `GatewaySender`.
    `java.util.List<GatewayEventFilter>` | `getGatewayEventFilters()` Returns the list of `GatewayEventFilter` added to this GatewaySender.
    `GatewayEventSubstitutionFilter` | `getGatewayEventSubstitutionFilter()` Returns this `GatewaySender's` `GatewayEventSubstitutionFilter`.
    `java.util.List<GatewayTransportFilter>` | `getGatewayTransportFilters()` Returns the list of `GatewayTransportFilter` added to this GatewaySender.
    `java.lang.String` | `getId()` Returns the id of this GatewaySender.
    `int` | `getMaximumQueueMemory()` Returns the maximum amount of memory (in MB) for a GatewaySender's queue.
    `int` | `getMaxParallelismForReplicatedRegion()`
    `GatewaySender.OrderPolicy` | `getOrderPolicy()` Returns the order policy followed while dispatching the events to remote ds.
    `int` | `getRemoteDSId()` Returns the id of the remote `GatewayReceiver`'s DistributedSystem.
    `int` | `getSocketBufferSize()` Returns the configured buffer size of the socket connection between this GatewaySender and its receiving `GatewayReceiver`.
    `int` | `getSocketReadTimeout()` Returns the amount of time in milliseconds that a socket read between a sending GatewaySender and its receiving `GatewayReceiver` will block.
    `boolean` | `isBatchConflationEnabled()` Answers whether to enable batch conflation for a GatewaySender 's queue.
    `boolean` | `isDiskSynchronous()` Returns isDiskSynchronous boolean property for this GatewaySender.
    `boolean` | `isManualStart()` Returns the manual start boolean property for this GatewaySender.
    `boolean` | `isParallel()` Returns isParallel boolean property for this GatewaySender.
    `boolean` | `isPaused()` Returns whether or not this GatewaySender is paused.
    `boolean` | `isPersistenceEnabled()` Returns true if persistence is enabled for this GatewaySender, otherwise returns false.
    `boolean` | `isRunning()` Returns whether or not this GatewaySender is running.
    `void` | `pause()` Pauses the dispatching of the events from the underlying queue.
    `void` | `rebalance()` Rebalances this GatewaySender.
    `void` | `removeGatewayEventFilter(GatewayEventFilter filter)` Removes the provided `GatewayEventFilter` from this GatewaySender.
    `void` | `resume()` Resumes this paused GatewaySender.
    `void` | `start()` Starts this GatewaySender.
    `void` | `stop()` Stops this GatewaySender.

- - ### Field Detail

    - #### DEFAULT_MANUAL_START

          static final boolean DEFAULT_MANUAL_START

      The default value (false) for manually starting a `GatewaySender`.
      See Also:
        Constant Field Values

    - #### DEFAULT_DISK_SYNCHRONOUS

          static final boolean DEFAULT_DISK_SYNCHRONOUS

      The default value ( true) for writing to disk synchronously in case of persistence.
      See Also:
        Constant Field Values

    - #### DEFAULT_SOCKET_BUFFER_SIZE

          static final int DEFAULT_SOCKET_BUFFER_SIZE

      The default buffer size for socket buffers from a sending GatewaySender to its receiving `GatewayReceiver`.
      See Also:
        Constant Field Values

    - #### DEFAULT_SOCKET_READ_TIMEOUT

          static final int DEFAULT_SOCKET_READ_TIMEOUT

      The default amount of time in milliseconds that a socket read between a sending `Gateway` and its receiving `Gateway` will block.

    - #### MINIMUM_SOCKET_READ_TIMEOUT

          static final int MINIMUM_SOCKET_READ_TIMEOUT

      The default minimum socket read timeout.
      See Also:
        Constant Field Values

    - #### QUEUE_OPLOG_SIZE

          static final int QUEUE_OPLOG_SIZE

      Size of the oplog file used for the persistent queue in bytes

    - #### DEFAULT_PERSISTENCE_ENABLED

          static final boolean DEFAULT_PERSISTENCE_ENABLED

      The default value (false)of whether to persist queue data to disk or not.
      See Also:
        Constant Field Values

    - #### DEFAULT_BATCH_CONFLATION

          static final boolean DEFAULT_BATCH_CONFLATION

      The default batch conflation
      See Also:
        Constant Field Values

    - #### DEFAULT_BATCH_SIZE

          static final int DEFAULT_BATCH_SIZE

      The default batch size
      See Also:
        Constant Field Values

    - #### DEFAULT_BATCH_TIME_INTERVAL

          static final int DEFAULT_BATCH_TIME_INTERVAL

      The default batch time interval in milliseconds
      See Also:
        Constant Field Values

    - #### DEFAULT_ALERT_THRESHOLD

          static final int DEFAULT_ALERT_THRESHOLD

      The default alert threshold in milliseconds
      See Also:
        Constant Field Values

    - #### DEFAULT_PARALLELISM_REPLICATED_REGION

          static final int DEFAULT_PARALLELISM_REPLICATED_REGION

    - #### DEFAULT_DISTRIBUTED_SYSTEM_ID

          static final int DEFAULT_DISTRIBUTED_SYSTEM_ID

      See Also:
        Constant Field Values

    - #### DEFAULT_DISPATCHER_THREADS

          static final int DEFAULT_DISPATCHER_THREADS

      See Also:
        Constant Field Values

    - #### DEFAULT_FORWARD_EXPIRATION_DESTROY

          static final boolean DEFAULT_FORWARD_EXPIRATION_DESTROY

      See Also:
        Constant Field Values

    - #### DEFAULT_ORDER_POLICY

          static final GatewaySender.OrderPolicy DEFAULT_ORDER_POLICY

    - #### DEFAULT_MAXIMUM_QUEUE_MEMORY

          static final int DEFAULT_MAXIMUM_QUEUE_MEMORY

      The default maximum amount of memory (MB) to allow in the queue before overflowing entries to disk
      See Also:
        Constant Field Values

    - #### GATEWAY_SENDER_TIMEOUT

          static final long GATEWAY_SENDER_TIMEOUT

      Time, in seconds, that we allow before a `GatewaySender is considered dead and should be aborted`

    - #### GATEWAY_CONNECTION_READ_TIMEOUT_PROPERTY

          static final java.lang.String GATEWAY_CONNECTION_READ_TIMEOUT_PROPERTY

      The obsolete socket read timeout java system property. Since customers have been given this property, it is used to log a warning.
      See Also:
        Constant Field Values

    - #### GATEWAY_CONNECTION_IDLE_TIMEOUT

          static final int GATEWAY_CONNECTION_IDLE_TIMEOUT

    - #### REMOVE_FROM_QUEUE_ON_EXCEPTION

          static final boolean REMOVE_FROM_QUEUE_ON_EXCEPTION

      If the System property is set, use it. Otherwise, set default to 'true'.

    - #### EARLY_ACK

          static final boolean EARLY_ACK

    - #### DEFAULT_IS_PARALLEL

          static final boolean DEFAULT_IS_PARALLEL

      See Also:
        Constant Field Values

    - #### DEFAULT_IS_FOR_INTERNAL_USE

          static final boolean DEFAULT_IS_FOR_INTERNAL_USE

      See Also:
        Constant Field Values

    - #### CONNECTION_RETRY_INTERVAL

          static final int CONNECTION_RETRY_INTERVAL

      Retry a connection from sender to receiver after specified time interval (in milliseconds) in case receiver is not up and running. Default is set to 1000 milliseconds i.e. 1 second.

  - ### Method Detail

    - #### start

          void start()

      Starts this GatewaySender. Once the GatewaySender is running, its configuration cannot be changed.

    - #### stop

          void stop()

      Stops this GatewaySender. The scope of this operation is the VM on which it is invoked. In case the GatewaySender is parallel, the GatewaySender will be stopped on individual node where this API is called. If the GatewaySender is not parallel, then the GatewaySender will stop on this VM and the secondary GatewaySender will become primary and start dispatching events. The GatewaySender will wait for GatewaySender.MAXIMUM_SHUTDOWN_WAIT_TIME seconds before stopping itself. If the system property is set to -1 then it will wait until all the events are dispatched from the queue.
      See Also:
        `isParallel()`

    - #### pause

          void pause()

      Pauses the dispatching of the events from the underlying queue. It should be kept in mind that the events will still be getting queued into the queue. The scope of this operation is the VM on which it is invoked. In case the GatewaySender is parallel, the GatewaySender will be paused on individual node where this API is called and the GatewaySender on other VM's can still dispatch events. In case the GatewaySender is not parallel, and the running GatewaySender on which this API is invoked is not primary then PRIMARY GatewaySender will still continue dispatching events. The batch of events that are in the process of being dispatched are dispatched irrespective of the state of pause operation. We can expect maximum of one batch of events being received at the GatewayReceiver even after the GatewaySenders were paused.
      See Also:
        `isParallel()`, `getBatchSize()`, `resume()`

    - #### resume

          void resume()

      Resumes this paused GatewaySender.

    - #### rebalance

          void rebalance()

      Rebalances this GatewaySender.

    - #### isRunning

          boolean isRunning()

      Returns whether or not this GatewaySender is running.

    - #### isPaused

          boolean isPaused()

      Returns whether or not this GatewaySender is paused.

    - #### addGatewayEventFilter

          void addGatewayEventFilter(GatewayEventFilter filter)

      Adds the provided `GatewayEventFilter` to this GatewaySender.
      Parameters:
        `filter` -

    - #### removeGatewayEventFilter

          void removeGatewayEventFilter(GatewayEventFilter filter)

      Removes the provided `GatewayEventFilter` from this GatewaySender.
      Parameters:
        `filter` -

    - #### getGatewayEventSubstitutionFilter

          GatewayEventSubstitutionFilter getGatewayEventSubstitutionFilter()

      Returns this `GatewaySender's` `GatewayEventSubstitutionFilter`.
      Returns:
        this `GatewaySender's` `GatewayEventSubstitutionFilter`

    - #### getId

          java.lang.String getId()

      Returns the id of this GatewaySender.
      Returns:
        the id of this GatewaySender.

    - #### getRemoteDSId

          int getRemoteDSId()

      Returns the id of the remote `GatewayReceiver`'s DistributedSystem.
      Returns:
        the id of the remote `GatewayReceiver`'s DistributedSystem.

    - #### getSocketBufferSize

          int getSocketBufferSize()

      Returns the configured buffer size of the socket connection between this GatewaySender and its receiving `GatewayReceiver`. The default is 32768 bytes.
      Returns:
        the configured buffer size of the socket connection between this GatewaySender and its receiving `GatewayReceiver`

    - #### getSocketReadTimeout

          int getSocketReadTimeout()

      Returns the amount of time in milliseconds that a socket read between a sending GatewaySender and its receiving `GatewayReceiver` will block. The default value is 0 which is interpreted as infinite timeout.
      Returns:
        the amount of time in milliseconds that a socket read between a sending GatewaySender and its receiving `GatewayReceiver` will block

    - #### getDiskStoreName

          java.lang.String getDiskStoreName()

      Gets the disk store name for overflow or persistence.
      Returns:
        disk store name

    - #### getMaximumQueueMemory

          int getMaximumQueueMemory()

      Returns the maximum amount of memory (in MB) for a GatewaySender's queue. The default is 100.
      Returns:
        maximum amount of memory (in MB) for a GatewaySender's queue

    - #### getBatchSize

          int getBatchSize()

      Returns the batch size for this GatewaySender. Default batchSize is 100.
      Returns:
        the batch size for this GatewaySender.

    - #### getBatchTimeInterval

          int getBatchTimeInterval()

      Returns the batch time interval for this GatewaySender. Default value of batchTimeInterval is 1000.
      Returns:
        the batch time interval for this GatewaySender

    - #### isBatchConflationEnabled

          boolean isBatchConflationEnabled()

      Answers whether to enable batch conflation for a GatewaySender 's queue. The default value is false.
      Returns:
        whether to enable batch conflation for batches sent from a GatewaySender to its corresponding `GatewayReceiver`.

    - #### isPersistenceEnabled

          boolean isPersistenceEnabled()

      Returns true if persistence is enabled for this GatewaySender, otherwise returns false. Default is false if not set explicitly.
      Returns:
        true if persistence is enabled for this GatewaySender

    - #### getAlertThreshold

          int getAlertThreshold()

      Returns the alert threshold in milliseconds for entries in a GatewaySender's queue. Default value is 0.
      Returns:
        the alert threshold for entries in a GatewaySender's queue

    - #### getGatewayEventFilters

          java.util.List<GatewayEventFilter> getGatewayEventFilters()

      Returns the list of `GatewayEventFilter` added to this GatewaySender.
      Returns:
        the list of `GatewayEventFilter` added to this GatewaySender.

    - #### getGatewayTransportFilters

          java.util.List<GatewayTransportFilter> getGatewayTransportFilters()

      Returns the list of `GatewayTransportFilter` added to this GatewaySender.
      Returns:
        the list of `GatewayTransportFilter` added to this GatewaySender.

    - #### isDiskSynchronous

          boolean isDiskSynchronous()

      Returns isDiskSynchronous boolean property for this GatewaySender. Default value is true.
      Returns:
        isDiskSynchronous boolean property for this GatewaySender

    - #### isManualStart

          boolean isManualStart()

      Returns the manual start boolean property for this GatewaySender. Default is false i.e. the GatewaySender will automatically start once created.
      Returns:
        the manual start boolean property for this GatewaySender

    - #### isParallel

          boolean isParallel()

      Returns isParallel boolean property for this GatewaySender.
      Returns:
        isParallel boolean property for this GatewaySender

    - #### getDispatcherThreads

          int getDispatcherThreads()

      Returns the number of dispatcher threads working for this `GatewaySender`. Default number of dispatcher threads is 5.
      Returns:
        the number of dispatcher threads working for this `GatewaySender`

    - #### getOrderPolicy

          GatewaySender.OrderPolicy getOrderPolicy()

      Returns the order policy followed while dispatching the events to remote ds. Order policy is set only when dispatcher threads are > 1. Default value of order policy is KEY.
      Returns:
        the order policy followed while dispatching the events to remote ds.

    - #### getMaxParallelismForReplicatedRegion

          int getMaxParallelismForReplicatedRegion()

    - #### destroy

          void destroy()

      Destroys the GatewaySender.

      In case of ParallelGatewaySender, the destroy operation does distributed destroy of the Queue Region. In case of SerialGatewaySender, the Queue Region is destroyed locally.

      Since:
        Geode 1.1