Annotation Interface EnableGatewaySender
@Target(TYPE)
@Retention(RUNTIME)
@Inherited
@Documented
@Import({GatewaySenderBeanFactoryPostProcessor.class,GatewaySenderConfiguration.class})
public @interface EnableGatewaySender
This
Annotation
is responsible for configuring a single GatewaySender
.
All properties set with this annotation override the defaults set on EnableGatewaySenders
.- Since:
- 2.2.0
- Author:
- Udo Kohlmeyer, John Blum
- See Also:
-
Required Element Summary
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionint
Configures the time, in milliseconds, that an object can be in the queue to be replicated before theGatewaySender
logs an alert.boolean
A boolean flag to indicate if the configuredGatewaySenders
should use conflate entries in each batch.int
Configures the maximum batch size that theGatewaySender
sends to the remote site.int
Configures the maximum batch time interval in milliseconds that theGatewaySender
waits before attempting to send a batch of queued objects to the remoteGatewayReceiver
.Configures theDiskStore
used by a GatewaySender} when persisting theGatewaySender
queue's data.boolean
A boolean flag to indicate if the configuredGatewaySender
should use synchronousDiskStore
writes.int
Configures the number of dispatcher threads that theGatewaySender
will try to use to dispatch the queued events.String[]
Configures the list ofGatewayEventFilters
to be applied to thisGatewaySender
.Configures theGatewayEventSubstitutionFilter
used by thisGatewaySender
.boolean
A boolean flag indicating whether the configuredGatewaySender
should be started automatically.int
Configures the maximum size in megabytes that theGatewaySender's
queue may take in heap memory before overflowing to disk.Configures the ordering policy that thisGatewaySender
will use when queueing entries to be replicated to a remoteGatewayReceiver
.boolean
A boolean} flag indicating whether the configuredGatewaySender
should use parallel replication.boolean
A boolean flag indicating whether the configuredGatewaySender
should use persistence.String[]
Configures the list ofRegion
names that will be configured with thisGatewaySender
for replication.int
Configures the id of the remote distributed system (cluster) that thisGatewaySender
will send its data to.int
Configures the socket buffer size in bytes for thisGatewaySender
.int
Configures the amount of time in milliseconds that thisGatewaySender
will wait to receive an acknowledgment from a remote site.String[]
Configures an in-order list ofGatewayTransportFilter
objects to be applied to thisGatewaySender
.
-
Element Details
-
name
String nameConfigures the requiredname
of thisGatewaySender
. This name is also used as the name of the bean registered in the Spring Container as well as the name used in the resolution ofGatewaySender
properties from application.properties. For example, spring.data.gemfire.gateway.sender.<name>.manual-start that is specific to thisGatewaySender
.
-
-
-
alertThreshold
int alertThresholdConfigures the time, in milliseconds, that an object can be in the queue to be replicated before theGatewaySender
logs an alert. Defaults toGatewaySenderConfiguration.DEFAULT_ALERT_THRESHOLD
. Alternatively use the spring.data.gemfire.gateway.sender.<name>.alert-threshold property in application.properties.- Default:
- 0
-
batchConflationEnabled
boolean batchConflationEnabledA boolean flag to indicate if the configuredGatewaySenders
should use conflate entries in each batch. This means, that a batch will never contain duplicate entries, as the batch will always only contain the latest value for a key. Defaults to false. Alternatively use the spring.data.gemfire.gateway.sender.<name>.batch-conflation-enabled property in application.properties.- Default:
- false
-
batchSize
int batchSizeConfigures the maximum batch size that theGatewaySender
sends to the remote site. This property works in conjunction with theEnableGatewaySenders.batchTimeInterval()
setting. AGatewaySender
will send when either the batch-size or batch-time-interval is reached. Defaults to 100. Alternatively use the spring.data.gemfire.gateway.sender.<name>.batch-size property in application.properties.- Default:
- 100
-
batchTimeInterval
int batchTimeIntervalConfigures the maximum batch time interval in milliseconds that theGatewaySender
waits before attempting to send a batch of queued objects to the remoteGatewayReceiver
. This property works in conjunction with theEnableGatewaySenders.batchSize()
setting. AGatewaySender
will send when either the batch-size or batch-time-interval is reached. Defaults to 1000. Alternatively use the spring.data.gemfire.gateway.sender.<name>.batch-time-interval property in application.properties.- Default:
- 1000
-
diskStoreReference
String diskStoreReferenceConfigures theDiskStore
used by a GatewaySender} when persisting theGatewaySender
queue's data. This setting should be set when thepersistent()
property is set to true. Defaults to "". Alternatively use the spring.data.gemfire.gateway.sender.<name>.diskstore-reference property in application.properties.- Default:
- ""
-
diskSynchronous
boolean diskSynchronousA boolean flag to indicate if the configuredGatewaySender
should use synchronousDiskStore
writes. Defaults to true. Alternatively use the spring.data.gemfire.gateway.sender.<name>.disk-synchronous property in application.properties.- Default:
- true
-
dispatcherThreads
int dispatcherThreadsConfigures the number of dispatcher threads that theGatewaySender
will try to use to dispatch the queued events. Defaults to 5. Alternatively use the spring.data.gemfire.gateway.sender.<name>.dispatcher-threads property in application.properties.- Default:
- 5
-
eventFilters
String[] eventFiltersConfigures the list ofGatewayEventFilters
to be applied to thisGatewaySender
.GatewayEventFilters
are used to filter out objects from the sending queue before dispatching them to the remoteGatewayReceiver
. Defaults to empty list. Alternatively use the spring.data.gemfire.gateway.sender.<name>.event-filters property in application.properties.- Default:
- {}
-
eventSubstitutionFilter
String eventSubstitutionFilterConfigures theGatewayEventSubstitutionFilter
used by thisGatewaySender
. TheGatewayEventSubstitutionFilter
is used to replace values on objects before they are enqueued for remote replication. Defaults toGatewaySenderConfiguration.DEFAULT_EVENT_SUBSTITUTION_FILTER
. Alternatively use the spring.data.gemfire.gateway.sender.<name>.event-substitution-filter property in application.properties.- Default:
- ""
-
manualStart
boolean manualStartA boolean flag indicating whether the configuredGatewaySender
should be started automatically.Defaults to {@value @EnableGatewaySenderConfiguration.DEFAULT_MANUAL_START}. Alternatively use the spring.data.gemfire.gateway.sender.<name>.manual-start property in application.properties.
- Default:
- false
-
maximumQueueMemory
int maximumQueueMemoryConfigures the maximum size in megabytes that theGatewaySender's
queue may take in heap memory before overflowing to disk. Defaults to 100. Alternatively use the spring.data.gemfire.gateway.sender.<name>.maximum-queue-memory property in application.properties.- Default:
- 100
-
orderPolicy
OrderPolicyType orderPolicyConfigures the ordering policy that thisGatewaySender
will use when queueing entries to be replicated to a remoteGatewayReceiver
.There are three different ordering policies:
OrderPolicyType.KEY
- Order of events preserved on a per key basisOrderPolicyType.THREAD
- Order of events preserved by the thread that added the eventOrderPolicyType.PARTITION
- Order of events is preserved in order that they arrived in partitioned Region
OrderPolicyType.KEY
. Alternatively use the spring.data.gemfire.gateway.sender.<name>.order-policy property in application.properties.- Default:
- KEY
-
parallel
boolean parallelA boolean} flag indicating whether the configuredGatewaySender
should use parallel replication. Parallel replication means that eachCacheServer
that defines aGatewaySender
will send data to a remoteGatewayReceiver
. Defaults to false. Alternatively use the spring.data.gemfire.gateway.sender.<name>.parallel property in application.properties.- Default:
- false
-
persistent
boolean persistentA boolean flag indicating whether the configuredGatewaySender
should use persistence. This setting should be used in conjunction with the disk-store-reference property. Defaults to false. Alternatively use the spring.data.gemfire.gateway.sender.<name>.persistent property in application.properties.- Default:
- false
-
regions
String[] regionsConfigures the list ofRegion
names that will be configured with thisGatewaySender
for replication. An empty list denotes that ALLRegions
are to be replicated to the remoteGatewayReceiver
. Defaults to empty list. Alternatively use the spring.data.gemfire.gateway.sender.<name>.region-names property in application.properties.- Default:
- {}
-
remoteDistributedSystemId
int remoteDistributedSystemIdConfigures the id of the remote distributed system (cluster) that thisGatewaySender
will send its data to. Defaults to {@value @EnableGatewaySenderConfiguration.DEFAULT_REMOTE_DISTRIBUTED_SYSTEM_ID}. Alternatively use the spring.data.gemfire.gateway.sender.<name>.remote-distributed-system-id property in application.properties.- Default:
- -1
-
socketBufferSize
int socketBufferSizeConfigures the socket buffer size in bytes for thisGatewaySender
. Defaults to 524288. Alternatively use the spring.data.gemfire.gateway.sender.<name>.socket-buffer-size property in application.properties.- Default:
- 524288
-
socketReadTimeout
int socketReadTimeoutConfigures the amount of time in milliseconds that thisGatewaySender
will wait to receive an acknowledgment from a remote site. By default this is set to 0, which means there is no timeout. The minimum allowed timeout is 30000 (milliseconds). Defaults to 0. Alternatively use the spring.data.gemfire.gateway.sender.<name>.socket-read-timeout property in application.properties.- Default:
- 0
-
transportFilters
String[] transportFiltersConfigures an in-order list ofGatewayTransportFilter
objects to be applied to thisGatewaySender
. Defaults to empty list. Alternatively use the spring.data.gemfire.gateway.sender.<name>.transport-filters property in application.properties.- Default:
- {}
-