The Event Namespace provides the ability to declare EventDistributors
and associated
EventChannels
with in a Cache Configuration. It is typically used for configuring
the Push Replication Pattern.
The implementation is provided by the com.oracle.coherence.patterns.eventdistribution.configuration.EventDistributionNamespaceContentHandler
class.
The common prefix used for this namespace in Cache Configurations is event
,
however as with all XML namespace declarations this can be defined arbitrarily
when declaring the namespace.
To use the namespace you should declare it as follows:
<cache-config xmlns:event="class://com.oracle.coherence.patterns.eventdistribution.configuration.EventDistributionNamespaceContentHandler">
...
</cache-config>
The following section outlines the elements defined by this namespace, the most
important of which is the <event:distributor> element, that
of which defines an EventDistributor
to be used for distributing Events.
Schema Outline:
The following xml schema provides a guide to the over all structure and main elements provided by this namespace.
<cache-config xmls:event="class://com.oracle.coherence.patterns.eventdistribution.configuration.EventDistributionNamespaceContentHandler">
<event:distributor>* ...
<event:distributor-name>expression</event:distributor-name>1
<event:distributor-scheme/>1 ...
<event:distribution-channels>1
<event:distribution-channel>* ...
<event:channel-name>expression</event:channel-name>1
<event:transformer-scheme/>0..1 ...
</event:distribution-channels>
</cache-config>
Legend:
... = more details available (see reference for more information)
1 = exactly one occurrence
0..1 = optional
? = one of (with in parent element)
* = zero or more of
+ = one or more of
Reference:
The following elements are defined by this namespace.
<event:binaryentry-store-channel-scheme>
This element defines an EventChannelBuilder
that will construct a BinaryEntryStoreEventChannel
when required.
Used in:
This element is a child element of <event:channel-scheme>.
Element Type:
When processed this element will produce an EventChannelBuilder
.
Child Elements:
The following element is required as a child of this element:
<event:binaryentry-store-scheme>
Defines an ParameterizedBuilder
that creates a BinaryCacheStore
.
<event:binaryentry-store-scheme>
This element defines a BinaryEntryStore
.
Used in:
This element is a child element of <event:binaryentry-store-channel-scheme>.
Element Type:
When processed this element will produce a ParmeterizedBuilder<BinaryEntryStore>
.
Child Elements:
One of the following elements must be defined as a child of this element:
<instance>
An Oracle Coherence <instance>
element, defining an ParameterizedBuilder
to be used for instantiating a custom BinaryCacheStore
implementation.
<class-scheme>
An Oracle Coherence <class-scheme>
element, defining an ParameterizedBuilder
to be used for instantiating a custom BinaryCacheStore
implementation.
<event:cachestore-channel-scheme>
This element defines an EventChannelBuilder
that will construct a CacheStoreEventChannel
when required.
Used in:
This element is a child element of <event:channel-scheme>.
Element Type:
When processed this element will produce an EventChannelBuilder
.
Child Elements:
The following element is required as a child of this element:
A standard Oracle Coherence <cachestore-scheme>
element, defining a ParameterizedBuilder
to be used for instantiating a custom CacheStore
implementation.
<event:chained-transformer-scheme>
This element defines the type of ParameterizedBuilder
that can realize an
EventIteratorTransformer
, that of which may be used applying multiple EventIteratorTransformers
to a batch of events.
Used in:
This element is a child element of <event:transformer-scheme> and <event:chained-transformer-scheme>.
Element Type:
When processed this element produce a ParameterizedBuilder<EventIteratorTransformer>
.
Child Elements:
Zero or more the following elements may be defined as a child element of this element:
<event:chained-transformer-scheme>
A ParameterizedBuilder<EventIteratorTransformer>
that when realized applies
a chain of one or more transformers to a distribution batch. Use this
if you require multiple transformers to be applied to a batch of events.
<event:coalescing-transformer-scheme>
A ParameterizedBuilder<EventIteratorTransformer>
that when realized will
coalesce multiple events for the an entry occurring in an iteration, into a
single event for the said entry. Use this to optimize events in a batch,
reducing batch size and the amount of information to distribute.
<event:filtering-transformer-scheme>
A ParameterizedBuilder<EventIteratorTransformer>
that when realized will
apply a filter to each event in batch, possibly removing the said events
from the batch, thus preventing some events from being distributed.
<event:mutating-transformer-scheme>
A ParameterizedBuilder<EventIteratorTransformer>
that when realized will
apply a mutator function to each event in an batch, possibly changing/removing/replacing
each event. Use this if you want to transform events prior to distribution.
<instance>
An Oracle Coherence <instance>
element defining an EventIteratorTransformer
.
<class-scheme>
An Oracle Coherence <class-scheme>
element defining an EventIteratorTransformer
.
Example:
An transformer scheme that only allows distribution of coalesced INSERTED and UPDATED events.
<event:transformer-scheme>
<event:chained-transformer-scheme>
<event:filtering-transformer-scheme>
<event:event-type-filter>INSERTED, UPDATED</event:event-type-filter>
</event:filtering-transformer-scheme>
<event:coalescing-transformer-scheme/>
</event:chained-transformer-scheme>
</event:transformer-scheme>
This element defines an Expression
that when evaluated will produce a String
representing the name of an EventChannel
for an EventChannelController
.
Used in:
This element is a child element of <event:distribution-channel>.
Element Type:
When processed this element will produce an Expression
.
Example:
<event:channel-name>{site-name}-{cache-name}</event:channel-name>
This element defines an Expression
that when evaluated will produce a String
representing an external resource name of an EventChannel
.
Used in:
This element is a child element of <event:distribution-channel>.
Element Type:
When processed this element will produce an Expression
.
Example:
<event:channel-external-name>{site-name}-{cache-name}</event:channel-external-name>
External channel names are commonly used for defining a suitable durable topic subscription names when using JMS-based Distributors.
This element defines a template from which to construct an EventChannel
at runtime.
Used in:
This element is a child element of <event:distribution-channel> and <remote-cluster-channel-scheme>.
Element Type:
When processed this element will produce an EventChannelBuilder
.
Child Elements:
One of following elements must be defined as child element this element:
<event:binaryentry-store-channel-scheme>
Defines an EventChannel
that writes events to a BinaryCacheStore
.
<event:cachestore-channel-scheme>
Defines an EventChannel
that writes events to a CacheStore
.
Defines an EventChannel
that writes events to a file.
<event:local-cache-channel-scheme>
Defines an EventChannel
that replays cache events in a cache local to the
cluster.
<event:parallel-local-cache-channel-scheme>
Defines an EventChannel
that concurrently replays cache events in a cache
local to the cluster.
<event:remote-cache-channel-scheme>
Defines an EventChannel
that replays cache events in a remote cache defined
by another cluster.
<event:remote-cluster-channel-scheme>
Defines an EventChannel
that sends events to another cluster in which the
events are replayed using another event:channel-scheme
.
Defines an EventChannel
that logs events to stderr.
<instance>
An Oracle Coherence <instance>
element, defining an EventChannelBuilder
to be used for instantiating a custom EventChannel
implementation.
<class-scheme>
An Oracle Coherence <class-scheme>
element, defining an EventChannelBuilder
to be used for instantiating a custom EventChannel
implementation.
<event:coalescing-transformer-scheme>
This element defines the type of ParameterizedBuilder
that can realize an
EventIteratorTransformer
, that of which will coalesce entry events as they
occur in a batch of Events.
For example, the following sequence of Events:
Insert<A, 1>, Insert<B, 2>, Update<B, 4>, Update<A, 3>, Remove<B>, Update<A, 4>, Insert<B, 3>
will be transformed into:
Insert<A, 4>, Insert<B, 3>
IMPORTANT
Care should be taken when using coalescing transformers, especially when the destination represented by an EventChannel expects to see all Events (transitions) between Entry mutations. When using coalescing transformers, some events may be removed or re-written (as demonstrated above).
Used in:
This element is a child element of <event:transformer-scheme> and <event:chained-transformer-scheme>.
Element Type:
When processed this element produce a ParameterizedBuilder<EventIteratorTransformer>
.
Example:
<event:transformer-scheme>
<event:coalescing-transformer-scheme/>
</event:transformer-scheme>
<event:coherence-based-event-distributor-scheme>
This element defines an Oracle Coherence-based implementation of a DistributorScheme
,
that of which will use Oracle Coherence for coordinating events to be distributed via
EventDistributionChannels
.
Used in:
This element is a child element of <event:distributor-scheme>
Element Type:
When processed this element produce a EventDistributorBuilder
.
Example:
<event:distributor-scheme>
<event:coherence-based-event-distributor-scheme/>
</event:distributor-scheme>
Note:
When using this DistributorScheme
it is mandatory that the class-path defines
the necessary dependencies prescribed by the Messaging Pattern,
and the cache configuration for the Messaging Pattern is appropriately included
in the application cache configuration. For example:
<cache-config
xmlns:element="class://com.oracle.coherence.environment.extensible.namespaces.XmlElementProcessingNamespaceContentHandler"
xmlns:event="class://com.oracle.coherence.patterns.eventdistribution.configuration.EventDistributionNamespaceContentHandler"
element:introduce-cache-config="coherence-messagingpattern-cache-config.xml">
...
</cache-config>
<event:connection-factory-scheme>
This element defines a ParameterizedBuilder
for a JMSConnectionFactory
.
Used in:
This element is a child element of <event:jms-based-event-distributor-scheme>.
Element Type:
When processed this element will produce a ParameterizedBuilder<JMSConnectionFactory>
.
Child Elements:
One of the following elements must be defined as a child of this element:
<instance>
An Oracle Coherence <instance>
element defining a JMSConnectionFactory
.
<class-scheme>
An Oracle Coherence <class-scheme>
element defining a JMSConnectionFactory
.
or an element from the JNDI Namespace.
Example:
Defining a connection factory based on a JNDI resource:
<event:connection-factory-scheme>
<jndi:resource>
<jndi:resource-name>ConnectionFactory</jndi:resource-name>
<init-params>
<init-param>
<param-name>java.naming.factory.initial</param-name>
<param-value>org.apache.activemq.jndi.ActiveMQInitialContextFactory</param-value>
</init-param>
<init-param>
<param-name>java.naming.provider.url</param-name>
<param-value system-property="java.naming.provider.url"></param-value>
</init-param>
</init-params>
</jndi:resource>
</event:connection-factory-scheme>
This element defines a template from which to configure and construct an EventChannel
.
Used in:
This element is a child element of <event:distribution-channels>.
Element Type:
When processed this element will produce an EventChannelControllerDependenciesTemplate
.
Child Elements:
The following elements are permitted as child elements of this element:
<event:channel-name> (required)
The proposed name of the EventChannel
.
(the name may include the use of parameter macros)
<event:channel-external-name> (optional)
The proposed name of the EventChannel
when it needs to refer to externally
defined resources. The default value is defined as {site-name}:{cluster-name}:{distributor-name}:{channel-name}
(the name may include the use of parameter macros)
The <event:channel-external-name> is typically used to specify the name of the durable subscription the
EventChannel
may be bound to when using a JMS-based Event Distributor.
<event:starting-mode> (optional)
The proposed mode in which to start the event distribution channel when it
is created. The permitted modes include: ENABLED
, SUSPENDED
, DISABLED
.
The default is ENABLED
.
<event:distribution-delay> (optional)
The number of milliseconds to wait between distributing batches of events,
the default value being 1000
milliseconds (ie: 1 second).
<event:batch-size> (optional)
The maximum number of events in each batch distributed using the EventChannel
,
the default being 100
events.
<event:restart-delay> (optional)
The number of milliseconds to wait between failures to distribute a batch of
events before attempting to re-distribute, the default being 10000
milliseconds
(ie: 10 seconds).
<event:maximum-failures> (optional)
The number of consecutive failures before an EventChannel
is suspended for
distributing events, the default value being -1
. A value of -1
means no limit.
<event:channel-scheme> (required)
The scheme specifying how to build an EventChannel
.
<event:transformer-scheme> (optional)
A ParameterizedBuilder<EventIteratorTransformer>
that defines an EventIteratorTransformer
which is capable of transforming an Iterator
of events into an another Iterator
of events.
This element defines the collection of EventChannels
that will be used by an
EventDistributor
to distribute events.
Used in:
This element is a child element of <event:distributor>.
Element Type:
When processed this element will produce a List<EventChannelControllerDependenciesTemplate>
.
Child Elements:
Zero or more the following elements may be defined as child elements of this element:
Defines an EventChannel
that will be used to distribute events.
This element defines a template from which to construct an EventDistributor
at runtime.
Used in:
This element is typically be defined as a child of a <cache-config>
or <cache-mapping>
element with in an Oracle Coherence Cache Configuration file.
Element Type:
When processed this element will produce an EventDistributorTemplate
.
Child Elements:
The following elements are permitted as child elements this element:
<event:distributor-name> (required)
The proposed name of the EventDistributor
.
(the name may include the use of parameter macros)
<event:distributor-external-name> (optional)
The proposed name the EventDistributor
will use when referring and registering
with external resources. By default this is defined as {cache-name}
.
(the name may include the use of parameter macros)
<event:distributor-scheme> (required)
The scheme specifying the EventDistributor
configuration.
<event:distribution-channels> (required)
The list of EventChannel
definitions to attach to the constructed
EventDistributor
.
<event:distributor-external-name>
This element defines an Expression
that when evaluated will produce a String
representing the name that an EventDistributor
should use when referencing
external resources.
Used in:
This is a child element of <event:distributor>.
Element Type:
When processed this element will produce an Expression
.
Example:
Defining the name of an external resource to be associated with the distributor.
<event:distributor-external-name>{cluster-name}.{site-name}.{cache-name}</event:distributor-external-name>
External distributor names are commonly used for defining a suitable name of a JMS Topic when using JMS-based Distributors.
This element defines an Expression
that when evaluated will produce a String
representing the name of an EventDistributor
.
Used in:
This element is a child element of <event:distributor>.
Element Type:
When processed this element will produce an Expression
.
Example:
Defining a distributor name for the configured site and cache name.
<event:distributor-name>{site-name}-{cache-name}</event:distributor-name>
This element defines the type of EventDistributor
to use for event distribution.
Used in:
This element is a child element of <event:distributor>.
Element Type:
When processed this element will produce an EventDistributorBuilder
.
Child Elements:
One of the following elements must be defined as child element of this element:
<event:coherence-based-event-distributor-scheme>
Defines that a Coherence-based Event Distributor should be used for event distribution.
<event:jms-based-event-distributor-scheme>
Defines that a JMS-based Event Distributor should be used for event distribution.
<instance>
An Oracle Coherence <instance>
element, defining an EventDistributorBuilder
to be used for instantiating a custom event distributor implementation.
<class-scheme>
An Oracle Coherence <class-scheme>
element, defining an EventDistributorBuilder
to be used for instantiating a custom event distributor implementation.
This element defines a filter that may be used for filtering events based on the state of an entry.
Used in:
This element is a child element of <event:filtering-transformer-scheme>.
Element Type:
When processed this element produces a ParameterizedBuilder<Filter>
.
Child Elements:
One of the following elements must be defined as a child element of this element:
<instance>
An Oracle Coherence <instance>
element, defining a Filter
to be used for instantiating a custom Filter
.
<class-scheme>
An Oracle Coherence <class-scheme>
element, defining an Filter>
to be used for instantiating a custom Filter
.
or any one of the filters defined by the Filter Namespace.
Example:
<event:transformer-scheme>
<event:filtering-transformer-scheme>
<event:entry-filter>
<filter:where>value() like "%hello%"</filter:where>
</event:entry-filter>
</event:filtering-transformer-scheme>
</event:transformer-scheme>
This element defines a ParameterizedBuilder
for an EventTransformer
.
Used in:
This element is a child element of <event:mutating-transformer-scheme>.
Element Type:
When processed this element will produce a ParameterizedBuilder<EventTransformer>
.
Child Elements:
One of the following elements must be defined as a child of this element:
<instance>
An Oracle Coherence <instance>
element defining a EventTransformer
.
<class-scheme>
An Oracle Coherence <class-scheme>
element defining a EventTransformer
.
Example:
A transformer to remove "original" values from entry events prior to them being distributed:
<event:transformer-scheme>
<event:mutating-transformer-scheme>
<event:event-transformer>
<class-scheme>
<class-name>com.oracle.coherence.patterns.eventdistribution.transformers.EntryOptimizingEventTransformer</class-scheme>
</class-scheme>
</event:event-transformer>
</event:mutating-transformer-scheme>
</event:transformer-scheme>
This element defines a Filter
that may be used for filtering events based on
their type, those being one or more comma separated values of INSERTED
, UPDATED
, REMOVED
.
Used in:
This element is a child element of <event:filtering-transformer-scheme>.
Element Type:
When processed this element produces a ParameterizedBuilder<Filter>
.
Examples:
Only distribute INSERTED and UPDATED events:
<event:transformer-scheme>
<event:filtering-transformer-scheme>
<event:event-type-filter>INSERTED, UPDATED</event:event-type-filter>
</event:filtering-transformer-scheme>
</event:transformer-scheme>
Only distribute INSERTED and REMOVED events:
<event:transformer-scheme>
<event:filtering-transformer-scheme>
<event:event-type-filter>INSERTED, REMOVED</event:event-type-filter>
</event:filtering-transformer-scheme>
</event:transformer-scheme>
Only distribute UPDATED events:
<event:transformer-scheme>
<event:filtering-transformer-scheme>
<event:event-type-filter>UPDATED</event:event-type-filter>
</event:filtering-transformer-scheme>
</event:transformer-scheme>
This element defines an EventChannelBuilder
that will construct a FileEventChannel
when required.
Used in:
This element is a child element of <event:channel-scheme>.
Element Type:
When processed this element will produce an EventChannelBuilder
.
Child Elements:
The following elements are permitted as child elements of this element:
<event:directory-name> (required)
The name of the directory in which to write the events. (the name may include the use of parameter macros)
<event:appending> (optional)
A flag indicating if events should be appended to the file for the
EventChannel
. The default is false
.
<event:filtering-transformer-scheme>
This element defines the type of ParameterizedBuilder
that can realize an
EventIteratorTransformer
, that of which may be used applying filter events
out of a batch of events.
Used in:
This element is a child element of <event:transformer-scheme> and <event:chained-transformer-scheme>.
Element Type:
When processed this element produces a ParameterizedBuilder<EventIteratorTransformer>
.
Child Elements:
One of the following elements must be defined as a child element of this element:
A com.tangosol.util.filter.Filter
that evaluates if an Event is one of a
set of specified event types, those being: INSERTED
, UPDATED
and/or REMOVED
.
A com.tangosol.util.filter.Filter
that evaluates if an event entry satisfies
another (inner) defined com.tangosol.util.filter.EntryFilter
. Use this
to filter based on entry state (not event type).
A com.tangosol.util.filter.Filter
that evaluates if an the original entry,
prior to the event occuring satisfies another (inner) defined com.tangosol.util.filter.EntryFilter
.
Use this to filter based on original entry state (not event type).
<instance>
An Oracle Coherence <instance>
element defining an EventIteratorTransformer
.
<class-scheme>
An Oracle Coherence <class-scheme>
element defining an EventIteratorTransformer
.
IMPORTANT
The type of objects provided to a custom filter are Events, not Cache Entries.
Consequently normalcom.tangosol.util.filter
s will not work by themselves as these traditionally expect to operate on Cache Entries. To use these Filters you must wrap them in a either a <event:entry-filter> or <event:original-entry-filter>.
Examples:
Only distribute INSERTED and UPDATED events:
<event:transformer-scheme>
<event:filtering-transformer-scheme>
<event:event-type-filter>INSERTED, UPDATED</event:event-type-filter>
</event:filtering-transformer-scheme>
</event:transformer-scheme>
Only distribute events where some Entry condition holds:
<event:transformer-scheme>
<event:filtering-transformer-scheme>
<event:entry-filter>
<filter:where>value() like "%hello%"</filter:where>
</event:entry-filter>
</event:filtering-transformer-scheme>
</event:transformer-scheme>
<event:jms-based-event-distributor-scheme>
This element defines an Java Messaging Service (JMS) based implementation of a DistributorScheme
,
that of which will use JMS for coordinating events to be distributed via
EventDistributionChannels
.
Used in:
This element is a child element of <event:distributor-scheme>
Element Type:
When processed this element produce a EventDistributorBuilder
.
Child Elements:
The following element is a required child element of this element:
<event:connection-factory-scheme>
Defines a JMSConnectionFactory
that the JMS-based Event Distributor can
use to create JMS Connection Factories when required.
Example:
<event:distributor-scheme>
<event:jms-based-event-distributor-scheme>
<event:connection-factory-scheme> ... </event:connection-factory-scheme>
</event:jms-based-event-distributor-scheme>
</event:distributor-scheme>
Note:
When using this DistributorScheme
it is mandatory that the class-path also
defines the necessary dependencies for the underlying JMS Provider.
<event:local-cache-channel-scheme>
This element defines an EventChannelBuilder
that will construct a LocalCacheEventChannel
when required.
Used in:
This element is a child element of <event:channel-scheme>.
Element Type:
When processed this element will produce an EventChannelBuilder
.
Child Elements:
The following elements are permitted as child elements of this element:
<event:target-cache-name>(required)
An expression that when evaluated will produce the name of the cache in which to "replay" events. (the name may include the use of parameter macros)
<event:conflict-resolver-scheme> (optional)
A ParameterizedBuilder
realize a ConflictResolver
to be used for
resolving potential conflicts between events and existing cache entries.
By default this is a ParameterizedBuilder
for the BruteForceConflictResolver
.
<event:mutating-transformer-scheme>
This element defines an EventIteratorTransformer
that will apply an EventTransformer
to each of the events in a batch, possibly mutating the said events before they
are distributed.
Used in:
This element is a child element of <event:transformer-scheme>
Element Type:
When processed this element produce a ParameterizedBuilder<EventIteratorTransformer>
.
Child Elements:
The following element is a required child element of this element:
An EventTransformer
that can transforms an individual event.
Examples:
Converting string-based entries in a batch into upper-case prior to them being distributed.
<event:transformer-scheme>
<event:mutating-transformer-scheme>
<event:event-transformer>
<class-scheme>
<class-name>com.oracle.coherence.patterns.eventdistribution.transformers.UppercaseEntryEventTransformer</class-name>
</class-scheme>
</event:event-transformer>
</event:mutating-transformer-scheme>
<event:transformer-scheme>
Optimize the entries in a batch by removing their original values prior to them being distributed.
<event:transformer-scheme>
<event:mutating-transformer-scheme>
<event:event-transformer>
<class-scheme>
<class-name>com.oracle.coherence.patterns.eventdistribution.transformers.EntryOptimizingEventTransformer</class-name>
</class-scheme>
</event:event-transformer>
</event:mutating-transformer-scheme>
<event:transformer-scheme>
This element defines a filter that may be used for filtering events based on the original state of an entry, prior to an event occurring on the said entry.
Used in:
This element is a child element of <event:filtering-transformer-scheme>.
Element Type:
When processed this element produces a ParameterizedBuilder<Filter>
.
Child Elements:
One of the following elements must be defined as a child element of this element:
<instance>
An Oracle Coherence <instance>
element, defining a Filter
to be used for instantiating a custom Filter
.
<class-scheme>
An Oracle Coherence <class-scheme>
element, defining an Filter>
to be used for instantiating a custom Filter
.
or any one of the filters defined by the Filter Namespace.
Example:
<event:transformer-scheme>
<event:filtering-transformer-scheme>
<event:original-entry-filter>
<filter:where> key() > 100 </filter:where>
</event:original-entry-filter>
</event:filtering-transformer-scheme>
</event:transformer-scheme>
<event:parallel-local-cache-channel-scheme>
This element defines an EventChannelBuilder
that will construct a ParallelLocalCacheEventChannel
when required.
Used in:
This element is a child element of <event:channel-scheme>.
Element Type:
When processed this element will produce an EventChannelBuilder
.
Child Elements:
The following elements are permitted as child elements of this element:
<event:target-cache-name>(required)
An expression that when evaluated will produce the name of the cache in which to "replay" events. (the name may include the use of parameter macros)
<event:conflict-resolver-scheme> (optional)
A ParameterizedBuilder
realize a ConflictResolver
to be used for
resolving potential conflicts between events and existing cache entries.
By default this is a ParameterizedBuilder
for the BruteForceConflictResolver
.
<event:remote-cache-channel-scheme>
This element defines an EventChannelBuilder
that will construct a RemoteCacheEventChannel
when required.
WARNING
It is highly recommended that you use a <event:remote-cluster-channel-scheme> instead of this element as remote cluster channels perform all event processing in batches. This channel will only perform simple updates, one at a time, regardless of the configured batch size.
Used in:
This element is a child element of <event:channel-scheme>.
Element Type:
When processed this element will produce a EventChannelBuilder
.
Child Elements:
The following elements are permitted as child elements of this element:
<event:remote-cache-service-name>(required)
The name of an *Extend Remote Cache Service that connects to a remote cluster.
<event:conflict-resolver-scheme> (optional)
A ParameterizedBuilder
realize a ConflictResolver
to be used for
resolving potential conflicts between events and existing cache entries.
By default this is a ParameterizedBuilder
for the BruteForceConflictResolver
.
<event:remote-cluster-channel-scheme>
This element defines an EventChannelBuilder
that will construct a RemoteClusterEventChannel
when required.
Used in:
This element is a child element of <event:channel-scheme>.
Element Type:
When processed this element will produce a EventChannelBuilder
.
Child Elements:
The following elements are required child elements of this element:
<event:remote-invocation-service-name>
The name of an *Extend Remote Invocation Service that connects to a remote cluster.
The EventChannelBuilder
to be used to construct an EventChannel
in the
remote cluster to replay events in the said remote cluster.
This element defines an EventChannelBuilder
that will construct a StdErrEventChannel
when required.
Used in:
This element is a child element of <event:channel-scheme>.
Element Type:
When processed this element will produce a EventChannelBuilder
.
This element defines the type of ParameterizedBuilder
that can realize an
EventIteratorTransformer
, that of which may be used for transforming a batch
of events (represented as an Iterator
).
Used in:
This element is a child element of <event:distribution-channel>.
Element Type:
When processed this element will produce a ParameterizedBuilder<EventIteratorTransformer>
.
Child Elements:
One of the following elements must be defined as child element of this element:
<event:chained-transformer-scheme>
A ParameterizedBuilder<EventIteratorTransformer>
that when realized applies
a chain of one or more transformers to a distribution batch. Use this
if you require multiple transformers to be applied to a batch of events.
<event:coalescing-transformer-scheme>
A ParameterizedBuilder<EventIteratorTransformer>
that when realized will
coalesce multiple events for the an entry occurring in an iteration, into a
single event for the said entry. Use this to optimize events in a batch,
reducing batch size and the amount of information to distribute.
<event:filtering-transformer-scheme>
A ParameterizedBuilder<EventIteratorTransformer>
that when realized will
apply a filter to each event in batch, possibly removing the said events
from the batch, thus preventing some events from being distributed.
<event:mutating-transformer-scheme>
A ParameterizedBuilder<EventIteratorTransformer>
that when realized will
apply a mutator function to each event in an batch, possibly changing/removing/replacing
each event. Use this if you want to transform events prior to distribution.
<instance>
An Oracle Coherence <instance>
element defining an EventIteratorTransformer
.
<class-scheme>
An Oracle Coherence <class-scheme>
element defining an EventIteratorTransformer
.