Fork me on GitHub

The Event Distribution Namespace

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.

Namespace Content Handler

The implementation is provided by the com.oracle.coherence.patterns.eventdistribution.configuration.EventDistributionNamespaceContentHandler class.

Declaration

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>

Elements

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:channel-scheme/>1 ...

                <event:transformer-scheme/>0..1 ...

            </event:distribution-channel>

        </event:distribution-channels>

    </event:distributor>

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

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:

  • <cachestore-scheme>

    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>

<event:channel-name>

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>

<event:channel-external-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.

<event:channel-scheme> and <event:remote-channel-scheme>

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

<event:distribution-channel>

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.

<event:distribution-channels>

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:

<event:distributor>

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.

<event:distributor-name>

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>

<event:distributor-scheme>

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.

<event:entry-filter>

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>

<event:event-transformer>

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>

<event:event-type-filter>

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>

<event:file-channel-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:

  • <event:event-type-filter>

    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.

  • <event:entry-filter>

    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).

  • <event:original-entry-filter>

    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 normal com.tangosol.util.filters 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:

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:

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>

<event:original-entry-filter>

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.

  • <event:remote-channel-scheme>

    The EventChannelBuilder to be used to construct an EventChannel in the remote cluster to replay events in the said remote cluster.

<event:stderr-channel-scheme>

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.

<event:transformer-scheme>

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.