Interface GatewaySender


public interface GatewaySender
Since:
GemFire 7.0
  • Field Details

    • DEFAULT_MANUAL_START

      @Deprecated static final boolean DEFAULT_MANUAL_START
      Deprecated.
      - Manual start of senders is deprecated and will be removed in a later release.
      The default value (false) for manually starting a GatewaySender.
      See Also:
    • DEFAULT_DISK_SYNCHRONOUS

      static final boolean DEFAULT_DISK_SYNCHRONOUS
      The default value ( true) for writing to disk synchronously in case of persistence.
      See Also:
    • 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:
    • 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:
    • 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:
    • DEFAULT_BATCH_CONFLATION

      static final boolean DEFAULT_BATCH_CONFLATION
      The default batch conflation
      See Also:
    • DEFAULT_BATCH_SIZE

      static final int DEFAULT_BATCH_SIZE
      The default batch size
      See Also:
    • DEFAULT_BATCH_TIME_INTERVAL

      static final int DEFAULT_BATCH_TIME_INTERVAL
      The default batch time interval in milliseconds
      See Also:
    • DEFAULT_ALERT_THRESHOLD

      static final int DEFAULT_ALERT_THRESHOLD
      The default alert threshold in milliseconds
      See Also:
    • DEFAULT_PARALLELISM_REPLICATED_REGION

      static final int DEFAULT_PARALLELISM_REPLICATED_REGION
    • DEFAULT_DISTRIBUTED_SYSTEM_ID

      static final int DEFAULT_DISTRIBUTED_SYSTEM_ID
      See Also:
    • DEFAULT_DISPATCHER_THREADS

      static final int DEFAULT_DISPATCHER_THREADS
      See Also:
    • DEFAULT_FORWARD_EXPIRATION_DESTROY

      static final boolean DEFAULT_FORWARD_EXPIRATION_DESTROY
      See Also:
    • DEFAULT_ORDER_POLICY

      @Immutable 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:
    • 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 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:
    • 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:
    • DEFAULT_MUST_GROUP_TRANSACTION_EVENTS

      static final boolean DEFAULT_MUST_GROUP_TRANSACTION_EVENTS
      See Also:
    • DEFAULT_IS_FOR_INTERNAL_USE

      static final boolean DEFAULT_IS_FOR_INTERNAL_USE
      See Also:
    • DEFAULT_ENFORCE_THREADS_CONNECT_SAME_RECEIVER

      static final boolean DEFAULT_ENFORCE_THREADS_CONNECT_SAME_RECEIVER
      See Also:
    • 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.
    • GET_TRANSACTION_EVENTS_FROM_QUEUE_RETRIES

      static final int GET_TRANSACTION_EVENTS_FROM_QUEUE_RETRIES
      Number of times to retry to get events for a transaction from the gateway sender queue when group-transaction-events is set to true. When group-transaction-events is set to true and a batch ready to be sent does not contain all the events for all the transactions to which the events belong, the gateway sender will try to get the missing events of the transactions from the queue to add them to the batch before sending it. If the missing events are not in the queue when the gateway sender tries to get them it will retry for a maximum of times equal to the value set in this parameter before delivering the batch without the missing events and logging an error. Setting this parameter to a very low value could cause that under heavy load and group-transaction-events set to true, batches are sent with incomplete transactions. Setting it to a high value could cause that under heavy load and group-transaction-events set to true, batches are held for some time before being sent.
    • GET_TRANSACTION_EVENTS_FROM_QUEUE_WAIT_TIME_MS

      static final int GET_TRANSACTION_EVENTS_FROM_QUEUE_WAIT_TIME_MS
      Milliseconds to wait before retrying to get events for a transaction from the gateway sender queue when group-transaction-events is true.
  • Method Details

    • start

      void start()
      Starts this GatewaySender. Once the GatewaySender is running, its configuration cannot be changed.
    • startWithCleanQueue

      void startWithCleanQueue()
      Starts this GatewaySender and discards previous queue content. 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:
    • 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:
    • resume

      void resume()
      Resumes this paused GatewaySender.
    • rebalance

      void rebalance()
      Rebalances this GatewaySender.
    • isRunning

      boolean isRunning()
      Returns whether or not this GatewaySender is running.
      Returns:
      whether this GatewaySender is running
    • isPaused

      boolean isPaused()
      Returns whether or not this GatewaySender is paused.
      Returns:
      whether this GatewaySender is paused
    • addGatewayEventFilter

      void addGatewayEventFilter(GatewayEventFilter filter)
      Adds the provided GatewayEventFilter to this GatewaySender.
      Parameters:
      filter - the GatewayEventFilter to add
    • removeGatewayEventFilter

      void removeGatewayEventFilter(GatewayEventFilter filter)
      Removes the provided GatewayEventFilter from this GatewaySender.
      Parameters:
      filter - the GatewayEventFilter to remove
    • getGatewayEventSubstitutionFilter

      GatewayEventSubstitutionFilter getGatewayEventSubstitutionFilter()
      Returns this GatewaySender's GatewayEventSubstitutionFilter.
      Returns:
      this GatewaySender's GatewayEventSubstitutionFilter
    • getId

      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

      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

      List<GatewayEventFilter> getGatewayEventFilters()
      Returns the list of GatewayEventFilter added to this GatewaySender.
      Returns:
      the list of GatewayEventFilter added to this GatewaySender.
    • getGatewayTransportFilters

      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

      @Deprecated boolean isManualStart()
      Deprecated.
      - Manual start of senders is deprecated and will be removed in a later release.
      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
    • mustGroupTransactionEvents

      boolean mustGroupTransactionEvents()
      Returns groupTransactionEvents boolean property for this GatewaySender.
      Returns:
      groupTransactionEvents 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
    • getEnforceThreadsConnectSameReceiver

      boolean getEnforceThreadsConnectSameReceiver()
      Returns enforceThreadsConnectSameReceiver boolean property for this GatewaySender.
      Returns:
      enforceThreadsConnectSameReceiver boolean property for this GatewaySender