4 Component Configuration Schema

This chapter provides a reference to the elements of the Oracle/Middleware/my_osa/osa/wlevs_application_config.xsd schema. This schema is behind the XML files you use to configure Oracle Stream Analytics application components such as adapters, channels, caching systems, and event beans.

This chapter includes the following sections:

4.1 accept-backlog

Use this element to define the maximum number of pending connections allowed on a socket. This element is only applicable in a netio element. This element has no child elements and no attributes.

The following example shows how to use the accept-backlog element in the component configuration file:

<netio> <provider-name>providerCache</provider-name>
        <num-threads>1000</num-threads>
        <accept-backlog>50</accept-backlog>
</netio>

4.2 active

Use the active element to turn event tracing on and off. When true, event tracing is on. When false, event tracing is off. When the active element value is set to false, the channel-name value is ignored. This element has no child elements and no attributes.

The following example shows how to 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>

4.3 adapter

Use this element to define a custom adapter component. This element has the following child elements and no attributes.

See also the following specialized adapter elements: http-pub-sub-adapter, jms-adapter, edn-adapter, csv-adapter, obr-adapter, or rmi-adapter elements.

The following example shows how to use the adapter element in the component configuration file. In the example, the adapter's unique identifier is trackdata.

<adapter>
    <name>trackdata</name>
    <symbols>
        <symbol>BEAS</symbol>
        <symbol>IBM</symbol>
    </symbols>
 </adapter>

The adapter component configuration element supports the following child elements and has no attributes:

4.4 amount

Use this element to define the time duration for a diagnostic profile. The amount element has no child elements and no attributes.

This element can be used with any of the following elements:

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>

4.5 append

Use the append element with a CSV outbound adapter to specify whether event data should be appended to the output CSV file if it exists. When true, Oracle Stream Analytics appends data to an existing CSV output file. When false, Oracle Stream Analytics creates a new CSV file or overwrites an existing CSV file of the same name. This element has no child elements and no attributes.

The following example shows the assembly file entry for the StockTradeCSVOutboundAdapter. The append element value is false.

<wlevs:adapter id="StockTradeCSVOutboundAdapter" provider="csv-outbound">
    <wlevs:instance-property name="eventType" value="TradeEvent"/>
    <wlevs:instance-property name="outputFile"
        value="/scratch/mpawlan/oep9-19/oep/utils/load-generator/StockData.csv"/>
    <wlevs:instance-property name="append" value="false"/>
</wlevs:adapter>

4.6 application

Use this element to define the type of application Oracle Stream Analytics server applies to a foreign stage. In a diagnostic profile, this element always has a value of diagnostic. This element has no child elements and no attributes.

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>

4.7 average-interval

Use the average-interval element to define the time interval for which you want to gather metrics. This element has the following child elements and no attributes.

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>

4.8 average-latency

Use this element to define an average latency calculation in a diagnostic profile.

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>

4.9 bindings (jms-adapter)

In an Oracle Stream Analytics application, you can use the com.oracle.cep.cluster.hagroups.ActiveActiveGroupBean class to partition an incoming JMS stream with notification groups. Then, use the jms-adapter bindings element to associate a notification group with a particular message-selector value.

This element has the group-binding child element and no attributes.

The following example shows how to use the bindings element in the component configuration file. When an application with this configuration deploys to a server and the server has a cluster element groups child element that contains ActiveActiveGroupBean_group1, the following happens:

  • The application processes events with an acctid property that is greater than 400.

  • The CONDITION parameter is defined as acctid > 400.

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

4.10 bindings (processor)

Use the processor bindings element to define bindings for one or more parameterized Oracle CQL rules in a processor component. The bindings component configuration element has the binding child element and no attributes.

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>

4.11 buffer-size

Use the buffer-size 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. This element has no child elements and no attributes.

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>

4.12 buffer-write-attempts

Use the buffer-write-attempts 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.

This element has no child elements and no attributes.

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>

4.13 buffer-write-timeout

Use the buffer-write-timeout 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 time out, further attempts may be made to write to the buffer based on the value of buffer-write-attempts. This element may be changed dynamically.

This element has no child elements and no attributes.

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>

4.14 cache

Use the cache 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 Stream Analytics application. A cache is not necessary for the application to function correctly. Oracle Stream Analytics 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.

This element has the following child elements and no attributes.

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>

4.15 caching-system

Use the caching-element element to define an Oracle Stream Analytics 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.

This element has the following child elements and no attributes.

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>

4.16 channel

Use the channel element to define a channel component. An Oracle Stream Analytics 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).

This element has the following child elements and no attributes.

The following example shows how to use the channel element in the component configuration file. In the example, the channel's unique identifier is MatchOutputChannel.

<channel>    <name>monitoring-control-stream</name>    <max-size>10000</max-size>    <max-threads>1</max-threads></channel>

4.17 channel (http-pub-sub-adapter Child Element)

Use the channel element to specify the channel that the http-pub-sub-adapter publishes or subscribes to for all http-pub-sub-adapters, whether they are local or remote or for publishing or subscribing. This element has no child elements and no attributes.

The following example shows how to use the channel element in the component configuration file. In the example, the localPublisher pub-sub adapter publishes to a local channel with pattern /channel2.

<http-pub-sub-adapter>
    <name>localPublisher</name>
    <server-context-path>/pubsub</server-context-path>
    <channel>/channel2</channel>
</http-pub-sub-adapter>

4.18 channel-name

Use the channel-name element to specify the name of the channel onto which events are to be injected or to which traced events are to be sent. This element has no child elements and no attributes. When the value of the active element is false, the channel-name value is ignored.

The element value must be a path to the channel in the following form and begin with a slash:

  • Event tracing: /serverID/appID/stageID/output

  • Event injection: /serverID/appID/stageID/input

The following example shows how to configure a processor for event tracing. The trace-parameters element's active child element specifies that tracing is on, and the channel-name element specifies the HTTP pub-sub channel to which to send traced elements.

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

