This appendix provides a reference to the elements of the wlevs_application_config.xsd
schema, the schema behind XML files you use to configure Oracle Event Processing application components such as adapters, channels, caching systems, and event beans.
This appendix includes the following sections:
Section D.1, "Overview of the Oracle Event Processing Component Configuration Elements"
Section D.20, "channel (http-pub-sub-adapter Child Element)"
Oracle Event Processing provides a number of component configuration elements that you use to define the characteristics of the of the components you declare in the EPN assembly file.
The top-level Oracle Event Processing component configuration elements are organized into the following hierarchy:
config
adapter
(see Example D-1)
http-pub-sub-adapter
(see Example D-2)
jms-adapter
(see Example D-3)
processor
(see Example D-4 and Example D-5)
stream
(see Example D-6)
channel
(see Example D-7)
event-bean
(see Example D-8)
caching-system
(see Example D-9)
coherence-caching-system
(see Example D-10)
diagnostic-profiles
(see Example D-11)
Example D-1 adapter Element Hierarchy
adapter name record-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration batch-size batch-time-out playback-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration schedule-time-range start end schedule-time-range-offset start duration symbols symbol work-manager-name netio provider-name num-threads accept-backlog
Example D-2 http-pub-sub-adapter Element Hierarchy
http-pub-sub-adapter name record-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration batch-size batch-time-out playback-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration schedule-time-range start end schedule-time-range-offset start duration symbols symbol work-manager-name netio provider-name num-threads accept-backlog One of: server-context-path server-url channel (http-pub-sub-adapter Child Element) event-type user One of: password encrypted-password
Example D-3 jms-adapter Element Hierarchy
jms-adapter name record-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration batch-size batch-time-out playback-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration schedule-time-range start end schedule-time-range-offset start duration event-type jndi-provider-url jndi-factory connection-jndi-name One of: destination-jndi-name destination-name user One of: password encrypted-password connection-user One of: connection-password connection-encrypted-password work-manager concurrent-consumers message-selector session-ack-mode-name session-transacted delivery-mode bindings (jms-adapter) group-binding param destination-type durable-subscription durable-subscription-name
Example D-4 processor (EPL) Element Hierarchy
processor (EPL) name record-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration batch-size batch-time-out playback-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration schedule-time-range start end schedule-time-range-offset start duration rules rule query view database bindings (processor) binding params
Example D-5 processor (Oracle CQL) Element Hierarchy
processor (Oracle CQL) name record-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration batch-size batch-time-out playback-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration schedule-time-range start end schedule-time-range-offset start duration rules rule query view bindings (processor) binding params
Example D-6 stream Element Hierarchy
stream name record-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration batch-size batch-time-out playback-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration schedule-time-range start end schedule-time-range-offset start duration max-size max-threads
Example D-7 channel Element Hierarchy
channel name record-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-threads max-size time-range start end time-range-offset start duration batch-size batch-time-out playback-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration schedule-time-range start end schedule-time-range-offset start duration inject-parameters trace-parameters max-size max-threads selector heartbeat partition-order-capacity offer-timeout fail-when-rejected
Example D-8 event-bean Element Hierarchy
event-bean name record-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration batch-size batch-time-out playback-parameters dataset-name event-type-list event-type provider-name store-policy-parameters parameter name value max-size max-threads time-range start end time-range-offset start duration schedule-time-range start end schedule-time-range-offset start duration
Example D-9 caching-system Element Hierarchy
caching-system name cache name max-size eviction-policy time-to-live idle-time One of: write-none write-through write-behind work-manager-name batch-size buffer-size buffer-write-attempts buffer-write-timeout work-manager-name listeners
Example D-10 coherence-caching-system Element Hierarchy
coherence-caching-system name coherence-cache-config coherence-cluster-config
Example D-11 diagnostic-profiles Element Hierarchy
diagnostic-profiles name profile name enabled start-stage max-latency name collect-interval amount unit start-location application stage direction end-location application stage direction average-latency name collect-interval amount unit start-location application stage direction end-location application stage direction threshold throughput name throughput-interval amount unit average-interval amount unit location application stage direction
The following sample component configuration file from the HelloWorld application shows how to use many of the Oracle Event Processing elements:
<?xml version="1.0" encoding="UTF-8"?> <n1:config xmlns:n1="http://www.bea.com/ns/wlevs/config/application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <processor> <name>helloworldProcessor</name> <rules> <query id="helloworldRule"> <![CDATA[ select * from helloworldInputChannel [Now] ]]> </query> </rules> </processor> <channel> <name>helloworldInputChannel</name> <max-size>10000</max-size> <max-threads>2</max-threads> </channel> <channel> <name>helloworldOutputChannel</name> <max-size>10000</max-size> <max-threads>2</max-threads> </channel> </n1:config>
Use this element to define the maximum number of pending connections allowed on a socket. This element is only applicable in a netio element.
Specify true
for this element to specify that event tracing or event injection is on. The default is true
.
Note that when the value of the active
element is false
, the channel-name
value will be ignored.
For more on event tracing and injection, see the following:
The component configuration excerpt shown in the following example illlustrates how you might configure a processor for event tracing. The trace-parameters
element's active
child element specifies that tracing is on, while the channel-name
element specifies the HTTP pub-sub channel to which traced elements should be sent.
<processor> <name>FindCrossRates</name> <trace-parameters> <active>true</active> <channel-name>/NonClusteredServer/fx/FindCrossRates/output</channel-name> </trace-parameters> <rules> <!-- Query rules omitted. --> </rules> </processor>
Use this element to define a custom adapter component. For an HTTP publish-subscribe or JMS adapter, use the specific http-pub-sub-adapter and jms-adapter elements.
For more information, see Chapter 15, "Integrating an External Component Using a Custom Adapter".
The adapter
component configuration element supports the following child elements:
Use this element to define the a time duration of a diagnostic profile. This element is applicable in any of the following elements:
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The following example shows how to use the amount
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use this element to define the type of application Oracle Event Processing server applies to a foreign stage. In a diagnostic profile, this element always has a value of diagnostic
.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The following example shows how to use the application
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use this element to define the time interval for which you want to gather metrics.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The average-interval
component configuration element supports the following child elements:
The following example shows how to use the average-interval
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
Use this element to define an average latency calculation in a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The average-latency
component configuration element supports the following child elements:
The following example shows how to use the average-latency
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <average-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> <threshhold> <amount>100</amount> <unit>MILLISECONDS</unit> </threshhold> </average-latency> </profile> </diagnostic-profiles>
Use this element to define the number of updates that are picked up from the store buffer to write back to the backing store. This element may be changed dynamically.
The following example shows how to use the batch-size
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define The number of seconds event buffer will wait to accumulate batch-size
number of events before to write to the event store.
The following example shows how to use the batch-time-out
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define values for a parameterized Oracle CQL or EPL rule in an EPL processor component.
For more information, see:
"Parameterized Queries" in the Oracle Fusion Middleware CQL Language Reference for Oracle Event Processing
"Parameterized Queries" in the Oracle Fusion Middleware EPL Language Reference for Oracle Event Processing
The binding
component configuration element supports the following child elements:
The following example shows how to use the binding
element in the component configuration file:
<processor> <name>processor1</name> <record-parameters> <dataset-name>test1data</dataset-name> <event-type-list> <event-type>SimpleEvent</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters> <rules> <rule id="rule1"><![CDATA[ select stockSymbol, avg(price) as percentage from StockTick retain 5 events where stockSymbol=? having avg(price) > ? or avg(price) < ? ]]></rule> </rules> <bindings> <binding id="rule1"> <params>BEAS,10.0,-10.0</params> <params id="IBM">IBM,5.0,5.0</params> </binding> </bindings> </processor>
Using the com.oracle.cep.cluster.hagroups.ActiveActiveGroupBean
, you can partition an incoming JMS stream in Oracle Event Processing applications by utilizing the notification groups that the ActiveActiveGroupBean
creates.
Use this element to associate a notification group with a particular message-selector
value.
For more information, see Section 25.1.2.2, "ActiveActiveGroupBean".
The bindings
component configuration element supports the following child elements:
The following example shows how to use the bindings
element in the component configuration file:
<jms-adapter> <name>JMSInboundAdapter</name> <event-type>StockTick</event-type> <jndi-provider-url>t3://ppurich-pc:7001</jndi-provider-url> <destination-jndi-name>./Topic1</destination-jndi-name> <user>weblogic</user> <password>weblogic1</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>true</session-transacted> <message-selector>${CONDITION}</message-selector> <bindings> <group-binding group-id="ActiveActiveGroupBean_group1"> <param id="CONDITION">acctid > 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group2"> <param id="CONDITION">acctid BETWEEN 301 AND 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group3"> <param id="CONDITION">acctid BETWEEN 201 AND 300</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group4"> <param id="CONDITION">acctid <= 200</param> </group-binding> </bindings> </jms-adapter>
In this configuration, when the application is deployed to an Oracle Event Processing server with a cluster
element groups
child element that contains ActiveActiveGroupBean_group1
, then the CONDITION
parameter is defined as acctid > 400
and the application processes events whose acctid
property is greater than 400.
Use this element to define bindings for one or more parameterized Oracle CQL or EPL rules in a processor component.
For more information, see:
"Parameterized Queries" in the Oracle Fusion Middleware CQL Language Reference for Oracle Event Processing
"Parameterized Queries" in the Oracle Fusion Middleware EPL Language Reference for Oracle Event Processing
The bindings
component configuration element supports the following child elements:
The following example shows how to use the bindings
element in the component configuration file:
<processor> <name>processor1</name> <record-parameters> <dataset-name>test1data</dataset-name> <event-type-list> <event-type>SimpleEvent</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters> <rules> <rule id="rule1"><![CDATA[ select stockSymbol, avg(price) as percentage from StockTick retain 5 events where stockSymbol=? having avg(price) > ? or avg(price) < ? ]]></rule> </rules> <bindings> <binding id="rule1"> <params>BEAS,10.0,-10.0</params> <params id="IBM">IBM,5.0,5.0</params> </binding> </bindings> </processor>
Use this element to define the size of the internal store buffer that's used to temporarily hold asynchronous updates that need to be written to the store. Does not support dynamic updates.
The following example shows how to use the buffer-size
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to define the number of attempts that the user thread will make to write to the store buffer. The user thread is the thread that creates or updates a cache entry. If the user thread cannot write to the store buffer (all write attempts fail), it will invoke the store synchronously. This element may be changed dynamically.
The buffer-write-attempts
component configuration element has no child elements.
The following example shows how to use the buffer-write-attempts
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to define the time in milliseconds that the user thread will wait before aborting an attempt to write to the store buffer. The attempt to write to the store buffer fails only in case the buffer is full. After the timeout, further attempts may be made to write to the buffer based on the value of buffer-write-attempts. This element may be changed dynamically.
The buffer-write-timeout
component configuration element has no child elements.
The following example shows how to use the buffer-write-timeout
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to define a cache for a component. A cache is a temporary storage area for events, created exclusively to improve the overall performance of your Oracle Event Processing application; it is not necessary for the application to function correctly. Oracle Event Processing applications can optionally publish or consume events to and from a cache to increase the availability of the events and increase the performance of their applications.
For more information, see Section 13.3, "Configuring an Oracle Event Processing Local Caching System and Cache".
The cache
component configuration element supports the following child elements:
The following example shows how to use the cache
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to define an Oracle Event Processing local caching system component. A caching system refers to a configured instance of a caching implementation. A caching system defines a named set of configured caches as well as the configuration for remote communication if any of the caches are distributed across multiple machines.
For more information, see Section 13.5.3, "Configuring a Cache as an Event Listener".
The caching-system
component configuration element supports the following child elements:
The following example shows how to use the caching-system
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
In the example, the channel's unique identifier is providerCachingSystem
.
Use this element to define a channel component. An Oracle Event Processing application contains one or more channel components that represent the physical conduit through which events flow between other types of components, such as between adapters and processors, and between processors and event beans (business logic POJOs).
The channel
component configuration element supports the following child elements:
The following example shows how to use the channel
element in the component configuration file:
<channel> <name>MatchOutputChannel</name> <max-size>0</max-size> <max-threads>0</max-threads> <selector>match</selector> </channel>
In the example, the channel's unique identifier is MatchOutputChannel
.
Use the channel
element to specify the channel that the http-pub-sub-adapter publishes or subscribes to, whichever is appropriate, for all http-pub-sub-adapter, whether they are local or remote or for publishing or subscribing.
The following example shows how to use the channel
element in the component configuration file:
<http-pub-sub-adapter>
<name>localPublisher</name>
<server-context-path>/pubsub</server-context-path>
<channel>/channel2</channel>
</http-pub-sub-adapter>
In the example, the localPublisher
pub-sub adapter publishes to a local channel with pattern /channel2
.
Use this element to specify the name of the channel onto which events should be injected or to which traced events should be sent. The element's value must be a path to the channel in a form like the following default values (note that the path must begin with a slash):
For event tracing:
/serverID/appID/stageID/output
For event injection:
/serverID/appID/stageID/input
Note that when the value of the active
element is false
, the channel-name
value will be ignored.
For more on event tracing and injection, see the following:
The component configuration excerpt shown in the following example illlustrates how you might configure a processor for event tracing. The trace-parameters
element's active
child element specifies that tracing is on, while the channel-name
element specifies the HTTP pub-sub channel to which traced elements should be sent.
<processor> <name>FindCrossRates</name> <trace-parameters> <active>true</active> <channel-name>/NonClusteredServer/fx/FindCrossRates/output</channel-name> </trace-parameters> <rules> <!-- Query rules omitted. --> </rules> </processor>
Use this element to define the Oracle Coherence cache configuration for a coherence-caching-system
.
For more information, see Section 13.3, "Configuring an Oracle Event Processing Local Caching System and Cache".
The coherence-cache-config
component configuration element has no child elements.
The following example shows how to use the coherence-cache-config
element in the component configuration file:
<coherence-caching-system> <name>nativeCachingSystem</name> <coherence-cache-config> applications/cache_cql/coherence/coherence-cache-config.xml </coherence-cache-config></coherence-caching-system>
Use this element to define an Oracle Coherence caching system component. A caching system refers to a configured instance of a caching implementation. A caching system defines a named set of configured caches as well as the configuration for remote communication if any of the caches are distributed across multiple machines.
For more information, see Section 13.2, "Configuring an Oracle Coherence Caching System and Cache".
The coherence-caching-system
component configuration element supports the following child elements:
The following example shows how to use the coherence-caching-system
element in the component configuration file:
<coherence-caching-system> <name>nativeCachingSystem</name> <coherence-cache-config> applications/cache_cql/coherence/coherence-cache-config.xml </coherence-cache-config> </coherence-caching-system>
In the example, the channel's unique identifier is nativeCachingSystem
.
Use this element to define the Oracle Coherence cluster configuration for a coherence-caching-system
.
For more information, see "Overview of Oracle Event Processing Multi-Server Domain Administration" in the Oracle Fusion Middleware Administrator's Guide for Oracle Event Processing.
The coherence-cache-config
component configuration element has no child elements.
The following example shows how to use the coherence-cache-config
element in the component configuration file:
<coherence-caching-system> <name>nativeCachingSystem</name> <coherence-cluster-config> applications/cluster_cql/coherence/coherence-cluster-config.xml </coherence-cluster-config></coherence-caching-system>
Use this element to define the collection interval of an average-latency
or max-latency
element in a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The collect-interval
component configuration element supports the following child elements:
The following example shows how to use the collect-interval
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use this element to define the number of consumers to create. Default value is 1.
If you set this value to number greater than one, be sure that your converter bean is thread-safe because the converter bean will be shared among the consumers.
If concurrent-consumers
is greater than 1 and you want all the consumers to be run concurrently, then consider how you configure the work-manager you associate with this JMS adapter:
If the work-manager
is shared with other components (such as other adapters and Jetty) then set the work-manager
attribute max-threads-constraint
greater than or equal to the concurrent-consumers
setting.
If the work-manager
is not shared (that is, it is dedicated to this inbound JMS adapter only) then set the work-manager
attribute max-threads-constraint
equal to the concurrent-consumers
setting.
For more information, see:
The concurrent-consumers
component configuration element has no child elements.
The following example shows how to use the concurrent-consumers
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use this optional element to define a JNDI name of the JMS connection factory. Default value is weblogic.jms.ConnectionFactory
for Oracle Event Processing server JMS.
The connection-jndi-name
component configuration element has no child elements.
The following example shows how to use the connection-jndi-name
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use the connection-encrypted-password
element to define the encrypted jms-adapter
password that Oracle Event Processing uses when it acquires a connection to the JMS service provider.
When Oracle Event Processing calls the createConnection
method on the javax.jms.ConnectionFactory
to create a connection to the JMS destination (JMS queue or topic), it uses the connection-user
and connection-password
or connection-encrypted-password
element, if configured. Otherwise, Oracle Event Processing uses the user
and password
(or encrypted-password
) elements.
Use either connection-encrypted-password
or connection-password
but not both.
For more information, see Section 11.4, "Encrypting Passwords in the JMS Adapter Component Configuration File".
The connection-encrypted-password
component configuration element has no child elements.
The following example shows how to use the connection-encrypted-password
element in the component configuration file:
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> <connection-user>wlevscon</user> <encrypted-password>{Salted-3DES}s4YUEvH4Wl2DAjb45iJnrw==</encrypted-password> </http-pub-sub-adapter>
Use the connection-password
element to define the jms-adapter
password that Oracle Event Processing uses when it acquires a connection to the JMS service provider.
When Oracle Event Processing calls the createConnection
method on the javax.jms.ConnectionFactory
to create a connection to the JMS destination (JMS queue or topic), it uses the connection-user
and connection-password
or connection-encrypted-password
element, if configured. Otherwise, Oracle Event Processing uses the user
and password
(or encrypted-password
) elements.
Use either connection-password
or connection-encrypted-password
but not both.
The connection-password
component configuration element has no child elements.
The following example shows how to use the connection-password
element in the component configuration file:
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> <connection-user>wlevscon</user> <connection-password>wlevscon</password> </http-pub-sub-adapter>
Use the connection-user
element to define the jms-adapter
user name that Oracle Event Processing uses when it acquires a connection to the JMS service provider.
When Oracle Event Processing calls the createConnection
method on the javax.jms.ConnectionFactory
to create a connection to the JMS destination (JMS queue or topic), it uses the connection-user
and connection-password
or connection-encrypted-password
element, if configured. Otherwise, Oracle Event Processing uses the user
and password
(or encrypted-password
) elements.
You can use the connection-user
and connection-password
(or connection-encrypted-password
) settings in applications where one security provider is used for JNDI access and a separate security provider is used for JMS access.
The following example shows how to use the connection-user
element in the component configuration file:
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> <connection-user>wlevscon</user> <connection-password>wlevscon</password> </http-pub-sub-adapter>
Use this element to define a database reference for an EPL processor component.
For more information, see Chapter 19, "Querying an Event Stream with Oracle EPL".
The following example shows how to use the database
element in the component configuration file:
<processor> <name>proc</name> <rules> <rule id="rule1"><![CDATA[ SELECT symbol, price FROM ExchangeEvent retain 1 event, StockDb ('SELECT symbol FROM Stock WHERE symbol = ${symbol}') ]]></rule> </rules> <database name="StockDb" data-source-name="StockDs" /> </processor>
Use this element to define the group of data that the user wants to group together. In the case of the Oracle RDBMS-based provider, it specifies the database area, or schema, in which the tables that store the recorded events are created. When configuring the Oracle RDBMS-based provider, you are required to specify this element.
The following example shows how to use the dataset-name
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define the delivery mode for a jms-adapter
.
Valid values are:
persistent
(default)
nonpersistent
The following example shows how to use the delivery-mode
element in the component configuration file:
<jms-adapter> <name>jmsOutbound-map</name> <event-type>JMSTestEvent</event-type> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-jndi-name>Topic1</destination-jndi-name> <delivery-mode>nonpersistent</delivery-mode> </jms-adapter>
Use this required element to define the JMS destination name for a jms-adapter
.
Specify either the JNDI name or the actual destination-name
, but not both.
The destination-jndi-name
component configuration element has no child elements.
The following example shows how to use the destination-jndi-name
element in the component configuration file:
<jms-adapter> <name>jmsOutbound-map</name> <event-type>JMSTestEvent</event-type> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-jndi-name>Topic1</destination-jndi-name> <delivery-mode>nonpersistent</delivery-mode> </jms-adapter>
Use this required element to define the JMS destination name for a jms-adapter
.
Specify either the actual destination name or the destination-jndi-name
, but not both.
The following example shows how to use the destination-name
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use this element to define the JMS destination type for a jms-adapter
. Valid values are TOPIC
or QUEUE
. This property must be set to TOPIC
whenever the durable-subscription
property is set to true
.
The following example shows how to use the destination-type
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <destination-type>TOPIC</destination-name> <durable-subscription>true</durable-subscription> <durable-subscription-name>JmsDurableSubscription</durable-subscription-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use this element to define one or more Oracle Event Processing diagnostic profiles.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The diagnostics-profiles
component configuration element supports the following child elements:
The following example shows how to use the diagnostics-profiles
element in the component configuration file:
<diagnostics-profiles> <name>myDiagnosticProfiles</name> <profile> ... </profile> </diagnostics-profiles>
In the example, the channel's unique identifier is myDiagnosticProfiles
.
Use this element to define the direction for a diagnostic profile end-location
or start-location
.
Valid values are:
INBOUND
OUTBOUND
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The following example shows how to use the direction
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use this element to specify whether the JMS topic subscription of a jms-adapter
is durable, meaning that it can persist even if subscribers become inactive. Valid values are true
or false
. This property is only valid if destination-type
is set to TOPIC
.
The durable-subscription
component configuration element has no child elements.
The following example shows how to use the durable-subscription
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <destination-type>TOPIC</destination-name> <durable-subscription>true</durable-subscription> <durable-subscription-name>JmsDurableSubscription</durable-subscription-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use this element to specify the name to uniquely identify a durable subscription of a jms-adapter
. A durable subscription can persist even if subscribers become inactive.
The durable-subscription-name
component configuration element has no child elements.
The following example shows how to use the durable-subscription-name
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <destination-type>TOPIC</destination-name> <durable-subscription>true</durable-subscription> <durable-subscription-name>JmsDurableSubscription</durable-subscription-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use this element to define a time duration for a schedule-time-range-offset
or time-range-offset
element in the form:
HH:MM:SS
Where: HH
is a number of hours, MM
is a number of minutes, and SS
is a number of seconds.
The following example shows how to use the duration
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range-offset> <start>2010-01-20T05:00:00</start> <duration>03:00:00</duration> </time-range-offset> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define whether or not a diagnostic profile is enabled.
Valid values are:
true
false
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The following example shows how to use the enabled
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use the encrypted-password
element in the following parent elements:
http-pub-sub-adapter
: Use the encrypted-password
element to define the encrypted password if the HTTP pub-sub server to which the Oracle Event Processing application is publishing requires user authentication.
jms-adapter
: When Oracle Event Processing acquires the JNDI InitialContext
, it uses the user
and password
(or encrypted-password
) elements. When Oracle Event Processing calls the createConnection
method on the javax.jms.ConnectionFactory
to create a connection to the JMS destination (JMS queue or topic), it uses the connection-user
and connection-password
(or connection-encrypted-password
element), if configured. Otherwise, Oracle Event Processing the user
and password
(or encrypted-password
) elements.
Use either encrypted-password
or password
but not both.
For more information, see Section 11.4, "Encrypting Passwords in the JMS Adapter Component Configuration File".
The following example shows how to use the encrypted-password
element in the component configuration file:
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <encrypted-password>{Salted-3DES}s4YUEvH4Wl2DAjb45iJnrw==</encrypted-password> </http-pub-sub-adapter>
Use this element to define an end time for a time-range
or schedule-time-range
element.
Express the end time as an XML Schema dateTime
value of the form:
yyyy-mm-ddThh:mm:ss
For example, to specify that play back should start on January 20, 2010, at 5:00am and end on January 20, 2010, at 6:00 pm, enter the following:
<time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range>
For complete details of the XML Schema dateTime
format, see http://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation
.
The following example shows how to use the end
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define the end location of a average-latency
or max-latency
element in a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The end-location
component configuration element supports the following child elements:
The following example shows how to use the end-location
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use this element to define an event bean component.
For more information, see Chapter 16, "Configuring a Java Class as an Event Bean".
The event-bean
component configuration element supports the following child elements:
Use the event-type
element in the following parent elements:
Publishing: Optional. For both local and remote HTTP pub-sub adapters for publishing, specify the fully qualified class name of the JavaBean
event to limit the types of events that are published. Otherwise, all events sent to the HTTP pub-sub adapter are published.
Subscribing: Required. For both local and remote HTTP pub-sub adapters for subscribing, specify the fully qualified class name of the JavaBean
to which incoming messages are mapped. At runtime, Oracle Event Processing uses the incoming key-value pairs in the message to map the message data to the specified event type.
You must register this class in the EPN assembly file as a wlevs:event-type-repository
element wlevs:class
child element. For more information, see Section 9.3.1, "Creating an Oracle Event Processing Event Type as a JavaBean".
jms-adapter
: Use the event-type
element to specify an event type whose properties match the JMS message properties. Specify this child element only if you want Oracle Event Processing to automatically perform the conversion between JMS messages and events. If you have created your own custom converter bean, then do not specify this element.
record-parameters
: Use the event-type
element to specify an event that you want to record.
The value of the event-type
element must be one of the event types you defined in your event type repository. For more information, see Section 9.1, "Overview of Oracle Event Processing Event Types".
The following example shows how to use the event-type
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define one or more events for record or playback for a component.
The event-type-list
component configuration element supports the following child elements:
The following example shows how to use the event-type-list
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define the eviction policy the cache uses when max-size
is reached.
Valid values are:
FIFO
: first in, first out.
LRU
: least recently used
LFU
: least frequently used (default)
NRU
: not recently used
The following example shows how to use the eviction-policy
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to specify whether an com.bea.wlevs.ede.api.EventProcessingException
should be raised if the event queue is full when the offer timeout expires. If set to false
or not set at all, then the event is dropped rather than an exception raised. This configuration is only applicable for event queues whose max-size
value is greater than 0. The default value is false
.
For more on setting the offer timeout, see 0, "offer-timeout".
In the following example, the channel is configured to raise an EventProcessingException
if 15 seconds pass while the event queue is full.
<channel> <name>QueuedChannel</name> <max-size>1000</max-size> <max-threads>1</max-threads> <offer-timeout>15000000000</offer-timeout> <fail-when-rejected>true</fail-when-rejected> </channel>
Edit the component configuration file to add group-binding
child elements to the jms-adapter
element for the JMS inbound adapters.
Add one group-binding
element for each possible JMS message-selector value.
For more information, see Section D.12, "bindings (jms-adapter)".
The group-binding
component configuration element supports the following child elements:
Table D-3 lists the attributes of the group-binding
component configuration element.
The following example shows how to use the group-binding
element in the component configuration file:
<jms-adapter> <name>JMSInboundAdapter</name> <event-type>StockTick</event-type> <jndi-provider-url>t3://ppurich-pc:7001</jndi-provider-url> <destination-jndi-name>./Topic1</destination-jndi-name> <user>weblogic</user> <password>weblogic1</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>true</session-transacted> <message-selector>${CONDITION}</message-selector> <bindings> <group-binding group-id="ActiveActiveGroupBean_group1"> <param id="CONDITION">acctid > 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group2"> <param id="CONDITION">acctid BETWEEN 301 AND 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group3"> <param id="CONDITION">acctid BETWEEN 201 AND 300</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group4"> <param id="CONDITION">acctid <= 200</param> </group-binding> </bindings> </jms-adapter>
In this configuration, when the application is deployed to an Oracle Event Processing server with a cluster
element groups
child element that contains ActiveActiveGroupBean_group1
, then the CONDITION
parameter is defined as acctid > 400
and the application processes events whose acctid
property is greater than 400.
Use this element to define a new heartbeat timeout for a system-timestamped channel
component. By default, the timeout value is 100 milliseconds, or 100,000,000 nanoseconds.
For system-timestamped relations or streams, time is dependent upon the arrival of data on the relation or stream data source. Oracle Event Processing generates a heartbeat on a system timestamped relation or stream if there is no activity (no data arriving on the stream or relation's source) for more than the value for this setting. Either the relation or stream is populated by its specified source or Oracle Event Processing generates a heartbeat every heartbeat
number of nanoseconds.
The heartbeat child element applies to system-timestamped relations or streams only when no events arrive in the event channels that are feeding the processors and the processor has been configured with a statement that includes some temporal operator, such as a time-based window or a pattern matching with duration.
The following example shows how to use the heartbeat
element in the component configuration file:
<channel> <name>MatchOutputChannel</name> <max-size>0</max-size> <max-threads>0</max-threads> <selector>match</selector> <heartbeat>10000</heartbeat> </channel>
In the example, the channel's unique identifier is MatchOutputChannel
.
Use this element to define an HTTP publish-subscribe server adapter component.
For more information, see Chapter 12, "Integrating an HTTP Publish-Subscribe Server".
The http-pub-sub-adapter
component configuration element supports the following child elements:
The following example shows how to use the http-pub-sub-adapter
element in the component configuration file:
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> </http-pub-sub-adapter>
In the example, the adapter's unique identifier is remotePub
.
Use this element to define the number of milliseconds a cache entry may not be accessed before being actively removed from the cache. By default, there is no idle-time set. This element may be changed dynamically.
The following example shows how to use the idle-time
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to configure event injection for a stage in the event processing network.
For more information about event injection, see Section 22.3, "Injecting Events".
The inject-parameters
component configuration element supports the following child elements:
The component configuration excerpt shown in the following example illlustrates how you might configure a processor for event injection. The inject-parameters
element's active
child element specifies that injection is on, while the channel-name
element specifies the HTTP pub-sub channel to which injected elements should be sent.
<processor> <name>FindCrossRates</name> <inject-parameters> <active>true</active> <channel-name>/NonClusteredServer/fx/FindCrossRates/input</channel-name> </inject-parameters> <rules> <!-- Query rules omitted. --> </rules> </processor>
Use this element to define a JMS adapter component.
For more information, see Chapter 11, "Integrating the Java Message Service".
The jms-adapter
component configuration element supports the following child elements:
One of:
One of:
One of:
The following example shows how to use the jms-adapter
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
In the example, the adapter's unique identifier is jmsInbound-text
.
Use this optional element to define a JNDI factory for a jms-adapter
. The JNDI factory name. Default value is weblogic.jndi.WLInitialContextFactory
, for Oracle Event Processing server JMS
The following example shows how to use the jndi-provider-url
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <jndi-factory>weblogic.jndi.WLInitialContextFactory</jndi-factory> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use this required element to define a JNDI provider URL for a jms-adapter
.
The following example shows how to use the jndi-provider-url
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use this element to define the behavior for cache listeners.
The listeners
element has a single child element, work-manager-name
, that specifies the work manager to be used for asynchronously invoking listeners. This value is ignored if synchronous invocations are enabled. If a work manager is specified for the cache itself, this value overrides it for invoking listeners only.
The listeners
component configuration element supports the following child elements:
The following example shows how to use the listeners
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to define the location of a throughput
element in a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The location
component configuration element supports the following child elements:
The following example shows how to use the location
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
Use this element to define the maximum latency calculation of a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The max-latency
component configuration element supports the following child elements:
The following example shows how to use the max-latency
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use the max-size
element in the following parent elements:
channel
or stream
: Use the max-size
child element to specify the maximum size of the channel. Zero-size channels synchronously pass-through events. Non-zero size channels process events asynchronously, buffering events by the requested size. If max-threads
is zero, then max-size
is zero. The default value is 0.
cache
: Use the max-size
element to define the number of cache elements in memory after which eviction or paging occurs. Currently, the maximum cache size is 2^31-1 entries. This element may be changed dynamically
Use this element to define the maximum number of threads that Oracle Event Processing server uses to process events for a channel
or stream
. The default value is 0.
When set to 0, the channel acts as a pass-through. When max-threads > 0
, the channel acts as classic blocking queue, where upstream components are producers of events and the downstream components are the consumers of events. The queue size is defined by the configuration max-size. There will be up to max-threads
number of threads consuming events from the queue.
You can change max-threads
from 0 to a positive integer (that is, from a pass through to multiple threads) without redeploying. However, if you change max-threads
from a positive integer to 0 (that is, from multiple threads to a pass through), then you must redeploy your application.
If the max-size
attribute is 0, then setting a value for max-threads
has no effect.
The default value for this attribute is 0.
Setting this value has no effect when max-size
is 0.
Use this element to JMS message selector to use to filter messages in a jms-adapter
.
The syntax of a message selector expression is based on a subset of the SQL92 conditional expression syntax and message headers and properties. For example, to select messages based on property EventType
, you could use:
EventType = 'News' OR 'Commentary'
The following example shows how to use the message-selector
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <message-selector>EventType = 'News' OR 'Commentary'</message-selector> <session-transacted>false</session-transacted> </jms-adapter>
Use the name
element in the following parent elements:
adapter
, http-pub-sub-adapter
, jms-adapter
, processor (EPL)
, processor (Oracle CQL)
, stream
, channel
, event-bean
, caching-system
, and coherence-caching-system
: Use the name
element to associate this application configuration element with its corresponding element in the EPN assembly file. Valid value is the corresponding EPN assembly file element id
attribute.
diagnostic-profiles
: Use the name
element to uniquely identify the diagnostic-profiles
element and each of its profile
child elements.
parameter
: Use the name
element to define the name of a name/value pair.
Use this element to define a network input/output port for a component.
Note:
When a child of the adapter
element, this element is for internal use only.
The netio
component configuration element supports the following child elements:
Use this element to define the number of threads in a network input/output port for a component.
Use this element to specify the amount of time, when an event queue is full and a pending insert (the "offer") is blocked, after which the pending event will be dropped or an exception raised. An exception will be raised when the fail-when-rejected
value is set to true; otherwise, the event will be dropped. This setting is only applicable for event queues whose max-size
value is greater than 0. The offer-timeout
value should be specified as nanoseconds. The default is 60 seconds.
In the following example, the channel is configured to raise an EventProcessingException
if 15 seconds pass while the event queue is full.
<channel> <name>QueuedChannel</name> <max-size>1000</max-size> <max-threads>1</max-threads> <offer-timeout>15000000000</offer-timeout> <fail-when-rejected>true</fail-when-rejected> </channel>
Use the param element to associate a message selector value with the parameter name specified in the message-selector
element.
For more information, see Section D.12, "bindings (jms-adapter)".
The following example shows how to use the param
element in the component configuration file:
<jms-adapter> <name>JMSInboundAdapter</name> <event-type>StockTick</event-type> <jndi-provider-url>t3://ppurich-pc:7001</jndi-provider-url> <destination-jndi-name>./Topic1</destination-jndi-name> <user>weblogic</user> <password>weblogic1</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>true</session-transacted> <message-selector>${CONDITION}</message-selector> <bindings> <group-binding group-id="ActiveActiveGroupBean_group1"> <param id="CONDITION">acctid > 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group2"> <param id="CONDITION">acctid BETWEEN 301 AND 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group3"> <param id="CONDITION">acctid BETWEEN 201 AND 300</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group4"> <param id="CONDITION">acctid <= 200</param> </group-binding> </bindings> </jms-adapter>
In this configuration, when the application is deployed to an Oracle Event Processing server with a cluster
element groups
child element that contains ActiveActiveGroupBean_group1
, then the CONDITION
parameter is defined as acctid > 400
and the application processes events whose acctid
property is greater than 400.
Use this element to define a name/value parameter for a component.
The parameter
component configuration element supports the following child elements:
The following example shows how to use the parameter
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define the parameters for a binding
element.
The value of this element is a comma separated list of simple type values. The order of the values must correspond with the order of the parameters in the EPL rule associated with this binding
.
For more information, see:
"Parameterized Queries" in the Oracle Fusion Middleware CQL Language Reference for Oracle Event Processing
"Parameterized Queries" in the Oracle Fusion Middleware EPL Language Reference for Oracle Event Processing
The following example shows how to use the params
element in the component configuration file:
<processor> <name>processor1</name> <record-parameters> <dataset-name>test1data</dataset-name> <event-type-list> <event-type>SimpleEvent</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters> <rules> <rule id="rule1"><![CDATA[ select stockSymbol, avg(price) as percentage from StockTick retain 5 events where stockSymbol=? having avg(price) > ? or avg(price) < ? ]]></rule> </rules> <bindings> <binding id="rule1"> <params>BEAS,10.0,-10.0</params> <params id="IBM">IBM,5.0,5.0</params> </binding> </bindings> </processor>
Use this element to define the maximum capacity of a query partition when the ordering-constraint attribute is set to PARTITION_ORDERED. Set this on a channel
component. Consider setting this element's value when you've configured a query processor for parallel execution, and when the query's ordering-constraint attribute is set to PARTITION_ORDERED.
For more information, including best practices and information on the locations where this value can be set (including their precedence), see "Using partition-order-capacity with Partitioning Queries" in Chapter 17, "Querying an Event Stream with Oracle CQL".
To have the capacity value apply at a larger scope, you can set it in the server configuration file. For more information, see "partition-order-capacity" in Appendix F, "Schema Reference: Server Configuration wlevs_server_config.xsd".
The partition-order-capacity
component configuration element has no child elements.
The following example shows how to use the partition-order-capacity
element in the component configuration file:
<channel> <name>MatchOutputChannel</name> <max-size>0</max-size> <max-threads>0</max-threads> <selector>match</selector> <partition-order-capacity>20</partition-order-capacity> </channel>
Use the password
element in the following parent elements:
http-pub-sub-adapter
: Use the password
element to define the user password if the HTTP pub-sub server to which the Oracle Event Processing application is publishing requires user authentication.
jms-adapter
: When Oracle Event Processing acquires the JNDI InitialContext
, it uses the user
and password
(or encrypted-password
) elements. When Oracle Event Processing calls the createConnection
method on the javax.jms.ConnectionFactory
to create a connection to the JMS destination (JMS queue or topic), it uses the connection-user
and connection-password
(or connection-encrypted-password
element), if configured. Otherwise, Oracle Event Processing the user
and password
(or encrypted-password
) elements.
Use either encrypted-password
or password
but not both.
The following example shows how to use the password
element in the component configuration file:
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> </http-pub-sub-adapter>
Use this element to define event playback parameters for a component.
For more information, see Chapter 20, "Configuring Event Record and Playback".
The playback-parameters
component configuration element supports the following child elements:
The following example shows how to use the playback-parameters
element in the component configuration file:
<playback-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> </playback-parameters>
Use this element to define the playback speed as a positive float. The default value is 1, which corresponds to normal speed. A value of 2 means that events will be played back 2 times faster than the original record speed. Similarly, a value of 0.5 means that events will be played back at half the speed.
The following example shows how to use the duration
element in the component configuration file:
<playback-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range-offset> <start>2010-01-20T05:00:00</start> <duration>03:00:00</duration> </time-range-offset> <playback-speed>100</playback-speed> </playback-parameters>
Use this element to define an Oracle CQL or EPL processor component.
For more information, see Chapter 19, "Querying an Event Stream with Oracle EPL".
For information on the processor element for Oracle CQL processors, see processor (Oracle CQL)
.
The processor
component configuration element supports the following child elements:
The following example shows how to use the processor
element in the component configuration file:
<processor> <name>processor1</name> <record-parameters> <dataset-name>test1data</dataset-name> <event-type-list> <event-type>SimpleEvent</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters> <rules> <rule id="rule1"><![CDATA[ select stockSymbol, avg(price) as percentage from StockTick retain 5 events where stockSymbol=? having avg(price) > ? or avg(price) < ? ]]></rule> </rules> <bindings> <binding id="rule1"> <params>BEAS,10.0,-10.0</params> <params id="IBM">IBM,5.0,5.0</params> </binding> </bindings> </processor>
In the example, the processor's unique identifier is processor1
.
Use this element to define an Oracle CQL processor component.
For more information, see Chapter 17, "Querying an Event Stream with Oracle CQL".
For information on the processor
element for EPL processors, see processor (EPL)
.
The processor
component configuration element supports the following child elements:
The following example shows how to use the processor
element in the component configuration file:
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid srcId bidQty ask askQty seq"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ]]></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ]]></view> <view ...><![CDATA[ ... ]]></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ]]></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ]]></query> <query id="MarketRule"><![CDATA[ SELECT symbol, AVG(price) AS average, :1 AS market FROM StockTick [RANGE 5 SECONDS] WHERE symbol = :2 ]]></query> </rules> <bindings> <binding id="MarketRule"> <params id="nasORCL">NASDAQ, ORCL</params> <params id="nyJPM">NYSE, JPM</params> <params id="nyWFC">NYSE, WFC</params> </binding> </bindings> </processor>
In the example, the processor's unique identifier is cqlProcessor
.
Use this element to define a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The profile
component configuration element supports the following child elements:
The following example shows how to use the profile
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> <average-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> <threshhold> <amount>100</amount> <unit>MILLISECONDS</unit> </threshhold> </average-latency> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
Use the provider-name
element in the following parent elements:
netio
: Use the provider-name
element to define which provider to use for the underlying socket implementation. Valid value is an Oracle Event Processing server config.xml
file netio
child element provider-type
.
record-parameters
: Use the provider-name
element to define the name of the event store provider. The value of this element corresponds to the value of the name
child element of the rdbms-event-store-provider
element in the config.xml
file of the Oracle Event Processing server instance.
When configuring the Oracle RDBMS-based provider, you are required to specify this element.
This may be left blank to configure to use the default Berkeley database provider.
Use this element to define an Oracle CQL query for a component.
For more information, see Chapter 17, "Querying an Event Stream with Oracle CQL".
Table D-7 lists the attributes of the query
component configuration element.
Table D-7 Attributes of the query Component Configuration Element
Attribute | Description | Data Type | Required? |
---|---|---|---|
|
Unique identifier for this query. |
|
Yes. |
|
Execute this query when the application is deployed and run. Valid values are |
|
No. |
|
Enable or disable parallel query execution, through which events can be processed in parallel rather than serially. The attribute supports the following three values:
For more information see "Using the ordering-constraint Attribute" in Chapter 17, "Querying an Event Stream with Oracle CQL". |
String |
No. |
|
The partition expression (used in the CQL code) that should be the basis for relaxing the cross-partition ordering constraint. For more information see "Using the ordering-constraint Attribute" in Chapter 17, "Querying an Event Stream with Oracle CQL". |
String |
No. |
The following example shows how to use the query
element in the component configuration file:
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid srcId bidQty ask askQty seq"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ]]></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ]]></view> <view ...><![CDATA[ ... ]]></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ]]></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ]]></query> </rules> </processor>
Use this element to define event record parameters for a component.
For more information, see Chapter 20, "Configuring Event Record and Playback".
The record-parameters
component configuration element supports the following child elements:
The following example shows how to use the record-parameters
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define whether or not to repeat playback-parameters.
Valid values are:
true
false
The following example shows how to use the duration
element in the component configuration file:
<playback-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range-offset> <start>2010-01-20T05:00:00</start> <duration>03:00:00</duration> </time-range-offset> <repeat>true</repeat> </playback-parameters>
Use this element to define an EPL rule for a component.
This element is applicable only in a rules
element.
Table D-8 lists the attributes of the rule
component configuration element.
Table D-8 Attributes of the rule Component Configuration Element
Attribute | Description | Data Type | Required? |
---|---|---|---|
|
Unique identifier for this rule. |
|
Yes. |
|
Execute this rule when the application is deployed and run. Valid values are |
|
No. |
|
Enable or disable parallel query execution, through which events can be processed in parallel rather than serially. The attribute supports the following three values:
For more information see "Using the ordering-constraint Attribute" in Chapter 17, "Querying an Event Stream with Oracle CQL". |
String |
No. |
|
The partition expression (used in the CQL code) that should be the basis for relaxing the cross-partition ordering constraint. For more information see "Using the ordering-constraint Attribute" in Chapter 17, "Querying an Event Stream with Oracle CQL". |
String |
No. |
Use this element to define one or more Oracle CQL queries or views for a processor (Oracle CQL)
or EPL rules for a processor (EPL)
.
The rules
component configuration element supports the following child elements:
The following example shows how to use the rules
element in the component configuration file:
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid srcId bidQty ask askQty seq"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ]]></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ]]></view> <view ...><![CDATA[ ... ]]></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ]]></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ]]></query> </rules> </processor>
Use this element to define the time during which events will be played back to the stage. Playing back will start at the specified start time and will continue until all the events are played back or specified end time. If repeat
is set to true
, playback will continue until the specified end time or until playback is explicitly stopped by the user.
This element is applicable only to the playback-parameters
element.
The schedule-time-range
component configuration element supports the following child elements:
The following example shows how to use the schedule-time-range
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <schedule-time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </schedule-time-range> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define the time during which events will be played back to the stage. Playing back will start at the specified start time and will continue until all the events are played back or specified end time. If repeat
is set to true
, playback will continue until the specified end time or until playback is explicitly stopped by the user.
This element is applicable only to the playback-parameters
element.
The schedule-time-range-offset
component configuration element supports the following child elements:
The following example shows how to use the schedule-time-range-offset
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <schedule-time-range-offset> <start>2010-01-20T05:00:00</start> <duration>03:00:00</duration> </schedule-time-range-offset> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to specify which up-stream Oracle CQL processor queries are permitted to output their results to a downstream channel
.
Figure D-1 shows an EPN with channel filteredStream
connected to up-stream Oracle CQL processor filteredFanoutProcessor
.
Figure D-1 EPN With Oracle CQL Processor and Down-Stream Channel
Example D-12 shows the queries configured for the Oracle CQL processor.
Example D-12 filterFanoutProcessor Oracle CQL Queries
<processor> <name>filterFanoutProcessor</name> <rules> <query id="Yr3Sector"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from priceStream where sector="3_YEAR" ]]></query> <query id="Yr2Sector"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from priceStream where sector="2_YEAR" ]]></query> <query id="Yr1Sector"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from priceStream where sector="1_YEAR" ]]></query> </rules> </processor>
If you specify more than one query for an Oracle CQL processor as Example D-12 shows, then, by default, all query results are output to the processor's out-bound channel (filteredStream
in Figure D-1). Optionally, in the component configuration source, you can use the channel
element selector
child element to specify a space-delimited list of one or more Oracle CQL query names that may output their results to the channel as Example D-13 shows. In this example, query results for query Yr3Sector
and Yr2Sector
are output to filteredStream
but not query results for query Yr1Sector
.
Example D-13 Using selector to Control Which Query Results are Output
<channel> <name>filteredStream</name> <selector>Yr3Sector Yr2Sector</selector> </channel>
You may configure a channel
element with a selector
before creating the queries in the upstream processor. In this case, you must specify query names that match the names in the selector
.
Note:
The selector
attribute is only applicable if the up-stream node is an Oracle CQL processor. For more information, see Chapter 17, "Querying an Event Stream with Oracle CQL".
The following example shows how to use the selector
element in the component configuration file:
<processor> <name>PatternProcessor</name> <rules> <query id="match"><![CDATA[ select T.firstW as firstw, T.lastZ as lastz, T.price as price from StockInputsStream MATCH_RECOGNIZE ( MEASURES A.c1 as firstW, last(Z.c1) as lastZ, A.c2 as price PATTERN(A W+ X+ Y+ Z+) DEFINE A as A.c1 = A.c1, W as W.c2 < prev(W.c2), X as X.c2 > prev(X.c2), Y as Y.c2 < prev(Y.c2), Z as Z.c2 > prev(Z.c2)) as T ]]></query> <query id="stock"><![CDATA[ select c1 as ts, c2 as price from StockInputsStream ]]></query> </rules> </processor> <channel> <name>StockOutputChannel</name> <selector>stock</selector> </channel> <channel> <name>MatchOutputChannel</name> <selector>match</selector> </channel>
Required. For each local http-pub-sub-adapter
for publishing, specify the value of the Oracle Event Processing server config.xml
file element http-pubsub
child element path
of the local HTTP pub-sub server associated with the Oracle Event Processing instance hosting the current Oracle Event Processing application.
Default: /pubsub
.
If you have created a new local HTTP pub-sub server, or changed the default configuration, then specify the appropriate path
child element value.
Note:
Do not specify this option for a remote HTTP pub-sub adapter.
The server-context-path
component configuration element has no child elements.
Required. For each remote http-pub-sub-adapter
for publishing or subscribing, specify the URL of the remote HTTP pub-sub server to which the Oracle Event Processing application will publish. The remote HTTP pub-sub server could be another instance of Oracle Event Processing, or a WebLogic Server instance, or it could be any third-party HTTP pub-sub server. For example:
http://myhost.com:9102/pubsub
Note:
Do not specify this option for a local HTTP pub-sub adapter.
The following example shows how to use the server-url
element in the component configuration file:
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://myhost.com:9102/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> </http-pub-sub-adapter>
In the example, the URL of the remote HTTP pub-sub server to which the remotePublisher
adapter will publish events is http://myhost.com:9102/pubsub
.
Use this element to define the session acknowledge mode name for a jms-adapter.
Valid values from javax.jms.Session
are:
AUTO_ACKNOWLEDGE
: With this acknowledgment mode, the session automatically acknowledges a client's receipt of a message either when the session has successfully returned from a call to receive or when the message listener the session has called to process the message successfully returns.
CLIENT_ACKNOWLEDG
: With this acknowledgment mode, the client acknowledges a consumed message by calling the message's acknowledge method.
DUPS_OK_ACKNOWLEDGE
: This acknowledgment mode instructs the session to lazily acknowledge the delivery of messages.
Default: AUTO_ACKNOWLEDGE
.
The session-ack-mode-name
component configuration element has no child elements.
The following example shows how to use the session-ack-mode-name
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <session-ack-mode-name>AUTO_ACKNOWLEDGE</session-ack-mode-name> <session-transacted>false</session-transacted> </jms-adapter>
Use this element to define whether or not a session is transacted for both an inbound or outbound jms-adapter
.
Valid values are:
true
false
The following example shows how to use the session-transacted
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <session-ack-mode-name>AUTO_ACKNOWLEDGE</session-ack-mode-name> <session-transacted>false</session-transacted> </jms-adapter>
Use this element to define the stage for a start-location
or end-location
element of a diagnostic profile.
Valid values are the name of an existing stage in your Event Processing Network (EPN).
The following example shows how to use the stage
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use this element to define a start time for a time-range
, time-range-offset
, or schedule-time-range-offset
element.
Express the start time as an XML Schema dateTime
value of the form:
yyyy-mm-ddThh:mm:ss
For example, to specify that play back should start on January 20, 2010, at 5:00am and end on January 20, 2010, at 6:00 pm, enter the following:
<time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range>
For complete details of the XML Schema dateTime
format, see http://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation
.
The following example shows how to use the start
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define the start location of a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The start-location
component configuration element supports the following child elements:
The following example shows how to use the start-location
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use this element to define the starting stage of a diagnostic profile.
Valid values are the name of an existing stage in your Event Processing Network (EPN).
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The following example shows how to use the start-stage
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use this element to define one or more store policy parameter, specific to the event store provider.
The store-policy-parameter
component configuration element supports the following child elements:
The following example shows how to use the store-policy-parameter
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define a stream component.
Note:
The stream
component is deprecated in 11g Release 1 (11.1.1). Use the channel element instead.
The stream
component configuration element supports the following child elements:
Use this element to define a symbol for an adapter
, http-pub-sub-adapter
, or jms-adapter
element.
Note:
The symbol
component is deprecated in 11g Release 1 (11.1.1).
Use this element to define one or more symbol
elements for a component.
Note:
The symbol
component is deprecated in 11g Release 1 (11.1.1).
The symbols
component configuration element supports the following child elements:
Use this element to define the threshold above which Oracle Event Processing server logs a monitoring event.
This element is applicable only in an average-latency
element in a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The threshold
component configuration element supports the following child elements:
The following example shows how to use the threshhold
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <average-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> <threshhold> <amount>100</amount> <unit>MILLISECONDS</unit> </threshhold> </average-latency> </profile> </diagnostic-profiles>
Use this element to define a throughput diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The throughput
component configuration element supports the following child elements:
The following example shows how to use the throughput
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
Use this element to define the throughput interval of a diagnostic profile.
For more information, see "Monitoring the Throughput and Latency of a Stage or Path in the EPN" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Event Processing.
The throughput-interval
component configuration element supports the following child elements:
The following example shows how to use the throughput-interval
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
Use this element to define a filter that Oracle Event Processing server applies to the events in the event store. Only events with a record-time in this time range will be played back to the stage.
Use either time-range-offset
or time-range
but not both.
For more information, see Chapter 20, "Configuring Event Record and Playback".
The time-range
component configuration element supports the following child elements:
The following example shows how to use the time-range
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define a filter that Oracle Event Processing server applies to the events in the event store. Only events with a record-time in this time range will be played back to the stage.
Use either time-range
or time-range-offset
but not both.
For more information, see Chapter 20, "Configuring Event Record and Playback".
The time-range-offset
component configuration element supports the following child elements:
The following example shows how to use the time-range-offset
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range-offset> <start>2010-01-20T05:00:00</start> <duration>03:00:00</duration> </time-range-offset> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define the maximum amount of time, in milliseconds, that an entry is cached. Default value is infinite.
For more information, see Section 13.3, "Configuring an Oracle Event Processing Local Caching System and Cache".
The following example shows how to use the time-to-live
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to configure event tracing for a stage in the event processing network.
For more information about event tracing, see Section 22.4, "Tracing Events".
The trace-parameters
component configuration element supports the following child elements:
The component configuration excerpt shown in the following example illlustrates how you might configure a processor for event tracing. The trace-parameters
element's active
child element specifies that tracing is on, while the channel-name
element specifies the HTTP pub-sub channel to which traced elements should be sent.
<processor> <name>FindCrossRates</name> <trace-parameters> <active>true</active> <channel-name>/NonClusteredServer/fx/FindCrossRates/output</channel-name> </trace-parameters> <rules> <!-- Query rules omitted. --> </rules> </processor>
Use this element to define the duration units of amount
element.
Valid values are:
NANOSECONDS
MICROSECONDS
MILLISECONDS
SECONDS
MINUTES
HOURS
DAYS
The following example shows how to use the unit
element in the component configuration file:
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
Use the user
element in the following parent elements:
http-pub-sub-adapter: Use the user
element to define the user name if the HTTP pub-sub server to which the Oracle Event Processing application is publishing requires user authentication.
jms-adapter: When Oracle Event Processing acquires the JNDI InitialContext
, it uses the user
and password
(or encrypted-password
) elements. When Oracle Event Processing calls the createConnection
method on the javax.jms.ConnectionFactory
to create a connection to the JMS destination (JMS queue or topic), it uses the connection-user
and connection-password
(or connection-encrypted-password
element), if configured. Otherwise, Oracle Event Processing uses the user
and password
(or encrypted-password
) elements.
The following example shows how to use the user
element in the component configuration file:
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> </http-pub-sub-adapter>
Use this element to define the value of a parameter
element.
The following example shows how to use the value
element in the component configuration file:
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
Use this element to define an Oracle CQL view for a component.
For more information, see Chapter 17, "Querying an Event Stream with Oracle CQL".
Table D-9 lists the attributes of the view
component configuration element.
Table D-9 Attributes of the view Component Configuration Element
Attribute | Description | Data Type | Required? |
---|---|---|---|
|
Unique identifier for this query. |
|
Yes. |
|
Execute this query when the application is deployed and run. Valid values are |
|
No. |
|
Enable or disable parallel query execution, through which events can be processed in parallel rather than serially. The attribute supports one of the following three values:
For more information see "Using the ordering-constraint Attribute" in Chapter 17, "Querying an Event Stream with Oracle CQL". |
String |
No. |
|
The partition expression (used in the CQL code) that should be the basis for relaxing the cross-partition ordering constraint. For more information see "Using the ordering-constraint Attribute" in Chapter 17, "Querying an Event Stream with Oracle CQL". |
String |
No. |
|
Space delimited list of stream elements used in the view. |
|
No. |
The following example shows how to use the view
element in the component configuration file:
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid srcId bidQty ask askQty seq"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ]]></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ]]></view> <view ...><![CDATA[ ... ]]></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ]]></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ]]></query> </rules> </processor>
Use this element to define the name of a work manager for a jms-adapter
.
Valid value is the name specified in the Oracle Event Processing server config.xml
file work-manager
element name
child element.The default value is the work manager configured for the application itself.
For more information, see Section F.45, "work-manager".
The following example shows how to use the work-manager
element in the component configuration file:
<jms-adapter> <name>jmsInbound-text</name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
Use this element to define a work manager for a cache
.
The listeners
element has a single child element, work-manager-name
, that specifies the work manager to be used for asynchronously invoking listeners. This value is ignored if synchronous invocations are enabled. If a work manager is specified for the cache itself, this value overrides it for invoking listeners only.
Valid value is the name specified in the Oracle Event Processing server config.xml
file work-manager
element name
child element.The default value is the work manager configured for the application itself.
The following example shows how to use the work-manager-name
element in the component configuration file:
<cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache>
Use this element to specify asynchronous writes to the cache store. The cache store is invoked from a separate thread after a create or update of a cache entry. This element may be changed dynamically.
The write-behind
component configuration element supports the following child elements:
The following example shows how to use the write-behind
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to specify no writes to a cache store. This is the default write policy. This element may be changed dynamically.
The following example shows how to use the write-none
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
Use this element to specify synchronous writes to the cache store. As soon as an entry is created or updated the write occurs. This element may be changed dynamically.
The following example shows how to use the write-through
element in the component configuration file:
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-through/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>