24 Oracle Complex Event Processing

This chapter describes issues associated with Oracle Complex Event Processing (Oracle CEP). It includes the following topics:


The issues and workarounds listed here are those that were known at the time of the product's initial release to the public. Additional issues and workarounds may have been discovered since the initial release. To view the latest known issues associated with Oracle SOA Suite, BPM Suite, and related SOA technologies, go to the Oracle Technology Network (OTN) at: http://www.oracle.com/technetwork/middleware/docs/aiasoarelnotes-196861.html.

24.1 New Features in Oracle CEP 11g Release 1 Patch Set 3 (

This version of Oracle CEP includes the following new features:

24.1.1 Annotation-Based Programming Model

In this release, you can use an annotation-based programming model to extend Oracle CEP component configuration.

See "Extending Component Configuration" in the Oracle CEP Developer's Guide for Eclipse.

24.1.2 Oracle CEP IDE for Eclipse

In this release, Oracle CEP IDE for Eclipse provides:

24.1.3 Oracle Continuous Query Language (Oracle CQL)

Oracle Continuous Query Language (Oracle CQL) is a query language based on SQL with added constructs that support streaming data. Using Oracle CQL, you can express queries on data streams to perform complex event processing (CEP) using Oracle CEP.

In this release, Oracle CQL includes:


Oracle Event Processing Language (Oracle EPL) is deprecated and superseded by Oracle CQL. Oracle EPL will be removed in a future release.

24.1.4 Tracing and Injecting Events in the Event Processing Network (EPN)

The Oracle CEP Event Inspector service and stream visualizer now let you do the following in the development environment:

  • Trace events on any HTTP pub-sub server channel

  • Trace events on any stage in the EPN on the Event Inspector service dynamic HTTP pub-sub server channel

  • Inject events to any HTTP pub-sub server channel

  • Inject events into any stage in the EPN using the Event Inspector service dynamic HTTP pub-sub server channel

For more information, see "Tracing and Injecting Events in the EPN" in the Oracle CEP Visualizer User's Guide.

24.1.5 OSGi Bundler Utility

Oracle CEP provides a bundler.sh utility that lets you create an OSGi bundle wrapper around an arbitrary Java Archive. You can deploy the resultant bundle JAR to an OSGi container where the Java packages/classes found within the bundle may be imported and used by other deployed bundles.

For more information, see "Creating Application Libraries" in the Oracle CEP Developer's Guide for Eclipse.

24.1.6 Domain Directory Structure Changes

In this release, by default, the complete installation does not include the default ocep_domain domain (with default passwords) and the product samples. If you want to install the default ocep_domain domain and samples (recommended), choose the Custom option.


24.2 General Issues and Workarounds

This section describes general issues and workarounds. It includes the following topics:

24.2.1 Use of ha-buffered and ha-buffered-adapter is Deprecated

When configuring a high-availability application, use welvs:adapter attribute provider value ha-buffering (not ha-buffered) and component configuration file element ha:ha-buffering-adapter (not ha:ha-buffered-adapter). The use of ha-buffered and ha:ha-buffered-adapter is deprecated.

24.2.2 HA Adapters Do Not Support Event Recording and Playback

This release does not support configuring HA adapters for event recording and playback. Ordinarily, you can configure adapters (along with other parts of your event processing network) to persist events to a data store for later playback. Due to an issue in this release, HA adapters — which help ensure consistency in applications configured for high availability — do not support event recording and playback.

24.2.3 Covariance Not Supported in Event Accessor Methods

Implementing a property getter to narrow its return type will break event binding for the setter. The property value will not be set. For example, event binding will break if the getter is declared as returning an Object in an interface that the event implements, but the method in your event implementation class returns some other type.

More broadly, neither covariance (narrowing return types in implementation) nor variable arguments are supported in event accessor methods.

24.2.4 wlevsshell.jar Manifest Contains Outdated Version Library Numbers

The wlevsshell.jar file installed with Oracle CEP contains a manifest file that lists libraries with outdated version numbers. For example, in several cases, a JAR file name is appended with a version number such as, where the number should instead be


wlevsshell.jar provides the command-line shell for the Oracle Event Processing Language (Oracle EPL), which is deprecated and superceded by the Oracle Continuous Query Language; Oracle EPL will be removed in a future release.

To work around this, you can use the following lines to replace corresponding lines in the manifest file. Note that the text following each attribute, such as "Import-Package" and "Class-Path", should be on its own line in the manifest file; the lines are broken here for readability.

Export-Package: com.bea.wlevs.eplshell;version=""
Import-Package: bsh,com.bea.wlevs.ede.api;version="",
Bundle-Name: com.bea.wlevs.eplshell
Bundle-Description: WLEvS EPL Shell
Bundle-SymbolicName: com.bea.wlevs.eplshell
Class-Path: ../modules/com.bea.wlevs.ede.api_11.1.1.4_0.jar

24.2.5 Eclipse IDE Erroneously Displays Compilation Error for Some Java Method Calls from Oracle CQL Code

Due to a limitation in the Eclipse IDE, Oracle CQL calls to some Java methods might generate compilation errors in the IDE even though the calls are valid at run time.

Using the Java data cartridge included with Oracle CEP, you can write Oracle CQL queries that call methods of your Java classes. As part of this support, at run time the Oracle CQL query processor will, if necessary, automatically convert a method argument given in CQL between the argument type's Java wrapper class and its corresponding primitive type (known in Java as "boxing" or "unboxing"); however, the Eclipse IDE will display a compilation error where your code assumes this run-time conversion. For example, given a method whose signature is fooMethod(int), a CQL call of fooMethod(Integer) will generate a compilation error in the IDE, but succeed at run time.

You can work around this limitation by compiling your code using an Ant build file rather than using the IDE.

24.2.6 Incorrect Documentation URL in Start Menu

Included per bug 11060308.

The Windows Start menu item created for Oracle Complex Event Processing includes an incorrect link to documentation. By default, if you click the Start menu, then Oracle Complex Event Processing 11gR1, then Documentation, you'll see an error message (the browser displays an error 404). You can work around this limitation by entering the correct URL directly into your browser's address bar. The correct URL is http://download.oracle.com/docs/cd/E17904_01/soa.htm.

24.2.7 Incorrect Copyright Date on Oracle CEP Configuration Wizard Splash Screen

Included per bug 10629987.

When you launch the Oracle Complex Event Processing Configuration Wizard, its splash screen displays an outdated copyright date. The copyright text should read as follows:

Copyright © 1996, 2011 Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

24.3 Configuration Issues and Workarounds

This section describes configuration issues and their workarounds. It includes the following topics:

24.3.1 Avoid Identifiers that Match Windows Reserved File Names

When defining or uploading Oracle CQL rules, Oracle CEP server log files, or Event Processing Network (EPN) stages, do not use identifiers that match Windows reserved file names. Doing so may prevent normal Oracle CEP operation.

For more information, see Naming Files, Paths, and Namespaces at http://msdn.microsoft.com/en-us/library/Aa365247.

24.3.2 Some Visualizer Fields Might Not Be Recognized in Full Screen Mode

When you're creating a query with the Query Wizard in the Oracle CEP Visualizer, some fields might not be recognized in full-screen mode. This is due to a known issue with the Flash technology on which the Oracle CEP Visualizer is based. Here's an excerpt from the Abobe web site:

"Flash Player 9 does not allow keyboard input when displaying content in full-screen mode. Flash Player 10 changes this, allowing for a limited number of keys to be usable in full-screen mode. These include Tab, the Spacebar, and the (up, down, left, right) arrow keys."

For example, using Flash Player 9, imagine the following scenario: You view the Query Wizard tab in full screen mode (by clicking the Maximize panel button in the upper-right corner), then double-click the Window construct to display the Window editor dialog. In full screen mode, you might be unable to specify the Time window type without prompting an error message when you try to add the window.

24.3.3 Garbled Dialog Text on Non-English Versions of Windows

If you're using the graphical installer to install Oracle CEP on a non-English version of Windows, you might see garbled text for non-English words in the user interface. For example, Select and Cancel buttons on browse dialog boxes — such as for selecting a middleware home directory, CEP installation directory or JDK home directory — can display garbled text.

On a related note, you will also be unable to choose a directory name that contains multibyte characters for your middleware home directory (the dialog box will display an error message).

24.4 Documentation Errata

This section describes documentation errata. It includes the following topics:

24.4.1 Use char[] Rather than [C to Specify a Character Array

As of this version, in the EPN assembly file, you should use char[] rather than [C to indicate that an event property's type is a character array. The [C expression will prevent compilation in the Eclipse IDE. Note that examples in the documentation currently use the older, incorrect type name:

    <!-- Incorrect - will prevent compilation! --> 
    <wlevs:property name="symbol" type="[C" length="16" /> 
    <!-- Correct. --> 
    <wlevs:property name="symbol" type="char[]" length="16" />