4.19 client-id

Use the client-id element to specify the ID of the durable subscription client for an EDN adapter. This element has no child elements and no attributes.

4.20 coherence-cache-config

Use this element to define the Oracle Coherence cache configuration for a coherence-caching-system. This element has no child elements and no attributes.

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-
    </coherence-cache-config></coherence-caching-system>

4.21 coherence-caching-system

Use the coherence-caching-system 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.

This element has the following child elements and no attributes.

The following example shows how to use the coherence-caching-system element in the component configuration file. In the example, the channel's unique identifier is nativeCachingSystem.

<coherence-caching-system>
    <name>nativeCachingSystem</name>
    <coherence-cache-config>
        applications/cache_cql/coherence/coherence-cache-
    </coherence-cache-config>
</coherence-caching-system>

4.22 coherence-cluster-config

Use the coherence-cluster-config element to define the Oracle Coherence cluster configuration for a coherence-caching-system. This element has no child elements and no attributes.

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-
    </coherence-cluster-config></coherence-caching-system>

4.23 collect-interval

Use the collect-interval element to define the collection interval of an average-latency or max-latency element in a diagnostic profile. This element has the following child elements and no attributes.

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>

4.24 concurrent-consumers

Use the concurrent-consumers element to define the number of consumers to create. Default value is 1. This element has no child elements and no attributes.

If you set this value to a number greater than one, be sure that your converter bean is thread-safe because the converter bean will be shared among the consumers. If the value of 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 work-manager.

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>

4.25 configuration

Use the configuration element to group key and value pairs. This element has the following child elements and no attributes:

4.26 config-name

Use the config-name element to specify the key name for a configuration setting. This element has no child elements and no attributes.

4.27 config-value

Use the config-value element to specify the value for a configuration setting. This element has no child elements and no attributes.

4.28 connection-jndi-name

Use the optional connection-jndi-name element to define a JNDI name of the JMS connection factory. Default value is weblogic.jms.ConnectionFactory for Oracle Stream Analytics server JMS.

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

The following example shows how to use the connection-jndi-name element in the component configuration file:

4.29 connection-encrypted-password

Use the connection-encrypted-password element to define the encrypted jms-adapter password that Oracle Stream Analytics uses when it acquires a connection to the JMS service provider. This element has no child elements and no attributes.

When Oracle Stream Analytics 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 Stream Analytics uses the user and password (or encrypted-password) elements. Use either connection-encrypted-password or connection-password but not both.

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>

4.30 connection-password

Use the connection-password element to define the jms-adapter password that Oracle Stream Analytics uses when it acquires a connection to the JMS service provider. This element has no child elements and no attributes.

When Oracle Stream Analytics 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 Stream Analytics uses the user and password (or encrypted-password) elements.

Use either connection-password or connection-encrypted-password but not both.

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>

4.31 connection-user

Use the connection-user element to define the jms-adapter user name that Oracle Stream Analytics uses when it acquires a connection to the JMS service provider. This element has no child elements and no attributes.

When Oracle Stream Analytics 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 Stream Analytics 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>

4.32 context-path

Use the context-path element to specify the location on the web server where the application will be deployed. The context-path element has no attributes and no children.

The following example shows how to use the context-path element in a configuration file.

 <rest-adapter>
    <name>httpInbound</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <context-path>/testhttpadapter</context-path>
 </rest-adapter>
 <jaxb-mapper>
    <name>xmlMapperBean</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <metadata>external_metadata_case1.xml</metadata>
 </jaxb-mapper>
 <csv-mapper>
    <name>csvMapperBean</name>
    <context-path>org.callcenter</context-path>
   <validate>false</validate>
 </csv-mapper>

4.33 csv-adapter

Use a CSV Inbound adapter to accept data in the form of comma-separated values entering the EDN, and use a CSV Outbound adapter to send data in comma-separated values out of the EDN. The csv-adapter element has the following child elements and no attributes.

The following configuration file example shows how to use the csv-adapter element to create CSV inbound and outbound adapters.

<csv-adapter>
    <name>StockTradeCSVInboundAdapter</name>
</csv-adapter>

<csv-adapter>
    <name>StockTradeCSVOutboundAdapter</name>
</csv-adapter>

4.34 csv-mapper

Use a csv-mapper element to handle incoming CSV data This element has the following child elements and no attributes.

The following example shows how to use the csv-mapper element in a configuration file.

 <rest-adapter>
    <name>httpInbound</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <context-path>/testhttpadapter</context-path>
 </rest-adapter>
 <jaxb-mapper>
    <name>xmlMapperBean</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <metadata>external_metadata_case1.xml</metadata>
 </jaxb-mapper>
 <csv-mapper>
    <name>csvMapperBean</name>
    <context-path>org.callcenter</context-path>
   <validate>false</validate>
 </csv-mapper>

4.35 database

Use the database element to define a database reference for an Oracle CQL processor. This element has no child elements and the following attributes.

Table 4-1 Attributes of the database Component Configuration Element

Attribute Description Data Type Required?

name

Unique identifier for this query.

String

Yes

data-source-name

The name of the data source as defined in the Oracle Stream Analytics server file.

String

Yes

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>

4.36 decision-function

Use the decision-function element to specify the name of the OBR decision function you want to use. This element has no child elements and no attributes.

The following example shows how to use the decision-function element.

 <processor>
    <name>helloworldProcessor</name>
  <rules>
    <query id="helloworldRule">
      <!-- <![CDATA[ select * from helloworldInputChannel[range 10 slide 5] >
      --> 
      select * from helloworldInputChannel[now]
    </query>
  </rules>
  </processor>
  <obr-adapter>
    <name>OBRAdapter</name>
    <dictionary-url>file:helloworld.rules</dictionary-url>
    <decision-function>handler1</decision-function>
  </obr-adapter>

4.37 default-session

Use the default-session element when one or more session elements are required. All of the session tags by default inherit all of the elements declared in the default-session tag.

4.38 delivery-mode

Use the delivery-mode element to define the delivery mode for a jms-adapter. This element has no child elements and no attributes.

Valid delivery modes are the following:

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

4.39 description

Use the description attribute to provide a description for a QuickFix adapter session or configuration element.

The following example shows how to use the description element in a QuickFix adapter.

<quickfix-adapter>
    <name>quickfixAdpater</name>
    <event-type>MyConfigEvent</event-type>
    <default-session description="default configuration">
      ...
      <configuration description="identifier-message format">
        <config-name>BeginString</config-name>
        <config-value>FIXT.0.1</config-value>
      </configuration>
    </default-session>
    <session description="ordertracker configuration">
      <configuration description="identifier-acceptor">
        <config-name>SenderCompID</config-name>
        <config-value>QA</config-value>
      </configuration>
      <configuration description="identifier-initiator">
        <config-name>TargetCompID</config-name>
        <config-value>ORACLE</config-value>
      </configuration>
    </session>
</quickfix-adapter> 

4.40 destination-jndi-name

Use the destination-jndi-name required element to define the JMS destination name for a jms-adapter. This element has no child elements and no attributes.

Specify either the JNDI name or the actual destination-name, but not both.

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>

4.41 destination-name

Use the destination-name required element to define the JMS destination name for a jms-adapter. This element has no child elements and no attributes.

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>

4.42 destination-type

Use the destination-type element to define the JMS destination type for a jms-adapter. This element has no child elements and no attributes.

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>

4.43 diagnostic-profiles

Use the diagnostic-profiles element to define one or more Oracle Stream Analytics diagnostic profiles. This element has the following child elements and no attributes.

The following example shows how to use the diagnostics-profiles element in the component configuration file. In the example, the channel's unique identifier is myDiagnosticProfiles.

<diagnostics-profiles>
    <name>myDiagnosticProfiles</name>
    <profile>
        ...
    </profile>
</diagnostics-profiles>

4.44 dictionary-url

Use the dictionary-url element to specify the path to the OBR dictionary file that contains the rules and decision function you want to use. This element has no child elements and no attributes.

The following example shows how to use the dictionary-url element.

 <processor>
    <name>helloworldProcessor</name>
  <rules>
    <query id="helloworldRule">
      <!-- <![CDATA[ select * from helloworldInputChannel[range 10 slide 5] >
      --> 
      select * from helloworldInputChannel[now]
    </query>
  </rules>
  </processor>
  <obr-adapter>
    <name>OBRAdapter</name>
    <dictionary-url>file:helloworld.rules</dictionary-url>
    <decision-function>handler1</decision-function>
  </obr-adapter>

4.45 direction

Use the direction element to define the direction for a diagnostic profile end-location or start-location. This element has no child elements and no attributes.

Valid values are:

  • INBOUND

  • OUTBOUND

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>

4.46 durable-subscription

Use the durable-subscription 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.

This element has no child elements and no attributes.

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>

4.47 durable-subscription-name

Use the durable-subscription-name 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. This element has no child elements and no attributes.

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>

4.48 duration

Use this element to define a time duration for a schedule-time-range-offset or time-range-offset element in the following form where: HH is a number of hours, MM is a number of minutes, and SS is a number of seconds.

HH:MM:SS

This element has no child elements and no attributes.

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>

4.49 edl-file

The name of the requited EDL file that is loaded into an EDN adapter. The EDL file with the specified name must be packaged in an application bundle in the META-INF/wlevs/edn/ directory. This element has no child elements and no attributes.

The following example shows how to use the edl-file element.

<edn-adapter>
  <name>ednOutboundAdapterJaxb</name>
  <edl-file>CallCenterEvents.edl</edl-file>
  <schema-file>callcenter.xsd</schema-file>
  <validate>true</validate>
  <package-name>org.callcenter</package-name>
  <raw-xml-content>false</raw-xml-content>
  <jndi-provider-url>vm://localhost</jndi-provider-url>
  <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory
    </jndi-factory>
  <user>test1</user>
  <password>test123</password>
  <delivery-mode>nonpersistent</delivery-mode>
</edn-adapter>

4.50 edn-adapter

Use the edn-adapter element to interface with an Oracle SOA Suite event network. Use an EDN inbound adapter to receive incoming data from the Oracle SOA Suite event network, and use an EDN outbound adapter to send outbound data to the Oracle SOA Suite event network.

This element has the following child elements and no attributes. The client-id and durable-subscription-name elements apply to the EDN input adapter only. The rest apply to both the input and output EDN adapters.

All the elements in the list except client-id and durable-subscription-name apply to both the input and output EDN adapters. The client-id and durable-subscription-name elements are unique to the input EDN adapter.

The following example shows an EDN inbound adapter configuration. The inbound EDN adapter loads an EDL file that contains the definition of the CallCenterActivityEvent specified in the assembly file. The schema file is provided for schema validation. The package name is used for schema-generated JAXB classes. Raw XML content means that the EDN XML transmission is represented as ras XML. The JNDI provider and factory enable Oracle SOA Suite to locate the EDN.

<edn-adapter>
  <name>ednInboundAdapterJaxb</name>
  <edl-file>CallCenterEvents.edl</edl-file>
  <schema-file>callcenter.xsd</schema-file>
  <validate>true</validate>
  <package-name>org.callcenter</package-name>
  <raw-xml-content>false</raw-xml-content>
  <jndi-provider-url>vm://localhost</jndi-provider-url>
  <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory
    </jndi-factory>
  <user>test1</user>
  <password>test123</password>
</edn-adapter>

4.51 enabled

Use this element to define whether or not a diagnostic profile is enabled. This element has no elements and no attributes.

Valid values are:

  • true

  • false

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

4.52 encrypted-password

use the encrypted-password element to create a password that is changed to another form to prevent hacking. This element has no child elements and no attributes.

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 Stream Analytics application is publishing requires user authentication.

  • jms-adapter: When Oracle Stream Analytics acquires the JNDI InitialContext, it uses the user and password (or encrypted-password) elements. When Oracle Stream Analytics 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 Stream Analytics the user and password (or encrypted-password) elements.

  • rmi-adapter: Use the encrypted-password element to define an encrypted user password for RMI authentication to the Oracle WebLogic Server.

  • edn-adapter: Use the encrypted-password element to define an encrypted user password for Oracle SOA Suite EDN or JMS authentication.

Note:

Use either encrypted-password or password but not both.

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>

4.53 end

Use the end element to define an end time for a time-range or schedule-time-range element. This element has no child elements and no attributes.

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>

4.54 end-location

Use the end-location element to define the end location of a average-latency or max-latency element in a diagnostic profile. This element has the following child elements and no attributes.

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>

4.55 event-bean

Use the event-bean element to define an event bean component. This element has the following child elements and no attributes.

The following example shows how to use the event-bean element in the component configuration file. In the example, the channel's unique identifier is myEventBean.

<event-bean>
    <name>myEventBean</name>
</event-bean>

4.56 event-interval

Use the event-interval element on a CSV inbound adapter to specify the time in selected units between reading events. Possible units are nanoseconds, microseconds, milliseconds, and seconds. This element has no child elements and no attributes.

The interval to wait between the events. Possible units are nanoseconds, microseconds, milliseconds, and seconds. For example, if the event interval is set to 1 second, then the CSV input adapter waits 1 second before processing every event. Note that the actual wait time will be slightly higher than the event interval because there is some associated overhead for thread handling. Therefore avoid very low event intervals.

The following code shows a CSV adapter with an event interval of 25 nanoseconds and an initial delay of 40 seconds. Possible units are nanoseconds, microseconds, milliseconds, and seconds.

  <csv-adapter>
    <name>csv-inbound-adapter</name>
    <event-interval units="nanoseconds">25</event-interval>
    <initial-delay units="seconds">40</initial-delay>
  </csv-adapter>

4.57 event-type

Use the event-type element to define the data contained in an event. This element has no child elements and no attributes.

Use the event-type element in the following parent elements:

  • http-pub-sub-adapter:

    • 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 Stream Analytics 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.

  • 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 Stream Analytics 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.

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>

4.58 event-type-name

Use the event-type-name element to specify the name of an event type. An event type is a data structure that defines the data contained in an event.

The event-type-name element has no children and no attributes. The following example shows how to use this element in a configuration file.

 <rest-adapter>
    <name>httpInbound</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <context-path>/testhttpadapter</context-path>
 </rest-adapter>
 <jaxb-mapper>
    <name>xmlMapperBean</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <metadata>external_metadata_case1.xml</metadata>
 </jaxb-mapper>
 <csv-mapper>
    <name>csvMapperBean</name>
    <context-path>org.callcenter</context-path>
   <validate>false</validate>
 </csv-mapper>

4.59 eviction-policy

Use the eviction-policy element to define the eviction policy the cache uses when max-size is reached. This element has no child elements and no attributes.

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>

4.60 fail-when-rejected

Use the fail-when-rejected element to specify whether an exception of type com.bea.wlevs.ede.api.EventProcessingException should be raised if the event queue is full when the offer time out 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 time out, see offer-timeout.

This element has no child elements and no attributes.

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>

4.61 group-binding

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 bindings (jms-adapter).

This element has the param child element and the group-id attribute. The group-id attribute is required, is type String, and is the name of a cluster element that groups child elements.

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>

4.62 heartbeat

Use the heartbeat element to define a new heartbeat time out for a system-time stamped channel component. By default, the time out value is 100 milliseconds, which is 100,000,000 nanoseconds. This element has no child elements and no attributes. A heartbeat checks for the arrival of data on the channel every so many seconds

Oracle Stream Analytics generates a heartbeat on a system time stamped relation or stream channel when no data has arrived on the channel for more than the value for this setting.

The heartbeat child element applies to system-time stamped 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. In the example, the channel's unique identifier is MatchOutputChannel.

<channel>
    <name>MatchOutputChannel</name>
    <max-size>0</max-size>
    <max-threads>0</max-threads>
    <selector>match</selector>
    <heartbeat>10000</heartbeat>
</channel>

4.63 http-pub-sub-adapter

Use the http-pub-sub-adapter element to define an HTTP publish-subscribe server adapter component.

This element has the following child elements and no attributes.

The following example shows how to use the http-pub-sub-adapter element in the component configuration file. In the example, the adapter's unique identifier is remotePub.

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

4.64 idle-time

Use the idle-time 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. This element has no child elements and no attributes.

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>

4.65 initial-delay

Use the initial-delay element on an adapter to specify the time in nanoseconds before beginning to read events. The initial-delay element has no children and no attributes.

The following code shows a CSV adapter with an event interval of 25 nanoseconds and an initial delay of 40 seconds. Possible units are nanoseconds, microseconds, milliseconds, and seconds.

  <csv-adapter>
    <name>csv-inbound-adapter</name>
    <event-interval units="nanoseconds">25</event-interval>
    <initial-delay units="seconds">40</initial-delay>
  </csv-adapter>

4.66 inject-parameters

Use the inject-parameters element to configure event injection for a stage in the event processing network. This element has the following child elements and no attributes:

The component configuration excerpt shown in the following example illustrates 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>

4.67 jaxb-mapper

The jaxb-mapper element to handle incoming XML and JSON data This element has the following child elements and no attributes.

Child Elements

Example

The following example shows how to use the jaxb-mapper element in a configuration file.

 <rest-adapter>
    <name>httpInbound</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <context-path>/testhttpadapter</context-path>
 </rest-adapter>
 <jaxb-mapper>
    <name>xmlMapperBean</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <metadata>external_metadata_case1.xml</metadata>
 </jaxb-mapper>
 <csv-mapper>
    <name>csvMapperBean</name>
    <context-path>org.callcenter</context-path>
   <validate>false</validate>
 </csv-mapper>

4.68 jms-adapter

Use the jms-adapter element to define a JMS adapter component. This element has the following child elements and no attributes.

Chile Elements

Example

The following example shows how to use the jms-adapter element in the component configuration file. In the example, the adapter's unique identifier is jmsInbound-text.

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

4.69 jndi-factory

Use the optional jndi-factory element to define a JNDI factory for a jms-adapter or rmi-adapter. The default JNDI factory name value for Oracle Stream Analytics server JMS is weblogic.jndi.WLInitialContextFactory.

This element has no child elements and no attributes.

The following example shows how to use the jndi-factory 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>

4.70 jndi-name

Use the jndi-name element to specify the Java Naming and Directory Interface (JNDI) name of the component your application needs to locate and access over a Remote Method Invocation (RMI) input or output adapter.

The following example shows how to use the jndi-name element.

<rmi-adapter>
    <name>rmi-outbound-adapter</name>
    <jndi-name>RMIOutboundJNDIName</jndi-name>
    <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
    <jndi-factory>weblogic.jndi.WLInitialContextFactory</jndi-factory>
 </rmi-adapter>

4.71 jndi-provider-url

Use the jndi-provider-url required element to define a JNDI provider URL for a jms-adapter. This element has no child elements and no attributes.

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>

4.72 listeners

Use the listeners element to define the behavior for cache listeners. This element has the work-manager-name child element and the asynchronous attribute.

The work-manager-name child element specifies the work manager to use to invoke listeners asynchronously. Oracle Stream Analytics ignores the work manager value when you enable synchronous invocations. If a work manager is specified for the cache itself, this value overrides it for invoking listeners only.

The asynchronous attribute is required, is type Boolean, and when true, executes listeners asynchronously. The default value is false.

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>

4.73 location

Use the location element to define the location of a throughput element in a diagnostic profile. This element has the following child elements and no attributes.

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>

4.74 max-latency

Use the max-latency element to define the maximum latency calculation of a diagnostic profile. This element has the following child elements and no attributes.

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>

4.75 max-size

Use the max-size element in the following parent elements:

  • channel: 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 and buffer 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

This element has no child elements and no attributes.

The following example shows how to use the max-size element in the component configuration file:

<stream>
    <name>monitoring-control-stream</name>
    <max-size>10000</max-size>
    <max-threads>1</max-threads>
</stream>

4.76 max-threads

Use the max-threads element to define the maximum number of threads that Oracle Stream Analytics server uses to process events for a channel. This element has no child elements and no attributes.

The default value is 0. If the max-size attribute is 0, then setting a value for max-threads has no effect.

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. Setting this value has no effect when max-size is 0.

The following example shows how to use the max-threads element in the component configuration file:

<channel>
    <name>monitoring-control-stream</name>
    <max-size>10000</max-size>
    <max-threads>1</max-threads>
</channel>

4.77 message-selector

Use the message-selector element with a JMS message selector to filter messages in a jms-adapter. This element has no child elements and no attributes.

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>

4.78 metadata

Use the metadata element to specify the name of the file that contains the JAXB Boxy external metadata for customizing the JAXB mapping. This element is optional and has no child elements and no attributes.

The following example shows how to use the metadata element in a configuration file.

 <rest-adapter>
    <name>httpInbound</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <context-path>/testhttpadapter</context-path>
 </rest-adapter>
 <jaxb-mapper>
    <name>xmlMapperBean</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <metadata>external_metadata_case1.xml</metadata>
 </jaxb-mapper>
 <csv-mapper>
    <name>csvMapperBean</name>
    <context-path>org.callcenter</context-path>
   <validate>false</validate>
 </csv-mapper>

4.79 name

The name of the element. Use the name element in the following parent elements:

  • EPN components: Use the name element to associate this application configuration element with its corresponding element in the assembly file. Valid value is the corresponding assembly file 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 and value pair.

This element has no child elements and no attributes.

The following example shows how to use the name element in the component configuration file. In the example, the channel's unique identifier is myDiagnosticProfiles.

<diagnostics-profiles>
    <name>myDiagnosticProfiles</name>
    <profile>
        ...
    </profile>
</diagnostics-profiles>

4.80 netio

Use the netio 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.

This element has the following child elements and no attributes.

The following example shows how to use the netio element in the component configuration file:

<netio>
        <provider-name>providerCache</provider-name>
        <num-threads>1000</num-threads>
</netio>

4.81 num-threads

Use the num-threads element to define the number of threads in a network input/output port for a component. This element has no child elements and no attributes.

The following example shows how to use the num-threads element in the component configuration file:

<netio>
        <provider-name>providerCache</provider-name>
        <num-threads>1000</num-threads>
</netio>

4.82 obr-adapter

Use an obr-adapter adapter to treat events as Java code so that you can evaluate Oracle Business Rules (OBR) and trigger events based on the findings. With an OBR adapter, you can add OBR logic to a CQL processor downstream.

This element has the following child elements and no attributes.

The following example shows an OBR adapter configuration.

 <processor>
    <name>helloworldProcessor</name>
  <rules>
    <query id="helloworldRule">
      <!-- <![CDATA[ select * from helloworldInputChannel[range 10 slide 5] >
      --> 
      select * from helloworldInputChannel[now]
    </query>
  </rules>
  </processor>
  <obr-adapter>
    <name>OBRAdapter</name>
    <dictionary-url>file:helloworld.rules</dictionary-url>
    <decision-function>handler1</decision-function>
  </obr-adapter>

4.83 offer-timeout

Use the offer-timeout 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.

This element has no child elements and no attributes.

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>

4.84 output-file

Use the output-file entry to specify where a CSV Outbound adapter saves the outbound event data. This element has no child elements or attributes.

You can use the append element to specify whether to create a new file, overwrite an existing file, or append to an existing file.

The following example shows the assembly file entry for StockTradeCSVOutboundAdapter.

<wlevs:adapter id="StockTradeCSVOutboundAdapter" provider="csv-outbound">
    <wlevs:instance-property name="eventType" value="TradeEvent"/>
    <wlevs:instance-property name="outputFile"
        value="/scratch/mpawlan/oep9-19/oep/utils/load-generator/StockData.csv"/>
    <wlevs:instance-property name="append" value="false"/>
</wlevs:adapter>

4.85 package-name

The optional package name of the schema-generated classes for JAXB. When set, the specified package name overrides the package name inferred from the EDL file. This element has no child elements and no attributes.

The following example shows how to use the package-name element.

<edn-adapter>
  <name>ednOutboundAdapterJaxb</name>
  <edl-file>CallCenterEvents.edl</edl-file>
  <schema-file>callcenter.xsd</schema-file>
  <validate>true</validate>
  <package-name>org.callcenter</package-name>
  <raw-xml-content>false</raw-xml-content>
  <jndi-provider-url>vm://localhost</jndi-provider-url>
  <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory
    </jndi-factory>
  <user>test1</user>
  <password>test123</password>
  <delivery-mode>nonpersistent</delivery-mode>
</edn-adapter>

4.86 param

Use the param element to associate a message selector value with the parameter name specified in the message-selector element. This element has no child elements and the id attribute. The id attribute is required, is type String, and identifies the value to pass to the message-selector element.

For more information, see bindings (jms-adapter).

The following example shows how to use the param element in the component configuration file. When an application with this configuration is deployed to an Oracle Stream Analytics server with a cluster element groups child element that contains ActiveActiveGroupBean_group1, the CONDITION parameter is acctid > 400.The application processes events with an acctid property that is greater than 400.

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

4.87 parameter

Use the parameter element to define a name and value parameter for a component. This element has the following child elements and no attributes.

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>

4.88 params

Use the params element to define the parameters for a bindings (processor) 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 Oracle CQL rule associated with this binding.

This element has no child elements and the id attribute. The id attribute is not required, is type String, and is the unique identifier for the params element.

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>

4.89 partition-order-capacity

Use the partition-order-capacity element to define the maximum capacity of a query partition when the ordering-constraint attribute is set to PARTITION_ORDERED. This element has no child elements and no attributes.

Set the partition-order-capacity element on a channel component when you have configured a CQL processor for parallel execution and the ordering-constraint attribute is set to PARTITION_ORDERED.

To have the capacity value apply at a larger scope, you can set it in the server configuration file. See Component Configuration Schema.

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>

4.90 password

Use the password element to define a password in the following parent elements. This element has no child elements and no attributes.

  • http-pub-sub-adapter: Use the password element to define the user password if the HTTP pub-sub server to which the Oracle Stream Analytics application is publishing requires user authentication.

  • jms-adapter: When Oracle Stream Analytics acquires the JNDI InitialContext, it uses the user and password (or encrypted-password) elements. When Oracle Stream Analytics 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 Stream Analytics the user and password (or encrypted-password) elements.

  • rmi-adapter: Use the password element to define the user password for RMI authentication to the Oracle WebLogic Server.

  • edn-adapter: Use the password element to define the user password for Oracle SOA Suite EDN or JMS authentication.

Note:

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>

4.91 playback-parameters

Use the playback-parameters element to define event playback parameters for a component to test a component. You play the events back at a later stage in the application such as in an event bean. In the event bean, you query the events and make fixes to your application based on your findings This element has the following child elements and no attributes.

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>

4.92 priority

Use the priority element to set the JMS priority for events published to the EDN. The JMS API defines ten levels of priority value with 0 the lowest priority and 9 the highest. Clients should consider priorities 0-4 as gradations of normal priority and priorities 5-9 as gradations of expedited priority. Priority is set to 4 by default.This element has not child elements and no attributes.

<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>
    <priority>2</priority>
    <concurrent-consumers>1</concurrent-consumers>
    <session-transacted>false</session-transacted>
</jms-adapter>

4.93 processor (Oracle CQL)

Use the processor element to define an Oracle CQL processor component. This element has the following child elements and no attributes.

The following example shows how to use the processor element in the component configuration file. In the example, the unique identifier of the processor is cqlProcessor.

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

4.94 profile

Use the profile element to define a diagnostic profile. This element has the following child elements and no attributes.

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>

4.95 query

Use the query element to define an Oracle CQL query for a component. This element has no child elements and the following attributes.

Table 4-2 Attributes of the query Component Configuration Element

Attribute Description Data Type Required?

id

Unique identifier for this query.

String

Yes.

active

Execute this query when the application is deployed and run.

Valid values are true and false. Default value is false.

Boolean

No.

ordering-constraint

Enable or disable parallel query execution, through which events can be processed in parallel rather than serially.

The attribute supports the following three values:

  • ORDERED means that the query must handle events serially. This is the default behavior.

  • UNORDERED means that, whenever possible, the CQL processor will execute in parallel on multiple threads to process the events.

  • PARTITION_ORDERED means that when the query is partitioning events, ensure total order within a partition and (if possible) disregard order across partitions.

String

No.

partition-expression

The partition expression (used in the CQL code) that should be the basis for relaxing the cross-partition ordering constraint.

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>

4.96 quickfix-adapter

Use the quickfix-adapter element to define a Quick Fix adapter. A Quick Fix adapter is a full-featured messaging engine for handling the real-time electronic exchange of securities transactions. This element has the following child elements and no attributes.

The following configuration file shows a quickfix adapter.

<quickfix-adapter>
    <name>quickfixAdpater</name>
    <event-type>MyConfigEvent</event-type>
    <default-session description="default configuration">
      ...
      <configuration description="identifier-message format">
        <config-name>BeginString</config-name>
        <config-value>FIXT.0.1</config-value>
      </configuration>
    </default-session>
 
    <session description="ordertracker configuration">
      <configuration description="identifier-acceptor">
        <config-name>SenderCompID</config-name>
        <config-value>QA</config-value>
      </configuration>
      <configuration description="identifier-initiator">
        <config-name>TargetCompID</config-name>
        <config-value>ORACLE</config-value>
      </configuration>
    </session>
</quickfix-adapter> 

4.97 raw-xml-content

Use the raw-xml-content element to specify whether the EDN XML data transmission should be represented as raw XML (when true) or as a Java object (when false). The default is false. This element has no child elements and no attributes.

The following example shows how to use the raw-xml-content element.

<edn-adapter>
  <name>ednOutboundAdapterJaxb</name>
  <edl-file>CallCenterEvents.edl</edl-file>
  <schema-file>callcenter.xsd</schema-file>
  <validate>true</validate>
  <package-name>org.callcenter</package-name>
  <raw-xml-content>false</raw-xml-content>
  <jndi-provider-url>vm://localhost</jndi-provider-url>
  <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory
    </jndi-factory>
  <user>test1</user>
  <password>test123</password>
  <delivery-mode>nonpersistent</delivery-mode>
</edn-adapter>

4.98 record-parameters

Use the record-parameters element to define event record parameters to test a component. While the application runs, you record the events that flow out of an EPN component into a persistent store. This element has the following child elements and no attributes.

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>

4.99 repeat

Use the repeat element to define whether or not to repeat playback-parameters. This element has no child elements and no attributes.

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>

4.100 rest-adapter

Use the rest-adapter element to define a Representational State Transfer (REST) adapter that receives HTTP Post data from an external client through the REST protocol. A REST adapter can accept data in the following forms and convert that data into the Oracle Stream Analytics event configured on the inbound REST adapter: XML, CSV, and JavaScript Object Notation (JSON).

This element has the following child elements and no attributes.

The following example file shows the rest-adapter configuration for receiving POST data, the jaxb-mapper configuration for handling incoming XML and JSON data, and the csv-mapper configuration for handling incoming CSV data.

 <rest-adapter>
    <name>httpInbound</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <context-path>/testhttpadapter</context-path>
 </rest-adapter>
 <jaxb-mapper>
    <name>xmlMapperBean</name>
    <event-type-name>CallCenterActivity</event-type-name>
    <metadata>external_metadata_case1.xml</metadata>
 </jaxb-mapper>
 <csv-mapper>
    <name>csvMapperBean</name>
    <context-path>org.callcenter</context-path>
   <validate>false</validate>
 </csv-mapper>

4.101 rest-outbound-adapter

Use the rest-outbound-adapter element to define a REST adapter that sends HTTP SEND data to an external client through the REST protocol.

4.102 rmi-adapter

Use the rmi-adapter element to define an RMI outbound adapter. An RMI outbound adapter writes event information to an RMI connection. This element has the following child elements and no attributes.

The following example shows an RMI outbound adapter configuration.

<rmi-adapter>
    <name>rmi-outbound-adapter</name>
    <jndi-name>RMIOutboundJNDIName</jndi-name>
    <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
    <jndi-factory>weblogic.jndi.WLInitialContextFactory</jndi-factory>
 </rmi-adapter>

4.103 rules

Use this element to create rules for an Oracle CQL processor (Oracle CQL). This element has the following child elements and no attributes.

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>

4.104 schema

Use the schema element to specify a space-delimited list of stream elements to use in the view. The schema element has no child elements and no attributes.

The following example shows how to use the schema element in an Oracle CQL rule.

<processor>
    <name>cqlProcessor</name>
    <rules>
        <view id="lastEvents" schema="cusip bid ask"><![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>

4.105 schema-file

Use the schema-file element to specify the name of the schema file for validation. The schema element is required when the validate element is set to true. The schema-file element has no child elements and no attributes.

The following example shows how to use the schema-file element in a configuration file.

<edn-adapter>
  <name>ednInboundAdapterJaxb</name>
  <edl-file>CallCenterEvents.edl</edl-file>
  <schema-file>callcenter.xsd</schema-file>
  <validate>true</validate>
  <package-name>org.callcenter</package-name>
  <raw-xml-content>false</raw-xml-content>
  <jndi-provider-url>vm://localhost</jndi-provider-url>
  <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory
    </jndi-factory>
  <user>test1</user>
  <password>test123</password>
</edn-adapter>

4.106 selector

Use the selector element to specify which upstream Oracle CQL processor queries are permitted to send their results to a downstream channel. This element has no child elements and no attributes.

Concepts

The figure shows an EPN with filteredStream channel connected to the upstream filteredFanoutProcessor Oracle CQL processor.

The following queries are configured for the filteredFanoutProcesso Oracle CQL processor.

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

When you specify more than one query for an Oracle CQL processor, then, by default, all query results are sent to the processor's out-bound channel (filteredStream). 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 can send their results to the channel as shows in the following example. In the example, the query results for query Yr3Sector and Yr2Sector are sent to filteredStream but the query results for query Yr1Sector are not.

<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 stage is an Oracle CQL processor.

Example

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>

4.107 server-context-path

Use the server-context-path required element to specify the path to the server for every local http-pub-sub-adapter for publishing. The default value is /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 the server-context-path element for a remote HTTP pub-sub adapter.

This element has no child elements and no attributes.

The following example shows how to use the server-context-path element in the component configuration file:

<http-pub-sub-adapter>
    <name>localPub</name>
    <server-context-path>/pubsub</server-context-path>
    <channel>/test1</channel>
</http-pub-sub-adapter>

4.108 server-url

Use the server-url required element specifies the path to the server for every remote http-pub-sub-adapter for publishing or subscribing. The remote HTTP pub-sub server could be another instance of Oracle Stream Analytics, 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 the server-url element option for a local HTTP pub-sub adapter.

This element has no child elements and no attributes.

The following example shows how to use the server-url element in the component configuration file. 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.

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

4.109 session

If more than one session are required, then group common configurations in the default-session element. All of the session tags by default inherit all of the elements declared in the default-session tag.

4.110 session-ack-mode-name

Use the session-ack-mode-name to define the session acknowledge mode name for a jms-adapter. This element has no child elements and no attributes.

Valid values from javax.jms.Session are the following. The default value is AUTO_ACKNOWLEDGE.

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

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>

4.111 session-transacted

Use this element to define whether or not a session is transacted for both an inbound or outbound jms-adapter. This element has no child elements and no attributes.

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>

4.112 source-url

Use the source-url entry to specify where a CSV Inbound adapter can find file that contains the inbound event data. This element has no child elements or attributes.

The following example shows the assembly file entry for StockTradeCSVInboundAdapter.

<wlevs:adapter id="StockTradeCSVInboundAdapter" provider="csv-inbound">
    <wlevs:listener ref="AdapterOutputChannel"/>
    <wlevs:instance-property name="eventType" value="TradeEvent"/>
    <wlevs:instance-property name="sourceUrl"  value="file:////scratch/mpawlan/oep9-19/oep/utils/load-generator/StockData.csv"/>
</wlevs:adapter>

4.113 stage

Use the stage element to define the stage for a start-location or end-location element of a diagnostic profile. A valid value is 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>

4.114 start

Use the start element to define a start time for a time-range, time-range-offset, or schedule-time-range-offset element. This element has no child elements and no attributes.

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>

4.115 start-location

Use the start-location element to define the start location of a diagnostic profile. This element has the following child elements and no attributes.

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>

4.116 start-stage

Use the start-stage element to define the starting stage of a diagnostic profile. This element has no child elements and no attributes.

A valid value is the name of an existing stage in your Event Processing Network (EPN).

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>

4.117 threshold

Use the threshold element to define the threshold above which the Oracle Stream Analytics server logs a monitoring event. This element is applicable only in an average-latency element in a diagnostic profile.

This element has the following child elements and no attributes.

The following example shows how to use the threshold 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>

4.118 throughput

Use the throughput element to define a throughput diagnostic profile.

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>

4.119 throughput-interval

Use the throughput-interval element to define the throughput interval of a diagnostic profile. This element has the following child elements and no attributes.

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>

4.120 time-to-live

Use the time-to-live element to define the maximum amount of time in milliseconds that an entry is cached. The default value is infinite. This element has no child elements and no attributes.

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>

4.121 trace-parameters

Use the trace-parameters element to configure event tracing for a stage in the event processing network. This element has the following child elements and no attributes.

The component configuration excerpt shown in the following example illustrates 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>

4.122 unit

Use the unit element to define the duration units for the amount element. This element has no child elements and no attributes.

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>

4.123 user

Use the user element in the following parent elements:

  • http-pub-sub-adapter: Use the user element to define the user name of the HTTP pub-sub server to which the Oracle Stream Analytics application is publishing requires user authentication.

  • jms-adapter: When Oracle Stream Analytics acquires the JNDI InitialContext, it uses the user and password (or encrypted-password) elements. When Oracle Stream Analytics 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 Stream Analytics uses the user and password (or encrypted-password) elements.

  • rmi-adapter: Use the user element for RMI authentication to the Oracle WebLogic Server.

  • edn-adapter: Use the user element for Oracle SOA Suite EDN or JMS authentication.

This element has no child elements and no attributes.

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>

4.124 validate

Use the validate element to perform schema validation during JAXB marshalling and unmarshalling. Set to true to enable validation, and set to false to disable validation.

The validate element has no child elements and no attributes.

The following example shows how to use the validate element in a configuration file.

<edn-adapter>
  <name>ednInboundAdapterJaxb</name>
  <edl-file>CallCenterEvents.edl</edl-file>
  <schema-file>callcenter.xsd</schema-file>
  <validate>true</validate>
  <package-name>org.callcenter</package-name>
  <raw-xml-content>false</raw-xml-content>
  <jndi-provider-url>vm://localhost</jndi-provider-url>
  <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory
    </jndi-factory>
  <user>test1</user>
  <password>test123</password>
</edn-adapter>

4.125 value

Use the value element to define the value of a parameter element. This element has no child elements and no attributes.

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>

4.126 view

Use the view element to define an Oracle CQL view for a component. This element has no child elements and the following attributes.

Table 4-3 Attributes of the view Component Configuration Element

Attribute Description Data Type Required?

id

Unique identifier for this query.

String

Yes.

active

Execute this query when the application is deployed and run.

Valid values are true and false. Default value is false.

Boolean

No.

ordering-constraint

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:

  • ORDERED means that the query must handle events serially. This is the default behavior.

  • UNORDERED means that, whenever possible, the CQL processor executes in parallel on multiple threads to process the events.

  • PARTITION_ORDERED means that when the query is partitioning events, ensure total order within a partition and (if possible) disregard order across partitions.

String

No.

partition-expression

The partition expression (used in the CQL code) that should be the basis for relaxing the cross-partition ordering constraint.

String

No.

schema

Space delimited list of stream elements used in the view.

String of space delimited tokens.

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>

4.127 work-manager

Use the work-manager element to define the name of a work manager for a jms-adapter. The element has no child elements and no attributes.

Valid value is the name specified in the Oracle Stream Analytics server 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 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>

4.128 work-manager-name

Use the work-manager-name element to define a work manager for a cache. This element has no child elements and no attributes.

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 Stream Analytics server 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>

4.129 write-behind

Use the write-behind 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.

This element has the following child elements and no attributes.

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>

4.130 write-none

Use the write-none element to specify no writes to a cache store. No writes is the default write policy. You can change this element dynamically. This element has no child elements and no attributes.

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>

4.131 write-through

Use the write-through element to specify synchronous writes to the cache store. As soon as an entry is created or updated the write occurs. You can change this element dynamically.

This element has no child elements and no attributes.

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>