Oracle Fusion Middleware Getting Started Guide for Oracle Complex Event Processing 11g Release 1 (11.1.1.6.0)

11g Release 1 (11.1.1.6.0)

E14476-06

Contents

List of Examples

List of Figures

List of Tables

Title and Copyright Information

Preface

- Audience

- Documentation Accessibility

- Related Documents

- Conventions

1 Overview of Oracle CEP

- 1.1 Introduction to Oracle Complex Event Processing

- 1.2 Conceptual Overview of Oracle CEP

- 1.3 Event Processing Networks

- 1.4 Use Cases

- 1.5 Summary of Oracle CEP Features

- 1.6 Supported Platforms

- 1.7 Oracle CEP IDE for Eclipse

- 1.8 Oracle CEP Visualizer

- 1.9 Next Steps

2 Oracle CEP Samples

- 2.1 Overview of the Samples Provided in the Distribution Kit

- 2.1.1 Ready-to-Run Samples

- 2.1.2 Sample Source

- 2.2 Installing the Default ocep_domain and Samples

- 2.3 Using Oracle CEP Visualizer With the Samples

- 2.4 Increasing the Performance of the Samples

- 2.5 Setting Your Development Environment

- 2.5.1 How to Set Your Development Environment on Windows

- 2.5.2 How to Set Your Development Environment on UNIX

- 2.6 HelloWorld Example

- 2.6.1 Running the HelloWorld Example from the helloworld Domain

- 2.6.2 Building and Deploying the HelloWorld Example from the Source Directory

- 2.6.3 Description of the Ant Targets to Build Hello World

- 2.6.4 Implementation of the HelloWorld Example

- 2.6.5 The HelloWorld EPN Assembly File

- 2.6.6 The HelloWorld Component Configuration File

- 2.7 Oracle Continuous Query Language (CQL) Example

- 2.7.1 Running the CQL Example

- 2.7.2 Building and Deploying the CQL Example

- 2.7.3 Description of the Ant Targets to Build the CQL Example

- 2.7.4 Implementation of the CQL Example

- 2.7.4.1 Creating the Missing Event Query

- 2.7.4.2 Creating the Moving Average Query

- 2.8 Oracle Spatial Example

- 2.8.1 Running the Oracle Spatial Example

- 2.8.2 Building and Deploying the Oracle Spatial Example

- 2.8.3 Description of the Ant Targets to Build the Oracle Spatial Example

- 2.8.4 Implementation of the Oracle Spatial Example

- 2.8.5 Oracle Spatial Example EPN Assembly File

- 2.8.6 Oracle Spatial Example Component Configuration File

- 2.9 Foreign Exchange (FX) Example

- 2.9.1 Running the Foreign Exchange Example

- 2.9.2 Building and Deploying the Foreign Exchange Example from the Source Directory

- 2.9.3 Description of the Ant Targets to Build FX

- 2.9.4 Implementation of the FX Example

- 2.9.5 The FX EPN Assembly File

- 2.9.6 The FX Processor Component Configuration Files

- 2.9.6.1 FX Processor Component Configuration File: spreader.xml

- 2.9.6.2 FX Processor Component Configuration File: SummarizeResults.xml

- 2.10 Signal Generation Example

- 2.10.1 Running the Signal Generation Example

- 2.10.2 Building and Deploying the Signal Generation Example from the Source Directory

- 2.10.3 Description of the Ant Targets to Build Signal Generation

- 2.10.4 Implementation of the Signal Generation Example

- 2.10.5 The Signal Generation EPN Assembly File

- 2.10.6 The Signal Generation Component Configuration Files

- 2.11 Event Record and Playback Example

- 2.11.1 Running the Event Record/Playback Example

- 2.11.2 Building and Deploying the Event Record/Playback Example from the Source Directory

- 2.11.3 Description of the Ant Targets to Build the Record and Playback Example

- 2.11.4 Implementation of the Record and Playback Example

3 Installing Oracle CEP

- 3.1 Installation Overview

- 3.1.1 Before You Start the Installation Program

- 3.1.2 Choosing Your JVM

- 3.1.2.1 Oracle JRockit Real Time

- 3.1.2.2 Sun JVM

- 3.1.2.3 Other Platform-Specific JVMs

- 3.1.3 Default Oracle CEP Domain ocep_domain and Samples

- 3.1.4 Oracle Fusion Middleware Directory Structure and Concepts

- 3.1.4.1 Oracle CEP-Specific Middleware Home

- 3.1.4.2 Existing Oracle Fusion Middleware Home

- 3.1.5 Installation Mode

- 3.1.5.1 Graphical Mode

- 3.1.5.2 Console Mode

- 3.1.5.3 Silent Mode

- 3.2 Installing Oracle CEP in Graphical Mode

- 3.3 Installing Oracle CEP in Console Mode

- 3.4 Installing Oracle CEP in Silent Mode

- 3.4.1 Creating a silent.xml File for Silent-Mode Installation

- 3.4.2 Guidelines for Component Selection

- 3.4.3 Returning Exit Codes to the Command Window

- 3.5 Installing an Oracle CEP Patch

- 3.6 Post-Installation Steps

- 3.6.1 Configuring Oracle CEP for the IBM JDK

- 3.6.1.1 How to Configure Oracle CEP for the IBM JVM on IBM AIX (64-bit)

- 3.7 Installing the Oracle CEP IDE for Eclipse

- 3.8 Upgrading to Oracle CEP 11g Release 1 (11.1.1.6.0)

- 3.8.1 Upgrading a WebLogic Event Server 2.0 Domain to Oracle CEP 10.3

- 3.8.2 Upgrading an Oracle CEP 10.3 Domain to Oracle CEP 11g Release 1 (11.1.1.6.0)

- 3.8.3 Upgrading a WebLogic Event Server 2.0 Application to Run on Oracle CEP 10.3

- 3.8.4 Upgrading an Oracle CEP 10.3 Application to Run on Oracle CEP 11g Release 1 (11.1.1.6.0)

- 3.8.5 Backward Compatibility Issues

Glossary

Index

List of Examples

- 2-1 HelloWorld EPN Assembly File

- 2-2 HelloWorld Component Configuration File

- 2-3 Oracle Spatial Example EPN Assembly File

- 2-4 Oracle Spatial Example Component Configuration File

- 2-5 FX EPN Assembly File

- 2-6 Nested Component Definition

- 2-7 FX Processor Component Configuration File: spreader.xml

- 2-8 FX Processor Component Configuration File: SummarizeResults.xml

- 2-9 Signal Generation EPN Assembly File

- 2-10 Signal Generation Component Configuration File

- 2-11 recplay Application Configuration File config.xml: adapter Element

- 3-1 Sample silent.xml File for Silent-Mode Installation

- 3-2 Sample Windows Command File Displaying Silent-Mode Exit Codes

- 3-3 Adapter Using loadgen Provider

- 3-4 Registering a StockTick Event

- 3-5 Spring-DM Declared Adapter Factory

- 3-6 wlevs:factory

List of Figures

- 1-1 Example Event -Driven System

- 1-2 Oracle CEP Application

- 1-3 Oracle CEP IDE for Eclipse

- 1-4 Oracle CEP Visualizer

- 2-1 The HelloWorld Example Event Processing Network

- 2-2 The CQL Example Event Processing Network

- 2-3 Oracle CEP Visualizer Logon Screen

- 2-4 Oracle CEP Visualizer Dashboard

- 2-5 CQL Application Screen: General Tab

- 2-6 CQL Application: Event Processing Network Tab

- 2-7 Oracle CQL Processor: General Tab

- 2-8 Oracle CQL Processor: Query Wizard Tab

- 2-9 Template Tab

- 2-10 SSource Configuration Dialog

- 2-11 Pattern Configuration Dialog: Pattern Tab

- 2-12 Pattern Configuration Dialog: Define Tab

- 2-13 Expression Builder: CustOrder

- 2-14 Pattern Configuration Dialog: Define Tab With CustOrder Condition

- 2-15 Expression Builder: NoApproval

- 2-16 Expression Builder: Shipment

- 2-17 Pattern Configuration Dialog: Define Tab Complete

- 2-18 Measure Tab

- 2-19 Expression Builder: orderid

- 2-20 Expression Builder: amount

- 2-21 Measure Tab: Complete

- 2-22 Select Configuration Dialog: Project Tab

- 2-23 Select Configuration Dialog: Project Tab Complete

- 2-24 Output Configuration Dialog

- 2-25 Inject Rule Confirmation Dialog

- 2-26 CQL Rules Tab With Tracking Query

- 2-27 Stream Visualizer: Showing Missing Events

- 2-28 Oracle CEP Visualizer Logon Screen

- 2-29 Oracle CEP Visualizer Dashboard

- 2-30 CQL Application Screen: General Tab

- 2-31 CQL Application: Event Processing Network Tab

- 2-32 Oracle CQL Processor: General Tab

- 2-33 Oracle CQL Processor: Query Wizard Tab

- 2-34 Query Wizard: SSource

- 2-35 SSource Configuration Dialog

- 2-36 Query Wizard: Filter

- 2-37 Connecting the SSource and Filter Icons

- 2-38 Filter Configuration Dialog

- 2-39 Filter Expression Builder

- 2-40 Filter Configuration Dialog: After Adding the Filter

- 2-41 Query Wizard: Select

- 2-42 Select Configuration Dialog: Properties Selected

- 2-43 Query Wizard: Output

- 2-44 Output Configuration Dialog

- 2-45 Inject Rule Confirmation Dialog

- 2-46 CQL Rules Tab With View StockVolGt1000

- 2-47 Oracle CEP Visualizer Logon Screen

- 2-48 Oracle CEP Visualizer Dashboard

- 2-49 CQL Application Screen: General Tab

- 2-50 CQL Application: Event Processing Network Tab

- 2-51 Oracle CQL Processor: General Tab

- 2-52 Oracle CQL Processor: Query Wizard Tab

- 2-53 Query Wizard: SSource for Moving Average Query

- 2-54 SSource Configuration Dialog: Moving Average Query

- 2-55 Query Wizard: Window for Moving Average Query

- 2-56 Window Configuration Dialog: After Adding Window

- 2-57 Query Wizard: Select for Moving Average Query

- 2-58 Select Configuration Dialog: Source Property symbol Selected

- 2-59 Select Configuration Dialog: Source Property symbol Mapped to Output Event Property

- 2-60 Select Configuration Dialog: Source Property price Selected

- 2-61 Expression Builder: Applying the AVG Function

- 2-62 Select Configuration Dialog: With Expression

- 2-63 Select Configuration Dialog: Source Property price Mapped to Output Event Property

- 2-64 Validation Error: GROUP BY

- 2-65 Group Tab: With symbol Grouping Property

- 2-66 Query Wizard: Output

- 2-67 Output Configuration Dialog

- 2-68 Inject Rule Confirmation Dialog

- 2-69 CQL Rules Tab With View MovingAverage

- 2-70 Stream Visualizer: Showing Moving Average Query Output

- 2-71 Oracle Spatial Example Event Processing Network

- 2-72 Oracle Spatial Web Page

- 2-73 Oracle Spatial Web Page: Bus Stop Arrivals Tab

- 2-74 Oracle Spatial Web Page: Bus Tracking

- 2-75 FX Example Event Processing Network

- 2-76 The Signal Generation Example Event Processing Network

- 2-77 Signal Generation Dashboard

- 2-78 The Event Record and Playback Example Event Processing Network

- 2-79 Oracle CEP Visualizer Logon Screen

- 2-80 Oracle CEP Visualizer Dashboard

- 2-81 Event Record Tab

- 2-82 Start Recording Alert Dialog

- 2-83 Event Playback Tab

- 2-84 Start Playback Alert Dialog

- 2-85 Stream Visualizer

- 3-1 Oracle CEP-Specific Middleware Home

- 3-2 Oracle CEP in an Existing Oracle Fusion Middleware Home

List of Tables

- 2-1 Valid Order Workflow

- 2-2 Invalid Order Workflow

- 2-3 MATCH_RECOGNIZE Pattern Quantifiers

- 2-4 Condition Definitions

- 3-1 Home Directories and Oracle CEP-Specific Middleware Home

- 3-2 Home Directories and Existing Middleware Home

- 3-3 Values for the silent.xml File

- 3-4 Exit Codes

- 3-5 Upgrade Paths

Oracle® Fusion Middleware

Getting Started Guide for Oracle Complex Event Processing

11g Release 1 (11.1.1.6.0)

E14476-06

November 2011

Documentation for administrators and developers that describes how to get started with Oracle Complex Event Processing (Oracle CEP), a Java server for developing high-performance event-driven applications. It includes an overview of features and concepts, sample applications, and installation guidelines.

Oracle Fusion Middleware Getting Started Guide for Oracle Complex Event Processing 11g Release 1 (11.1.1.6.0)

E14476-06

Copyright © 2007, 2011, Oracle and/or its affiliates. All rights reserved.

Primary Author: Peter Purich

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Preface

This document provides general background information and detailed code samples to help you learn about Oracle Complex Event Processing (Oracle CEP) and the Oracle Continuous Query Language (Oracle CQL).

Audience

This document is intended for users interested in learning about Oracle CEP and Oracle CQL. Readers should be familiar with basic Java development. Some knowledge of SQL would be helpful.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Accessibility of Code Examples in Documentation

Screen readers may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, some screen readers may not always read a line of text that consists solely of a bracket or brace.

Accessibility of Links to External Web Sites in Documentation

This documentation may contain links to Web sites of other companies or organizations that Oracle does not own or control. Oracle neither evaluates nor makes any representations regarding the accessibility of these Web sites.

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Related Documents

For more information, see the following:

- Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing

- Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse

- Oracle Fusion Middleware Visualizer User's Guide for Oracle Complex Event Processing

- Oracle Fusion Middleware Java API Reference for Oracle Complex Event Processing

- Oracle Fusion Middleware CQL Language Reference for Oracle Complex Event Processing

- Oracle Fusion Middleware EPL Language Reference for Oracle Complex Event Processing

- Oracle Database SQL Language Reference at http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/toc.htm

- SQL99 Specifications (ISO/IEC 9075-1:1999, ISO/IEC 9075-2:1999, ISO/IEC 9075-3:1999, and ISO/IEC 9075-4:1999)

- Oracle CEP Forum: http://forums.oracle.com/forums/forum.jspa?forumID=820

- Oracle CEP Samples: http://www.oracle.com/technologies/soa/complex-event-processing.html

- Oracle Event Driven Architecture Suite sample code: http://www.oracle.com/technology/sample_code/products/event-driven-architecture

Conventions

The following text conventions are used in this document:

Convention

Meaning

boldface

Boldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary.

italic

Italic type indicates book titles, emphasis, or placeholder variables for which you supply particular values.

monospace

Monospace type indicates commands within a paragraph, URLs, code in examples, text that appears on the screen, or text that you enter.

1 Overview of Oracle CEP

This chapter provides an overview of Oracle Complex Event Processing (Oracle CEP). It describes key concepts, features, and use cases, including event processing networks, developing with the Eclipse IDE, and managing applications with Oracle CEP Visualizer.

- Section 1.1, "Introduction to Oracle Complex Event Processing"

- Section 1.2, "Conceptual Overview of Oracle CEP"

- Section 1.3, "Event Processing Networks"

- Section 1.4, "Use Cases"

- Section 1.5, "Summary of Oracle CEP Features"

- Section 1.6, "Supported Platforms"

- Section 1.7, "Oracle CEP IDE for Eclipse"

- Section 1.8, "Oracle CEP Visualizer"

- Section 1.9, "Next Steps"

1.1 Introduction to Oracle Complex Event Processing

Oracle CEP (formally known as the WebLogic Event Server) is a Java server for the development and deployment of high-performance event driven applications. It is a lightweight Java application container based on Equinox OSGi, with shared services, including the Oracle CEP Service Engine, which provides a rich, declarative environment based on Oracle Continuous Query Language (Oracle CQL) - a query language based on SQL with added constructs that support streaming data - to improve the efficiency and effectiveness of managing business operations. Oracle CEP supports ultra-high throughput and microsecond latency using JRockit Real Time and provides Oracle CEP Visualizer and Oracle CEP IDE for Eclipse developer tooling for a complete real time end-to-end Java Event-Driven Architecture (EDA) development platform.

Oracle CEP has the capability of deploying user Java code (POJOs) which contain the business logic. Running the business logic within Oracle CEP provides a highly tuned framework for time and event driven applications.

1.2 Conceptual Overview of Oracle CEP

Figure 1-1 provides a high level view of an event-driven system.

Figure 1-1 Example Event -Driven System

An event-driven system is generally comprised of several event sources, the real-time event-driven applications, and event sinks. Oracle CEP server and the Oracle CEP applications you deploy to it comprises the event-driven applications. The event sources generate streams of ordinary event data. The Oracle CEP applications listen to the event streams, process these events, and generate notable events. Event sinks receive the notable events.

Event sources, event-driven applications, and event sinks are decoupled from each other; one can add or remove any of these components without causing changes to the other components. This is a key attribute of event-driven architectures.

Event-driven applications are rule-driven. In Oracle CEP, rules are expressed as queries using the Oracle Continuous Query Language (Oracle CQL). These queries are persisted to a data store and are used for processing the inbound stream of events and generating the outbound stream of events. Queries typically perform filtering and aggregation functions to discover and extract notable events from the inbound event streams. As a result, the number of outbound events is generally much lower than that of the inbound events.

Oracle CEP is a middleware for the development of event-driven applications. An Oracle CEP application is essentially an event-driven application.

Next, consider the application itself, which is hosted by the Oracle CEP server, a light-weight container as shown in Figure 1-2.

Figure 1-2 Oracle CEP Application

An Oracle CEP application is typically composed of the following main component types:

- Adapters interface directly to the inbound and outbound stream and relation sources and sinks. Adapters understand the inbound and outbound protocol, and are responsible for converting the event data into a normalized form that can be queried by a processor. Adapters forward the normalized event data into channels or outbound stream and relation sinks.

- Channels are event processing endpoints. Among other things, streams are responsible for queuing event data until the event processing agent can act upon it.

- Processors (or event processing agents) consume normalized event data from a channel, process it using queries, and may generate new events to an output channel.

- Beans register to listen to the output channel, and are triggered by the insertion of a new event into the output channel. This user code is generally a plain-old-Java-object (POJO). The user application makes use of a set of external services, such as JMS, Web services, and file writers, to forward the generated events to external event sinks.

- Event Beans register to listen to the output channel, and is triggered by the insertion of a new event into the output channel. This user code uses the Oracle CEP event bean API so that the bean can be managed by Oracle CEP.

1.3 Event Processing Networks

Adapters, channels, processors, and business logic POJOs can be connected arbitrarily to each other, forming event processing networks (EPN). Examples of topologies of EPNs are:

- Adapter - Channel - Business Logic POJO
Scenario: no processing is needed; only adaptation from proprietary protocol to some normalized model.

- Adapter - Channel - Processor - Channel - Business Logic POJO
Scenario: straight through processing to user code.

- Adapter - Channel - Processor - Channel - Business Logic POJO - Channel - Processor - Channel - Business Logic POJO
Scenario: two layers of event processing; the first processor creates causality between events and the second processor aggregates events into complex (notable) events.

EPNs have two important attributes:

- Event processing networks can be used to create a hierarchy of processing agents, and thus achieve very complex processing of events. Each layer of the EPN aggregates events of its layer into complex events that become simple events in the layer above it.

- Event processing networks improve integrability, that is, the quality of having separately developed components work correctly together. For example, one can add user code and reference to external services at several places in the network.

1.4 Use Cases

The use cases for Oracle CEP span a variety of businesses and applications. Just a few of these diverse use cases include:

- Financial: Algorithmic Trading
Automate stock trading based on market movement. Sample query: if, within any 20 second window, StockB rises by more than 2% and StockA does not, then automatically buy StockA.

For an example, see Section 2.10, "Signal Generation Example".

- Transportation: Security and Fraud Detection
Discover fraudulent activity by detecting patterns among events. Sample query: if a single ID card is used twice in less than 5 seconds to gain access to a city's subway system, alert security for piggybacking.

- Energy and Telecommunications: Alarm Correlation
Reduce false positive alarms. Sample query: When 15 alarms are received within any 5 second window, but less than 5 similar alarms detected within 30 seconds, then do nothing.

- Health Care: Patient Monitoring
Monitor the vital signs of a patient and perform some task if a particular event happens. Sample query: When a change in medication is followed by a rise in blood pressure within 20% of maximum allowable for this patient within any 10 second window, alert nearest nurse.

1.5 Summary of Oracle CEP Features

The following list summarizes the main features of Oracle CEP:

- New in 11g Release 1 (11.1.1): 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. Oracle CQL is scalable and comprehensive. It provides a wide range of operators (including extensive window operators), functions (including built-in, Colt, and java.lang.Math functions), and statements. Oracle CQL supersedes EPL.

- New in 11g Release 1 (11.1.1): Support for Coherence clustering and distributed cache.

- New in 11g Release 1 (11.1.1): Oracle CEP Visualizer query constructor, query plan generator, and support for Coherence clustering and distributed cache.

- Event Caching—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.

- Event Record and Playback—The event repository feature of Oracle CEP allows you to record events flowing through an EPN and store them so you can later play back the events.

- Built-in HTTP Publish-Subscribe Adapters—The three built-in HTTP publish-subscribe adapters allow an application to easily to publish (locally and remotely) and subscribe to an HTTP publish-subscribe server channel.

- Built-in JMS Adapters—The two JMS adapters (inbound and outbound) allow you to send and receive messages to and from a JMS queue, respectively, from your application without writing any Java code

- Oracle CEP Visualizer—A Web 2.0 application that consumes data Oracle CEP, displays it in a useful and intuitive way to system administrators and operators, and, for specified tasks, accepts data that is then passed back to Oracle CEP so as to change it configuration

- Multi-server domains (sometimes referred to as clustering)—Oracle CEP now allows multiple servers to be logically connected together for the purposes of management, and physically connected using a shared User Datagram Protocol (UDP) multicast address and port.

- An application server that supports deployment of Plain Old Java applications (POJOs), or Spring applications, for handling large volumes of streaming data with low latency requirements.

- Oracle CEP applications are developed and deployed as event driven applications, that is, a set of custom Spring tags is used to define the event processing network in the EPN assembly file, which extends the standard Spring context file, of your application.

- The application server contains a set of real time services that include a complex event processor (CEP), adapters, and streams. The server is highly tuned for high message throughput and low latency and deterministic behavior.

- The complex event processor is a high performance, continuous query engine for processing high volumes of streaming data. It has full support for filtering, correlation, and aggregation of streaming data from one or more streams.

- The Event Processing Language (EPL), an SQL-like language that allows event data from streams to be declaratively filtered, correlated, aggregated, and merged, with the ability to insert results into other streams for further downstream processing. You define the EPL rules either in an XML file that configures the complex event processor or programmatically using APIs. Oracle CQL supersedes EPL.

- An Adapter SDK that provides all the tools you need to create adapters that listen to incoming data feeds.

- A set of product samples that show both a simple Hello World scenario to get you started and more complex foreign exchange and algorithmic trading scenarios to showcase additional features of Oracle CEP.

- A load generator utility that simulates a data feed, useful for testing your application without needing to connect to a live data feed.

- A monitoring service that includes pre-built instrumentation for measuring throughput and latency at the component level.

- A static and dynamic configuration framework. Static configuration is performed using XML files; dynamic configuration is performed by accessing configuration and runtime MBeans using JMX and with the command-line utility wlevs.Admin.

- Oracle CEP is built on the Oracle microServices Architecture (mSA) which uses an OSGi-based framework to manage services provided by modules or feature sets. Oracle mSA provides the following services:

- Jetty, an HTTP container for running servlets.

- javax.sql.DataSource implementation and thin JDBC drivers for accessing a relational database.

- Logging and debugging.

- Authentication and authorization security.

1.6 Supported Platforms

For detailed information on the platforms that Oracle CEP supports, see: http://www.oracle.com/technology/software/products/ias/files/oracle%20fusion%20middleware%2011gR1%20(11.1.1.x)%20certification%20matrix.xls.

You can find the installation program appropriate for your platform here: http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html. For more information, see Section 3.1, "Installation Overview".

1.7 Oracle CEP IDE for Eclipse

Oracle CEP IDE for Eclipse is targeted specifically to programmers that want to develop Oracle CEP applications as Figure 1-3 shows.

Figure 1-3 Oracle CEP IDE for Eclipse

The Oracle CEP IDE for Eclipse is a set of plugins for the Eclipse IDE designed to help develop, deploy, and debug Oracle CEP applications.

The key features of Oracle CEP IDE for Eclipse are:

- Project creation wizards and templates to quickly get started building event driven applications.

- Advanced editors for source files including Java and XML files common to Oracle CEP applications.

- Integrated server management to seamlessly start, stop, and deploy to Oracle CEP server instances all from within the IDE.

- Integrated debugging.

- Event Processing Network (EPN) visual design views for orienting and navigating in event processing applications.

- Integrated support for the Oracle CEP Visualizer so you can use the Oracle CEP Visualizer from within the IDE (see Section 1.8, "Oracle CEP Visualizer").

For more information, see:

- Section 3.7, "Installing the Oracle CEP IDE for Eclipse"

- Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse

- http://www.oracle.com/technology/products/event-driven-architecture/cep-ide/11/index.html

1.8 Oracle CEP Visualizer

Oracle CEP provides an advanced run-time administration console called the Oracle CEP Visualizer as Figure 1-4 shows.

Figure 1-4 Oracle CEP Visualizer

Using Oracle CEP Visualizer, you can manage, tune, and monitor Oracle CEP server domains and the Oracle CEP applications you deploy to them all from a browser. Oracle CEP Visualizer provides a variety of sophisticated run-time administration tools, including support for Oracle CQL and EPL rule maintenance and creation.

Oracle CEP Visualizer is pre-installed in every Oracle CEP server.

For more information, see Oracle Fusion Middleware Visualizer User's Guide for Oracle Complex Event Processing

1.9 Next Steps

- Install Oracle CEP 11g Release 1 (11.1.1).
See Chapter 3, "Installing Oracle CEP."

- Run the samples from their respective domains.
See:

- Section 2.1, "Overview of the Samples Provided in the Distribution Kit"

- Section 2.6.1, "Running the HelloWorld Example from the helloworld Domain"

- Section 2.9.1, "Running the Foreign Exchange Example"

- Section 2.10.1, "Running the Signal Generation Example"

- Section 2.11.1, "Running the Event Record/Playback Example"

- Section 2.7.1, "Running the CQL Example"

- Understand how the sample applications have been programmed by viewing the source and configuration files and then building them from their respective source directories.
See:

- Section 2.6.2, "Building and Deploying the HelloWorld Example from the Source Directory"

- Section 2.9.2, "Building and Deploying the Foreign Exchange Example from the Source Directory"

- Section 2.10.2, "Building and Deploying the Signal Generation Example from the Source Directory"

- Create your own Oracle CEP domain.
See:

- "Creating an Oracle CEP Standalone-Server Domain" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing

- "Creating an Oracle CEP Multi-Server Domain" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing

- Create a new Oracle CEP application and deploy it to your new domain.
See "Overview of Creating Oracle CEP Applications" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

- Pose questions and find solutions using the Oracle CEP forum: http://forums.oracle.com/forums/forum.jspa?forumID=820

2 Oracle CEP Samples

This chapter introduces sample code provided with Oracle Complex Event Processing (Oracle CEP), describing how to set up and use code ranging from simple "Hello World" to applications of Oracle Continuous Query Language (CQL), as well as for spatial and industry-focused scenarios.

- Section 2.1, "Overview of the Samples Provided in the Distribution Kit"

- Section 2.2, "Installing the Default ocep_domain and Samples"

- Section 2.3, "Using Oracle CEP Visualizer With the Samples"

- Section 2.4, "Increasing the Performance of the Samples"

- Section 2.5, "Setting Your Development Environment"

- Section 2.6, "HelloWorld Example"

- Section 2.7, "Oracle Continuous Query Language (CQL) Example"

- Section 2.8, "Oracle Spatial Example"

- Section 2.9, "Foreign Exchange (FX) Example"

- Section 2.10, "Signal Generation Example"

- Section 2.11, "Event Record and Playback Example"

2.1 Overview of the Samples Provided in the Distribution Kit

Oracle CEP includes the following samples:

- HelloWorld: a basic skeleton of a typical Oracle CEP application.

- Oracle Continuous Query Language (CQL): an example that shows how to use the Oracle CEP Visualizer Query Wizard to construct various Oracle CQL queries to process event streams.

- Oracle Spatial: an example that shows how to use Oracle Spatial with Oracle CQL queries to process a stream of Global Positioning System (GPS) events to track the GPS location of buses and generate alerts when a bus arrives at its pre-determined bus stop positions.

- Foreign Exchange (FX): a complete example that includes multiple components.

- Signal Generation: an example that simulates market trading and trend detection.

- Event record and playback: an example that shows how to configure event record and playback using a persistent event store.

These samples are provided in two forms, as follows:

- Section 2.1.1, "Ready-to-Run Samples"

- Section 2.1.2, "Sample Source"

The samples use Ant as their development tool; for details about Ant and installing it on your computer, see http://ant.apache.org/.

Note:

"Additional Oracle CEP sample code can be found at http://www.oracle.com/technology/sample_code/products/event-driven-architecture".

2.1.1 Ready-to-Run Samples

Out-of-the-box sample domains pre-configured to deploy an assembled application; each sample has its own domain for simplicity. Each domain is a standalone server domain; the server files are located in the defaultserver subdirectory of the domain directory. To deploy the application you simply start the default server in the domain.

- The sample HelloWorld domain is located in \MIDDLEWARE_HOME\ocep_11.1\samples\domains\helloworld_domain, where MIDDLEWARE_HOME refers to the Middleware directory you specified when you installed Oracle CEP, such as d:\Oracle\Middleware.
See Section 2.6.1, "Running the HelloWorld Example from the helloworld Domain" for details.

- The sample CQL domain is located in MIDDLEWARE_HOME\ocep_11.1\samples\domains\cql_domain.
See Section 2.7.1, "Running the CQL Example" for details.

- The sample Oracle Spatial domain is located in MIDDLEWARE_HOME\ocep_11.1\samples\domains\spatial_domain.
See Section 2.8.1, "Running the Oracle Spatial Example" for details.

- The sample Foreign Exchange domain is located in MIDDLEWARE_HOME\ocep_11.1\samples\domains\fx_domain.
See Section 2.9.1, "Running the Foreign Exchange Example" for details.

- The sample Signal Generation domain is located in MIDDLEWARE_HOME\ocep_11.1\samples\domains\signalgeneration_domain.
See Section 2.10.1, "Running the Signal Generation Example" for details.

- The sample Record and Playback domain is located in MIDDLEWARE_HOME\ocep_11.1\samples\domains\recplay_domain.
See Section 2.11.1, "Running the Event Record/Playback Example" for details.

2.1.2 Sample Source

The Java and configuration XML source for each sample is provided in a separate source directory that describes a sample development environment.

- The HelloWorld source directory is located in MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\helloworld, where MIDDLEWARE_HOME refers to the Middleware directory you specified when you installed Oracle CEP, such as d:\Oracle\Middleware.
See Section 2.6.4, "Implementation of the HelloWorld Example" for details.

- The CQL source directory is located in MIDDLEWARE_HOME\ocep_11.1\\samples\source\applications\cql.
See Section 2.7.4, "Implementation of the CQL Example" for details.

- The Oracle Spatial source directory is located in MIDDLEWARE_HOME\ocep_11.1\\samples\source\applications\spatial.
See Section 2.8.4, "Implementation of the Oracle Spatial Example" for details.

- The Foreign Exchange source directory is located in MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\fx.
See Section 2.9.4, "Implementation of the FX Example" for details.

- The Signal Generation source directory is located in MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\signalgeneration.
See Section 2.10.4, "Implementation of the Signal Generation Example" for details.

- The Record and Playback source directory is located in MIDDLEWARE_HOME\ocep_11.1\\samples\source\applications\recplay.
See Section 2.11.4, "Implementation of the Record and Playback Example" for details.

2.2 Installing the Default ocep_domain and Samples

To install all Oracle CEP components including the default ocep_domain domain (with default passwords) and the samples, you must chose the Custom option to also install the samples. The Typical option does not include the default ocep_domain and samples.

If you previously installed Oracle CEP using the Typical option, and you now want to also install the samples, re-run the Oracle CEP installation process and specify the same Oracle CEP home directory; a later step in the installation process allows you to then install just the samples.

2.3 Using Oracle CEP Visualizer With the Samples

The Oracle CEP Visualizer is a Web 2.0 application that consumes data from Oracle CEP, displays it in a useful and intuitive way to system administrators and operators, and, for specified tasks, accepts data that is then passed back to Oracle CEP so as to change it configuration.

Visualizer is itself an Oracle CEP application and is automatically deployed in each server instance. To use it with the samples, be sure you have started the server (instructions provided for each sample below) and then invoke the following URL in your browser:

http://host:9002/wlevs

where host refers to the name of the computer hosting Oracle CEP; if it is the same as the computer on which the browser is running you can use localhost.

Security is disabled for the HelloWorld application, so you can click Logon at the login screen without entering a username and password. For the FX and signal generation samples, however, security is enabled, so use the following to logon:

User Id: wlevs
Password: wlevs

For more information about Visualizer, see Section 1.8, "Oracle CEP Visualizer".

2.4 Increasing the Performance of the Samples

To increase the throughput and latency when running the samples, and Oracle CEP applications in general, Oracle recommends the following:

- Use the JRockit JDK included in Oracle JRockit Real Time and enable the deterministic garbage collector by passing the -dgc parameter to the command that starts the Oracle CEP instance for the appropriate domain:

prompt> startwlevs.cmd -dgc

By default the deterministic garbage collector is disabled for the samples.

For more information on Oracle JRockit Real Time, see http://www.oracle.com/technology/products/jrockit/jrrt/index.html.

- When running Oracle CEP on a computer with a larger amount of memory, you should set the load generator and server heap sizes appropriately for the size of the computer. On computers with sufficient memory, Oracle recommend a heap size of 1 GB for the server and between 512MB - 1GB for the load generator.

2.5 Setting Your Development Environment

You must set your development environment before you can start Oracle CEP instances and run the samples. In particular, you must set the PATH and JAVA_HOME environment variables so that you are using the correct version of the JRockit JDK.

There are two ways in which JRockit might have been installed on your computer:

- As part of the Oracle JRockit Real Time installation. This version of the JRockit JDK includes the deterministic garbage collector.

- As part of the Oracle CEP 11g Release 1 (11.1.1) installation. This version of the JRockit JDK does not include the deterministic garbage collector, and is provided for testing purposes only.

Although not required, Oracle recommends that you run Oracle CEP using the JRockit JDK version included in Oracle JRockit Real Time for best results; however, the following procedures describe how to set your environment for either case.

For more information about JRockit, see Section 2.4, "Increasing the Performance of the Samples".

This section describes:

- Section 2.5.1, "How to Set Your Development Environment on Windows"

- Section 2.5.2, "How to Set Your Development Environment on UNIX"

2.5.1 How to Set Your Development Environment on Windows

This procedure describes how to set your development environment on Windows.

To make it easier to reset your development environment after logging out of a session, you can create a command file, such as setEnv.cmd, that contains the set commands this section describes.

You can also set the required environment variables permanently on your Windows computer by invoking the Control Panel > System window, clicking the Advanced tab, and then clicking the Environment Variables button. You can set the environment variables for the current user or for the entire system.

To set your development environment on Windows:

1. Update your PATH environment variable to include the bin directory of the JRockit JDK. Also, be sure that your PATH environment variable includes the bin directory of your Ant installation:

1. If using the JRockit JDK installed with Oracle JRockit Real Time:
If you installed Oracle JRockit Real Time in the d:\jrockit directory and Ant is installed in the d:\ant directory, set your PATH environment variable as shown:

prompt> set PATH=d:\jrockit\[JRRT_HOME]\bin;d:\ant\bin;%PATH%

where JRRT_HOME is the JRockit Real Time directory.

2. If using the JRockit JDK installed with Oracle CEP:
If you installed Oracle CEP in the d:\Oracle\Middleware directory and Ant is installed in the d:\ant directory, set your PATH environment variable as shown:

prompt> set PATH=d:\Oracle\Middleware\jrockit_160_20\bin;d:\ant\bin;%PATH%

2. Ensure that the JAVA_HOME variable in the setDomainEnv.cmd script points to the correct JRockit JDK. If it does not, edit the script.
The setDomainEnv.cmd script is located in the defaultserver subdirectory of the main domain directory; the defaultserver subdirectory contains the files for the standalone server of each domain. For example, the HelloWorld domain is located in MIDDLEWARE_HOME\ocep_11.1\samples\domains\helloworld_domain, where MIDDLEWARE_HOME refers to the Middleware home directory you specified when you installed Oracle CEP, such as d:\Oracle\Middleware.

1. If using the JRockit JDK installed with Oracle JRockit Real Time:
The set command should be as follows:

set JAVA_HOME=d:\jrockit\[JRRT_HOME]

where JRRT_HOME is the JRockit Real Time directory.

2. If using the JRockit JDK installed with Oracle CEP:
The set command should be as follows:

set JAVA_HOME=d:\Oracle\Middleware\jrockit_160_20

3. Set the JAVA_HOME variable in your own development environment to point to the JRockit JDK.

1. If using the JRockit JDK installed with Oracle JRockit Real Time:
The set command should be as follows:

prompt> set JAVA_HOME=d:\jrockit\[JRRT_HOME]

where JRRT_HOME is the JRockit Real Time directory.

2. If using the JRockit JDK installed with Oracle CEP:
The set command should be as follows:

prompt> set JAVA_HOME=d:\Oracle\Middleware\jrockit_160_20

2.5.2 How to Set Your Development Environment on UNIX

This procedure describes how to set your development environment on UNIX.

To make it easier to reset your development environment after logging out of a session, you can create a command file, such as setEnv.sh, that contains the set commands this section describes.

To set your development environment on UNIX:

1. Update your PATH environment variable to include the bin directory of the JRockit JDK. Also, be sure that your PATH environment variable includes the bin directory of your Ant installation.

1. If using the JRockit JDK installed with Oracle JRockit Real Time:
If you installed Oracle JRockit Real Time in the /jrockit directory and Ant is installed in the /ant directory, set your PATH environment variable as follows:

prompt> PATH=/jrockit/j[JRRT_HOME]/bin:/ant/bin:$PATH

where JRRT_HOME is the JRockit Real Time directory.

2. If using the JRockit JDK installed with Oracle CEP:
If you installed Oracle CEP in the /Oracle/Middleware directory and Ant is installed in the /ant directory, set your PATH environment variable as shown:

prompt> PATH=/Oracle/Middleware/jrockit_160_20/bin:/ant/bin:$PATH

2. Ensure that the JAVA_HOME variable in the setDomainEnv.sh script points to the correct JRockit JDK. If it does not, edit the script.
The setDomainEnv.sh script is located in the defaultserver subdirectory of the main domain directory; the defaultserver subdirectory contains the files for the standalone server of each domain. For example, the HelloWorld domain is located in MIDDLEWARE_HOME/ocep_11.1/samples/domains/helloworld_domain, where MIDDLEWARE_HOME refers to the Middleware home directory you specified when you installed Oracle CEP, such as /Oracle/Middleware.

1. If using the JRockit JDK installed with Oracle JRockit Real Time:
The JAVA_HOME variable should be set as follows:

JAVA_HOME=/jrockit/[JRRT_HOME]

where JRRT_HOME is the JRockit Real Time directory.

2. If using the JRockit JDK installed with Oracle CEP:
The JAVA_HOME variable should be set as follows:

JAVA_HOME=/Oracle/Middleware/jrockit_160_20

3. Set the JAVA_HOME variable in your development environment to point to the JRockit JDK.

1. If using the JRockit JDK installed with Oracle JRockit Real Time:
The JAVA_HOME variable should be set as follows:

prompt> JAVA_HOME=/jrockit/[JRRT_HOME]

where JRRT_HOME is the JRockit Real Time directory.

2. If using the JRockit JDK installed with Oracle CEP:
The JAVA_HOME variable should be set as follows:

prompt> JAVA_HOME=/Oracle/Middleware/jrockit_160_20

2.6 HelloWorld Example

The first example that shows how to create an Oracle CEP application is the ubiquitous HelloWorld.

Figure 2-1 shows the HelloWorld example Event Processing Network (EPN). The EPN contains the components that make up the application and how they fit together.

Figure 2-1 The HelloWorld Example Event Processing Network

The example includes the following components:

- helloworldAdapter—Component that generates Hello World messages every second. In a real-world scenario, this component would typically read a stream of data from a source, such as a data feed from a financial institution, and convert it into a stream of events that the complex event processor can understand. The HelloWorld application also includes a HelloWorldAdapterFactory that creates instances of HelloWorldAdapter.

- helloworldInputChannel—Component that streams the events generated by the adapter (in this case Hello World messages) to the complex event processor.

- helloworldProcessor—Component that simply forwards the messages from the helloworldAdapter component to the POJO that contains the business logic. In a real-world scenario, this component would typically execute additional and possibly much more complex processing of the events from the stream, such as selecting a subset of events based on a property value, grouping events, and so on using Oracle CQL.

- helloworldOutputChannel—Component that streams the events processed by the complex event processor to the POJO that contains the user-defined business logic.

- helloworldBean—POJO component that simply prints out a message every time it receives a batch of messages from the processor via the output channel. In a real-world scenario, this component would contain the business logic of the application, such as running reports on the set of events from the processor, sending appropriate emails or alerts, and so on.

2.6.1 Running the HelloWorld Example from the helloworld Domain

The HelloWorld application is pre-deployed to the helloworld domain. To run the application, you simply start an instance of Oracle CEP server.

To run the HelloWorld example from the helloworld domain:

1. Open a command window and change to the default server directory of the helloworld domain directory, located in MIDDLEWARE_HOME\ocep_11.1\samples\domains\helloworld_domain\defaultserver, where MIDDLEWARE_HOME refers to the Middleware home directory you specified when you installed Oracle CEP, such as d:\Oracle\Middleware.

prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\domains\helloworld_domain\defaultserver

2. Ensure the environment is set correctly in the server startup script.
For more information, see Section 2.5, "Setting Your Development Environment."

3. Start Oracle CEP by executing the appropriate script with the correct command line arguments:

1. On Windows:

- If you are using the JRockit JDK included in Oracle JRockit Real Time, enable the deterministic garbage collector by passing the -dgc parameter to the command:

prompt> startwlevs.cmd -dgc

- If you are not using the JRockit JDK included in Oracle JRockit Real Time:

prompt> startwlevs.cmd

2. On UNIX:

- If you are using the JRockit JDK included in Oracle JRockit Real Time, enable the deterministic garbage collector by passing the -dgc parameter to the command:

prompt> startwlevs.sh -dgc

- If you are not using the JRockit JDK included in Oracle JRockit Real Time:

prompt> startwlevs.sh

After server status messages scroll by, you should see the following message printed to the output about every second:

Message: HelloWorld - the current time is: 3:56:57 PM

This message indicates that the HelloWorld example is running correctly.

2.6.2 Building and Deploying the HelloWorld Example from the Source Directory

The HelloWorld sample source directory contains the Java source, along with other required resources such as configuration XML files, that make up the HelloWorld application. The build.xml Ant file contains targets to build and deploy the application to the helloworld domain.

For more information, see Section 2.6.3, "Description of the Ant Targets to Build Hello World".

To build and deploy the HelloWorld example from the source directory:

1. If the helloworld Oracle CEP instance is not already running, follow the procedure in Section 2.6.1, "Running the HelloWorld Example from the helloworld Domain" to start the server.
You must have a running server to successfully deploy the rebuilt application.

2. Open a new command window and change to the HelloWorld source directory, located in MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\helloworld where MIDDLEWARE_HOME is the Middleware home directory you specified when you installed Oracle CEP.
For example:

prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\source\applications\helloworld

3. Set your development environment.
For more information, see Section 2.5, "Setting Your Development Environment."

4. Execute the all Ant target to compile and create the application JAR file:

prompt> ant all

5. Execute the deploy Ant target to deploy the application JAR file to Oracle CEP:

prompt> ant -Daction=update deploy

Caution:

This target overwrites the existing helloworld application JAR file in the domain directory.

You should see the following message printed to the output about every second:

Message: HelloWorld - the current time is: 3:56:57 PM

This message indicates that the HelloWorld example has been redeployed and is running correctly.

2.6.3 Description of the Ant Targets to Build Hello World

The build.xml file, located in the top level of the HelloWorld source directory, contains the following targets to build and deploy the application:

- clean—This target removes the dist and output working directories under the current directory.

- all—This target cleans, compiles, and JARs up the application into a file called com.bea.wlevs.example.helloworld_11.1.1.4_0.jar, and places the generated JAR file into a dist directory below the current directory.

- deploy—This target deploys the JAR file to Oracle CEP using the Deployer utility.
For more information, see "Deployer Command-Line Reference" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing.

2.6.4 Implementation of the HelloWorld Example

The implementation of the HelloWorld example generally follows "Creating Oracle CEP Applications: Typical Steps" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

Refer to that section for a task-oriented procedure that describes the typical development process.

The HelloWorld example, because it is relatively simple, does not use all the components and configuration files described in the general procedure for creating an Oracle CEP application.

All the example files are located relative to the MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\helloworld directory, where MIDDLEWARE_HOME refers to the Middleware directory you specified when you installed Oracle CEP c:\Oracle\Middleware. Oracle recommends that you use this example directory setup in your own environment, although it is obviously not required.

The files used by the HelloWorld example include:

- An EPN assembly file that describes each component in the application and how all the components are connected together. The EPN assembly file extends the standard Spring context file. The file also registers the event types used in the application. You are required to include this XML file in your Oracle CEP application.
In the example, the file is called com.bea.wlevs.example.helloworld-context.xml and is located in the META-INF/spring directory.

For details, see Section 2.6.5, "The HelloWorld EPN Assembly File."

- Java source file for the helloworldAdapter component.
In the example, the file is called HelloWorldAdapter.java and is located in the src/com/bea/wlevs/adapter/example/helloworld directory.

For a detailed description of this file and how to program the adapter Java files in general, see "Extending the Oracle CEP Event Processing Network" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

- Java source file that describes the HelloWorldEvent event type.
In the example, the file is called HelloWorldEvent.java and is located in the src/com/bea/wlevs/event/example/helloworld directory.

For a detailed description of this file, as well as general information about programming event types, see "Creating the Event Types" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

- An XML file that configures the helloworldProcessor and helloworldOutputChannel components. An important part of this file is the set of EPL rules that select the set of events that the HelloWorld application processes. You are required to include a processor configuration file in your Oracle CEP application, although the adapter and channel configuration is optional.
In the example, the file is called config.xml and is located in the META-INF/wlevs directory.

For details, see Section 2.6.6, "The HelloWorld Component Configuration File."

- A Java file that implements the helloworldBean component of the application, a POJO that contains the business logic.
In the example, the file is called HelloWorldBean.java and is located in the src/com/bea/wlevs/example/helloworld directory.

For a detailed description of this file, as well as general information about programming event sinks, see "Extending the Oracle CEP Event Processing Network" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

- A MANIFEST.MF file that describes the contents of the OSGi bundle that will be deployed to Oracle CEP.
In the example, the MANIFEST.MF file is located in the META-INF directory.

For more information about creating this file, as well as a description of creating the OSGi bundle that you deploy to Oracle CEP, see "Overview of Application Assembly and Deployment" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

The HelloWorld example uses a build.xml Ant file to compile, assemble, and deploy the OSGi bundle; see Section 2.6.2, "Building and Deploying the HelloWorld Example from the Source Directory" for a description of this build.xml file if you also use Ant in your development environment.

2.6.5 The HelloWorld EPN Assembly File

One of the main purposes of the EPN assembly file is to define the event processing network by declaring the components of the application and how they are all connected, or in other word, which components listen to which other components. Oracle CEP provides a set of custom Spring tags used to declare the network. You also use the EPN assembly file to register the event types used by your application and its EPL rules.

You use the EPN assembly file in the typical way to define the application component beans in the Spring application context; the application components beans are those implemented with Java classes, such as adapters and the POJO that contains the business logic.

For more information, see:

- "Schema Reference: EPN Assembly spring-wlevs-v11_1_1_6.xsd" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse

- "Oracle CEP Schemas" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse

Example 2-1 shows the EPN assembly file used in the HelloWorld sample application; see the explanation after the example for details about the entries in bold.

Example 2-1 HelloWorld EPN Assembly File

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:osgi="http://www.springframework.org/schema/osgi"
xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/osgi
http://www.springframework.org/schema/osgi/spring-osgi.xsd
http://www.bea.com/ns/wlevs/spring
http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_6.xsd">
<wlevs:event-type-repository>
<wlevs:event-type type-name="HelloWorldEvent">
<wlevs:class>com.bea.wlevs.event.example.helloworld.HelloWorldEvent</wlevs:class>
</wlevs:event-type>
</wlevs:event-type-repository>
<wlevs:adapter id="helloworldAdapter" class="com.bea.wlevs.adapter.example.helloworld.HelloWorldAdapter" >
<wlevs:instance-property name="message" value="HelloWorld - the currenttime is:"/>
</wlevs:adapter>
<wlevs:processor id="helloworldProcessor" />
<wlevs:channel id="helloworldInstream" >
<wlevs:listener ref="helloworldProcessor"/>
<wlevs:source ref="helloworldAdapter"/>
</wlevs:channel>
<wlevs:channel id="helloworldOutstream" manageable="true">
<wlevs:listener>
<bean class="com.bea.wlevs.example.helloworld.HelloWorldBean"/>
</wlevs:listener>
<wlevs:source ref="helloworldProcessor"/>
</wlevs:channel>
</beans>

In the preceding example:

- The wlevs:event-type-repository element registers the event types that are used throughout the application; in the HelloWorld application, there is just a single event type: HelloWorldEvent, implemented with the com.bea.wlevs.event.example.helloworld.HelloWorldEvent class. Oracle CEP automatically creates instances of this data type when needed. You can also reference this data type in the EPL rules of the application.

- The wlevs:adapter, wlevs:processor, and wlevs:channel elements together define the event processor network by declaring each component in the network:

- The wlevs:adapter element defines the adapter component of the HelloWorld application:

<wlevs:adapter id="helloworldAdapter"
class="com.bea.wlevs.adapter.example.helloworld.HelloWorldAdapter" >
<wlevs:instance-property name="message" value="HelloWorld - the currenttime is:"/>
</wlevs:adapter>

The id attribute specifies a unique identifier for this component; the id will be referenced later by other components. The class attribute specifies the class that implements the adapter; in this case it is com.bea.wlevs.adapter.example.helloworld.HelloWorldAdapter.

The wlevs:instance-property child element passes an instance variable to the adapter instance; the name of the variable is message and the value is HelloWorld - the current time is: .

- The wlevs:processor element defines the processor component of the application:

<wlevs:processor id="helloworldProcessor" />

The id attribute functions the same as that of wlevs:adapter element.

- The wlevs:channel elements define the two channel components of the application:

<wlevs:channel id="helloworldInstream" >
<wlevs:listener ref="helloworldProcessor"/>
<wlevs:source ref="helloworldAdapter"/>
</wlevs:channel>
<wlevs:channel id="helloworldOutstream" manageable="true">
<wlevs:listener>
<bean class="com.bea.wlevs.example.helloworld.HelloWorldBean"/>
</wlevs:listener>
<wlevs:source ref="helloworldProcessor"/>
</wlevs:channel>

The id attribute for streams functions the same as that of wlevs:adapter. The manageable attribute enables monitoring of the channel; by default the manageability of components is disabled.

The wlevs:channel element with id="helloworldInstream" uses the wlevs:listener child element to specify that the helloworldProcessor listens to the channel, and the wlevs:source child element to specify that the channel gets its events from the helloworldAdapter component.

The wlevs:channel element with id="helloworldOutstream" also uses these listener and source tags. One difference, however, is that it directly nests the definition of the business logic POJO in the wlevs:listener element rather than reference a unique identifier. In this case, the nested tag is a standard Spring bean element that specifies that the POJO is implemented with the com.bea.wlevs.example.helloworld.HelloWorldBean class.

2.6.6 The HelloWorld Component Configuration File

The HelloWorld application configures the processor in the component configuration file that Example 2-2 shows.

Example 2-2 HelloWorld Component Configuration File

<?xml version="1.0" encoding="UTF-8"?>
<n1:config xmlns:n1="http://www.bea.com/ns/wlevs/config/application"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<processor>
<name>helloworldProcessor</name>
<rules>
<query id="helloworldRule">

The script content on this page is for navigation purposes only and does not alter the content in any way.

3 Installing Oracle CEP

This chapter describes how to install and upgrade Oracle Complex Event Processing (Oracle CEP), including development tools for use with the Eclipse IDE.

- Section 3.1, "Installation Overview"

- Section 3.2, "Installing Oracle CEP in Graphical Mode"

- Section 3.3, "Installing Oracle CEP in Console Mode"

- Section 3.4, "Installing Oracle CEP in Silent Mode"

- Section 3.5, "Installing an Oracle CEP Patch"

- Section 3.7, "Installing the Oracle CEP IDE for Eclipse"

- Section 3.6, "Post-Installation Steps"

- Section 3.8, "Upgrading to Oracle CEP 11g Release 1 (11.1.1.6.0)"

3.1 Installation Overview

To install Oracle CEP 11g Release 1 (11.1.1.6.0):

1. Download the Oracle CEP installer appropriate for your platform.

See Section 1.6, "Supported Platforms".

2. Choose the JVM you will use.

See Section 3.1.2, "Choosing Your JVM"

3. Decide if you are installing in a production environment or development environment.

See Section 3.1.3, "Default Oracle CEP Domain ocep_domain and Samples".

4. Familiarize yourself with Oracle Fusion Middleware directory structure and concepts.

See Section 3.1.4, "Oracle Fusion Middleware Directory Structure and Concepts".

5. Install Oracle CEP using the installer mode of your choice.

See Section 3.1.5, "Installation Mode".

6. Install Oracle CEP patches, if required.

See Section 3.5, "Installing an Oracle CEP Patch".

7. Perform post-installation tasks, if applicable.

See Section 3.6, "Post-Installation Steps".

8. Decide whether or not you need to upgrade Oracle CEP and Oracle CEP applications to the current release.

See Section 3.8, "Upgrading to Oracle CEP 11g Release 1 (11.1.1.6.0)".

9. Install Apache Ant, a Java-based build tool.

See the Apache Ant Project at http://ant.apache.org/.

3.1.1 Before You Start the Installation Program

Before you start the installation program, review the following information:

- If you are using the Generic Package installer or the Linux 64-bit installer to install Oracle CEP on a UNIX or Linux system, Oracle recommends that you set the umask to 027 on your system prior to installation. This ensures that WebLogic Server file permissions will be set properly during installation. Use the following command:

umask 027

You must enter this command in the same terminal window from which you plan to run the Oracle CEP installer.

3.1.2 Choosing Your JVM

Oracle CEP supports the following Java Virtual Machines (JVM):

- Section 3.1.2.1, "Oracle JRockit Real Time"

- Section 3.1.2.2, "Sun JVM"

- Section 3.1.2.3, "Other Platform-Specific JVMs"

3.1.2.1 Oracle JRockit Real Time

By default, Oracle CEP includes its own version of JRockit (in MIDDLEWARE_HOME/jrockit_JAVA-VERSION_RJROCKIT-VERSION), but it does not include the deterministic garbage collector.

Note:

The Oracle CEP installer for the Sun JVM does not include a version of JRockit.

Oracle CEP performs optimally when it can access certain features from Oracle JRockit Real Time, in particular the JRockit deterministic garbage collector.

If your application requires low latency, optionally install Oracle JRockit Real Time.

Caution:

Be sure you install the version of Oracle JRockit Real Time for Java version 5.0 or 6.0. Oracle JRockit Real Time for Java version 1.4.2 is not compatible with Oracle CEP 11g Release 1 (11.1.1.6.0).

For more information on Oracle JRockit Real Time, see http://www.oracle.com/technology/products/jrockit/jrrt/index.html.

3.1.2.2 Sun JVM

The Sun JVM is the default JVM on Solaris SPARC and is included in the Solaris SPARC installer. If you want to use the Sun JVM (instead of JRockit) on platforms other than Solaris, download the JVM from the Oracle Java SE download site.

For more information, see:

- Section 1.6, "Supported Platforms"

- http://www.oracle.com/technetwork/java/javase/downloads/index.html

3.1.2.3 Other Platform-Specific JVMs

For other platforms (such as HP or IBM/AIX), ensure that you have the appropriate platform-specific JVM installed.

For more information, see:

- Section 1.6, "Supported Platforms"

- Section 3.6.1, "Configuring Oracle CEP for the IBM JDK"

3.1.3 Default Oracle CEP Domain ocep_domain and Samples

When you choose a Typical install, the 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 and samples (recommended), choose the Custom option.

The Typical install is appropriate for a production environment while the Custom install is appropriate for a development environment.

3.1.4 Oracle Fusion Middleware Directory Structure and Concepts

When you install Oracle CEP, consider the following scenarios:

- Section 3.1.4.1, "Oracle CEP-Specific Middleware Home"

- Section 3.1.4.2, "Existing Oracle Fusion Middleware Home"

For more information, see "Oracle Fusion Middleware Directory Structure and Concepts" in the Oracle Fusion Middleware Installation Planning Guide.

3.1.4.1 Oracle CEP-Specific Middleware Home

In this scenario, you install Oracle CEP in a stand-alone configuration, in its own Middleware Home directory as Figure 3-1 shows.

Figure 3-1 Oracle CEP-Specific Middleware Home

Table 3-1 lists the various home directories applicable to Oracle CEP in this scenario.

Table 3-1 Home Directories and Oracle CEP-Specific Middleware Home

Home Directory Type

Home Directory

Middleware Home

As selected by the user at Oracle CEP install time.

WebLogic Server Home

N/A

Oracle Product HomeFoot 1

ocep_11.1

Oracle Common Home

N/A

Domain

MIDDLEWARE_HOME/user_projects/domains/ocep_domain

Footnote 1 Also known as simply the Oracle Home.

3.1.4.2 Existing Oracle Fusion Middleware Home

In this scenario, you install Oracle CEP into an existing Oracle Fusion Middleware home as Figure 3-2 shows.

In this scenario, you install Oracle CEP into its own Product Oracle Home but you create Oracle CEP domains in the existing ORACLE_FUSION_MIDDLEWARE_HOME/user_projects/domains directory as Figure 3-2 shows.

Figure 3-2 Oracle CEP in an Existing Oracle Fusion Middleware Home

In this example topology, there are two Oracle products installed in the same Middleware Home:

- Oracle CEP

- Oracle SOA Suite

Table 3-2 lists the various home directories applicable to Oracle CEP in this scenario.

Table 3-2 Home Directories and Existing Middleware Home

Home Directory Type

Home Directory

Middleware Home

As selected by the user at Oracle Fusion Middleware install time.

WebLogic Server Home

As determined by Oracle Fusion Middleware installer.

Oracle Product HomeFoot 1

ocep_11.1

Oracle Common Home

As determined by Oracle Fusion Middleware installer.

Domain

MIDDLEWARE_HOME/user_projects/domains/ocep_domain

Footnote 1 Also known as simply the Oracle Home.

3.1.5 Installation Mode

You use the Oracle CEP installer in the following modes:

- Section 3.1.5.1, "Graphical Mode"

- Section 3.1.5.2, "Console Mode"

- Section 3.1.5.3, "Silent Mode"

3.1.5.1 Graphical Mode

Graphical-mode installation is an interactive, GUI-based method for installing your software. It can be run on both Windows and UNIX systems. See Section 3.2, "Installing Oracle CEP in Graphical Mode."

Caution:

If you want to run graphical-mode installation, the console attached to the machine on which you are installing the software must support a Java-based GUI. All consoles for Windows systems support Java-based GUIs, but not all consoles for UNIX systems do. If you attempt to start the installation program in graphical mode on a system that cannot support a graphical display, the installation program automatically starts console-mode installation.

3.1.5.2 Console Mode

Console-mode installation is an interactive, text-based method for installing your software from the command line, on either a UNIX system or a Windows system. See Section 3.3, "Installing Oracle CEP in Console Mode."

3.1.5.3 Silent Mode

Silent-mode installation is a non-interactive method of installing your software that requires the use of an XML properties file for selecting installation options. You can run silent-mode installation in either of two ways: as part of a script or from the command line. Silent-mode installation is a way of setting installation configurations only once and then using those configurations to duplicate the installation on many machines. See Section 3.4, "Installing Oracle CEP in Silent Mode."

3.2 Installing Oracle CEP in Graphical Mode

This section describes how to install using the Oracle CEP installer in graphical mode.

For more information, see Section 3.1, "Installation Overview".

To install Oracle CEP in graphical mode:

1. Log in to the Windows or UNIX computer on which you want to install Oracle CEP.

Be sure you log in to the computer as the user that will be the main administrator of the Oracle CEP installation.

2. Download the product distribution file for the platform on which you want to install Oracle CEP.

3. Launch the installation program in graphical mode using the commands listed in the following table appropriate for your platform.

Platform

Instructions

Windows

Using Windows Explorer, double-click the appropriate installation program file from its download directory.

Linux or Solaris

Open a command window, change to the download directory, and enter these commands:

prompt> chmod a+x filename
prompt> ./filename

In the preceding commands, filename is the name of the installation program specific to your platform (for more information, see http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html.)

If you want to create an installation log, use the -log=full_path_to_log_file option; for example:

prompt> ./filename -log=C:\logs\server_install.log

After the installation program has finished loading, you will see the standard Welcome window.

4. Click Next.

5. In the Choose Middleware Home Directory window, you can specify either an existing Oracle Middleware Home directory or create a new one:

1. To install into an existing Oracle Middleware Home directory:

- Select Use an Existing Middleware Home.

- Select an existing Oracle Middleware Home directory from the list on the right.

2. To install into a new Oracle Middleware Home directory:

- Select Create a New Middleware Home.

- Click the Browse button to browse your computer to select an existing directory or click Reset to reset the directory to the default, C:\Oracle\Middleware.

- Click Open.

The Oracle Middleware Home directory is the main installation directory for Oracle CEP, such as c:\oracle_cep. You can have one or many Oracle Middleware Home directories on your computer, whichever suits your development and production environments best.

For more information, see Section 3.1.4, "Oracle Fusion Middleware Directory Structure and Concepts".

6. Click Next.

7. In the Choose Install Type window, you can choose one of the following options:

1. To install all Oracle CEP components except the samples and use the Oracle JRockit JVM included with Oracle CEP:

- Select Typical.

- Click Next.

- Proceed to step 10.

The installer program checks to see if the Oracle Middleware Home directory contains the version of JRockit required by this release of Oracle CEP:

- If it finds the required JRockit installation, it does not install a new one.

- If it does not find an appropriate JRockit installation, then the installer installs its own version in the Oracle Middleware Home directory.

2. To install all Oracle CEP components including the default ocep_domain domain (with default passwords) and the samples and select a previously installed Sun or platform-specific JVM (or use the Oracle JRockit JVM included with Oracle CEP):

- Select Custom.

- In the Choose Products and Components window, check the components you want to install, such as the product samples.

- Click Next.

Note:

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 samples (recommended), choose the Custom option.

If you want to use a Sun or platform-specific JVM, you must choose the Custom option.

The installer program allows you to choose the JDK to use and to decide whether or not to install the Oracle JRockit JVM included with Oracle CEP.

8. In the JDK Selection window, you can choose the JDK for the Oracle CEP server.

Use the Browse button to select the Sun or platform-specific JDK you installed previously.

If you do not want the installer to install the Oracle JRockit JVM included with Oracle CEP, uncheck this item.

9. Click Next.

10. In the Choose Product Installation Directories window, you can change the default name of the Oracle Product Home directory for Oracle CEP, ocep_11.1.

Although you can name this directory anything you want, Oracle recommends that you use the default name for clarity and standardization. For example, the documentation assumes that the Oracle Product Home directory is ocep_11.1.

For more information, see Section 3.1.4, "Oracle Fusion Middleware Directory Structure and Concepts".

11. Click Next.

12. If you are installing on Windows, and you logged in as a user with Administrator privileges, then you will see the Choose Shortcut Location window where you can choose where you want the Start Menu folder to appear. The following table describes the options available:

If you select . . .

The following occurs . . .

All Users

Recommended. All users registered on the machine are provided with access to the installed software. Subsequently, if users without Administrator privileges use the Configuration Wizard from this installation to create domains, Start menu shortcuts to the domains are not created. In this case, users can manually create shortcuts in their local Start menu folders, if desired.

Local user

Other users registered on this machine will not have access to the Start menu entries for this installation.

If you logged in as a user without Administrator privileges, the Start menu entries are created in your user's local Start menu folder.

13. Click Next.

14. The Installation Summary window shows the products and components you are about to install, along with the approximate size in MB. This window is for your information only; to change the components to be installed, use the Previous button to return to the appropriate window.

15. Click Next.

The installer program installs Oracle CEP. The Installation Complete window indicates that the product was installed successfully.

16. Click Done to exit the program.

17. Review the post-installation steps that Section 3.6, "Post-Installation Steps" describes.

3.3 Installing Oracle CEP in Console Mode

This section describes how to install using the Oracle CEP installer in console mode.

Console-mode installation is an interactive, text-based method for installing your software from the command line, on either a UNIX or Windows system.

When installing in console-mode, respond to the prompts in each section by entering the number associated with your choice or by pressing Enter to accept the default. To exit the installation process, enter exit (or x, for short) in response to any prompt. To review or change your selection, enter previous (or p, for short) at the prompt. To proceed to the following window, enter next (or n, for short).

Note:

In the following procedure, Windows conventions (such as back-slashes in pathnames) are used, for example, C:\oracle_cep\ocep_11.1. When entering pathnames on a UNIX system, be sure to use UNIX conventions, instead. For example, use forward slashes in pathnames, such as /oracle_cep/ocep_11.1.

For more information, see Section 3.1, "Installation Overview".

To install Oracle CEP in graphical mode:

1. Log in to the Windows or Linux computer on which you want to install Oracle CEP.

Be sure you log in to the computer as the user that will be the main administrator of the Oracle CEP installation.

2. Download the product distribution file for the platform on which you want to install Oracle CEP.

3. Launch the installation program in console mode using the commands listed in the following table appropriate for your platform.

Platform

Instructions

Windows

Open a command window, change to the download directory, and enter the following command:

prompt> filename -mode=console

In the preceding command, filename is the name of the installation program specific to your platform (for more information, see http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html).

If you want to create an installation log, use the -log=full_path_to_log_file option; for example:

prompt> filename -mode=console -log=C:\logs\server_install.log

Linux

Open a command window, change to the download directory, and enter these commands:

prompt> chmod a+x filename
prompt> ./filename -mode=console

In the preceding commands, filename is the name of the installation program specific to your platform (for more information, see http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html).

If you want to create an installation log, use the -log=full_path_to_log_file option; for example:

prompt> ./filename -mode=console -log=C:\logs\server_install.log

4. At the Welcome prompt, type next (or n for short) or press Enter to continue with the installation process.

5. In the Choose Middleware Home Directory window, you can specify either an existing Oracle Middleware Home directory or create a new one:

1. To install into an existing Oracle Middleware Home directory:

- Type the number of the existing Oracle Middleware Home directory.

2. To install into a new Oracle Middleware Home directory:

- Type 1 to create a new Oracle Middleware Home directory.

- The installation program guides you through the required steps to create the new Oracle Middleware Home.

Be sure to enter the full path of the Oracle Middleware Home directory, for example C:\oracle_cep2.

Note:

Do not terminate the path with a file separator character. That is, enter C:\mydir and not C:\mydir\.

If you specify a directory that does not exist, the installation program creates it for you.

The Oracle Middleware Home directory is the main installation directory for Oracle CEP, such as c:\oracle_cep. You can have one or many Oracle Middleware Home directories on your computer, whichever suits your development and production environments best.

For more information, see Section 3.1.4, "Oracle Fusion Middleware Directory Structure and Concepts".

6. Confirm your choice for Oracle Middleware Home directory and enter next (or n).

7. In the Choose Install Type window, you can choose one of the following options:

1. To install all Oracle CEP components except the samples and use the Oracle JRockit JVM included with Oracle CEP:

- Type 1 to choose a Typical install.

- Proceed to step 9.

The installer program checks to see if the Oracle Middleware Home directory contains the version of JRockit required by this release of Oracle CEP:

- If it finds the required JRockit installation, it does not install a new one.

- If it does not find an appropriate JRockit installation, then the installer installs its own version in the Oracle Middleware Home directory.

2. To install all Oracle CEP components including the default ocep_domain domain (with default passwords) and the samples and select a previously installed Sun or platform-specific JVM (or use the Oracle JRockit JVM included with Oracle CEP):

- Type 2 to choose a Custom install.

- In the Choose Components to Install window, enter the numbers in brackets to toggle the components you want to install, such as the samples. To toggle a selection in the list, types its number. When a check mark appears next to the option, the option is selected. To unselect the option, enter its number again to remove the check mark

- Enter next (or n) when you have chosen the components.

Note:

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 samples (recommended), choose the Custom option.

If you want to use a Sun or platform-specific JVM, you must choose the Custom option.

The installer program allows you to choose the JDK to use and to decide whether or not to install the Oracle JRockit JVM included with Oracle CEP.

8. In the JDK Selection window, you can choose the JDK for the Oracle CEP server:

- To add a local JDK, select the Add Local JDK option (1).

The installation program guides you through the required steps to add a local JDK.

Be sure to enter the full path to the JDK directory, for example:

C:\Program Files\Java\jdk1.6.0_14

To add additional JDKs, select 1 again.

- In the JDK Selection window, enter the numbers in brackets to toggle the JDKs you want. To toggle a selection in the list, types its number. When a check mark appears next to the option, the option is selected. To unselect the option, enter its number again to remove the check mark.

If you do not want the installer to install the Oracle JRockit JVM included with Oracle CEP, uncheck this item.

- Enter next (or n) when you have selected the local JDK.

9. In the Choose Product Installation Directories window, you can change the default name of the Oracle Product Home directory for Oracle CEP, ocep_11.1.

Although you can name this directory anything you want, Oracle recommends that you use the default name for clarity and standardization. For example, the documentation assumes that the Oracle Product Home directory is ocep_11.1.

For more information, see Section 3.1.4, "Oracle Fusion Middleware Directory Structure and Concepts".

Enter next (or n) when you are done.

10. If you are installing on Windows, and you logged in as a user with Administrator privileges, then you will see the Choose Shortcut Location window where you can choose where you want the Start Menu folder to appear. The following table describes the options available:

If you select . . .

The following occurs . . .

1 "All Users"

Recommended. All users registered on the machine are provided with access to the installed software. Subsequently, if users without Administrator privileges use the Configuration Wizard from this installation to create domains, Start menu shortcuts to the domains are not created. In this case, users can manually create shortcuts in their local Start menu folders, if desired.

2 "Local user"

Other users registered on this machine will not have access to the Start menu entries for this installation.

If you logged in as a user without Administrator privileges, the Start menu entries are created in your user's local Start menu folder.

Enter the appropriate number.

11. Enter next (or n) when you are done.

12. The Installation Summary window shows the products and components you are about to install, along with the approximate size in MB. This window is for your information only; to change the components to be installed, type Previous to return to the appropriate window.

13. Enter next (or n).

The installer program installs Oracle CEP. The Installation Complete window indicates that the product was installed successfully.

14. Type exit to exit the program.

15. Review the post-installation steps that Section 3.6, "Post-Installation Steps" describes.

3.4 Installing Oracle CEP in Silent Mode

This section describes how to install using the Oracle CEP installer in silent mode.

Silent-mode installation is a non-interactive method of installing your software that requires the use of an XML properties file for selecting installation options.

For more information, see Section 3.1, "Installation Overview".

To install Oracle CEP in silent mode:

1. Log in to the Windows or UNIX computer on which you want to install Oracle CEP.

Be sure you log in to the computer as the user that will be the main administrator of the Oracle CEP installation.

2. Download the product distribution file for the platform on which you want to install Oracle CEP.

3. Create a silent.xml file that defines the configuration settings normally entered by a user during an interactive installation process.

See Section 3.4.1, "Creating a silent.xml File for Silent-Mode Installation."

Note:

Incorrect entries in the silent.xml file can cause installation failures. To help you determine the cause of a failure, we recommend that you create a log file when you launch the installation program.

4. Launch the installation program in silent mode using the commands in the following table appropriate for your platform.

Platform

Instructions

Windows

Open a command window, change to the download directory, and enter the following command:

prompt> filename -mode=silent -silent_xml=path_to_xml_file

In the preceding command, filename is the name of the installation program specific to your platform (for more information, see http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html) and path_to_xml_file is the full pathname of the silent.xml template file you created in the preceding step.

If you want to create an installation log, use the -log=full_path_to_log_file option; for example:

prompt> filename -mode=silent -silent_xml=path_to_xml_file  -log=C:\logs\server_install.log

Linux or Solaris

Open a command window, change to the download directory, and enter these commands:

prompt> chmod a+x filename
prompt> ./filename -mode=silent -silent_xml=path_to_xml_file

In the preceding commands, filename is the name of the installation program specific to your platform (for more information, see http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html) and path_to_xml_file is the full pathname of the silent.xml template file you created in the preceding step.

If you want to create an installation log, use the -log=full_path_to_log_file option; for example:

prompt> ./filename -mode=silent -silent_xml=path_to_xml_file  -log=C:\logs\server_install.log

An Oracle Installer window is displayed, indicating that the files are being extracted. No other prompt or text is displayed.

The installation is complete when the Oracle Installer window disappears.

See Section 3.4.3, "Returning Exit Codes to the Command Window" for getting information about the success or failure of the silent installation.

5. Review the post-installation steps that Section 3.6, "Post-Installation Steps" describes.

3.4.1 Creating a silent.xml File for Silent-Mode Installation

When you install Oracle CEP in silent mode, the installation program uses an XML file (silent.xml) to determine which installation options should be implemented.

To create a silent.xml file for silent-mode installation:

1. Using your favorite text editor, create an empty file called silent.xml on the computer on which you want to install Oracle CEP in silent mode.

2. Copy the contents of the sample XML file, shown in Example 3-1, into your own silent.xml file.

Example 3-1 Sample silent.xml File for Silent-Mode Installation

<?xml version="1.0" encoding="UTF-8"?>
<!-- Silent installer option: -mode=silent -silent_xml=C:\oracle\silent.xml -->
<bea-installer>
<input-fields>
<data-value name="BEAHOME"            value="C:\oracle_cep" />
<data-value name="USER_INSTALL_DIR"   value="C:\oracle_cep\ocep_11.1" />
<data-value name="INSTALL_SHORTCUT_IN_ALL_USERS_FOLDER"   value="yes"/>
<data-value name="COMPONENT_PATHS" value="Oracle Complex Event Processing" />
</input-fields>
</bea-installer>

3. In the silent.xml file you just created, edit the values for the keywords shown in Table 3-3 to reflect your configuration.

For example, if you want to install into the ORACLE_CEP_HOME directory e:\oracle_cep, update the corresponding <data-value> element as follows

<data-value name="BEAHOME" value="e:\oracle_cep" />

Table 3-3 Values for the silent.xml File

For this data-value name...

Enter the following value...

BEAHOMEFoot 1

The full pathname for the Oracle Middleware Home directory of your choice.

For more information, see Section 3.1.4, "Oracle Fusion Middleware Directory Structure and Concepts".

USER_INSTALL_DIR

The full pathname for the Oracle Product Home directory for Oracle CEP of your choice.

For more information, see Section 3.1.4, "Oracle Fusion Middleware Directory Structure and Concepts".

INSTALL_SHORTCUT_IN_ALL_USERS_FOLDER

Windows only. Specify:

- true, or yes, to create the shortcuts in the All Users folder.

- false, or no, to create the shortcuts in the local users folder.

The user performing the installation must have Administrator privileges to install the Start menu shortcuts in the All Users folder.

The default value for this parameter, if you do not specify it, is true.

COMPONENT_PATHS

Specify the components and subcomponents of Oracle CEP you want to install on your system. Use the following values:

- Oracle Complex Event Processing

- Oracle Complex Event Processing/Event Server

- Oracle Complex Event Processing/Event Server Samples

For additional information about entering these values, see Section 3.4.2, "Guidelines for Component Selection."

If you do not include the COMPONENT_PATHS data-value name in the silent.xml file, the complete Oracle CEP product is installed.

LOCAL_JVMS

Option to select supported JVM, which is already installed.

Note: The presence of the LOCAL_JVMS token negates any default selection and only sets the values assigned for the token as user selection. The value of the token can be a pipe (|) separated JavaHomes.

Footnote 1 Do not terminate the pathname with a file separator. That is, enter this C:\mydirectory and not C:\mydirectory\.

Note:

Silent install does not support the LOCAL_JVMS data-value. To define a local JVM, you must use graphical mode installation as Section 3.2, "Installing Oracle CEP in Graphical Mode" describes.

4. Save the file in the directory of your choice.

3.4.2 Guidelines for Component Selection

Use the following guidelines when you specify values for the COMPONENT_PATHS data-value name:

- When you specify a product component to be installed, all subcomponents that are installed by default in a complete installation are also installed. For example, the following entry installs both Oracle CEP and the samples:

<data-value name="COMPONENT_PATHS"
value="Oracle Complex Event Processing" />

- To install multiple components or subcomponents, separate the components with a bar (|). Do not leave a space before or after the bar.

- To specify subcomponents, you must specify a component/subcomponent combination for each entry. For example, to explicitly install Oracle CEP and the samples, enter the following line in the file:

<data-value name="COMPONENT_PATHS" value="Oracle Complex Event Processing/Event Server|Oracle Complex Event Processing/Event Server Samples" />

Note:

Because this release of Oracle CEP includes only the server itself and samples, the preceding example is equivalent to the example in the first bullet.

3.4.3 Returning Exit Codes to the Command Window

When run in silent mode, the installation program generates exit codes that indicate the success or failure of the installation. These exit codes are shown in Table 3-4.

Table 3-4 Exit Codes

Code

Description

0

Installation completed successfully

-1

Installation failed due to a fatal error

-2

Installation failed due to an internal XML parsing error

Example 3-2 provides a sample Windows command file that invokes the installation program in silent mode and echoes the exit codes to the command window from which the script is executed.

Example 3-2 Sample Windows Command File Displaying Silent-Mode Exit Codes

rem Execute the installer in silent mode
@echo off
ofm_ocep_generic_11.1.1.1.0_32_disk1_1of1.exe -mode=silent -silent_xml=C:\downloads\silent.xml -log=C:\logs\products_silent.log

@rem Return an exit code to indicate success or failure of installation
set exit_code=%ERRORLEVEL%

@echo.
@echo Exitcode=%exit_code%
@echo.
@echo Exit Code Key
@echo ---------------
@echo  0=Installation completed successfully
@echo -1=Installation failed due to a fatal error
@echo -2=Installation failed due to an internal XML parsing error
@echo.

3.5 Installing an Oracle CEP Patch

You can download maintenance and security updates for Oracle CEP from My Oracle Support. For more information, see Oracle Smart Update Applying Patches to Oracle WebLogic Server.

3.6 Post-Installation Steps

After installing Oracle CEP:

- If you installed Oracle CEP for use with the IBM JVM on IBM AIX (64-bit), then in each Oracle CEP domain directory, make the changes that Section 3.6.1, "Configuring Oracle CEP for the IBM JDK" describes.

- Try out the product examples. For information about the examples and how to run them, see Chapter 2, "Oracle CEP Samples."

- Install the Oracle CEP IDE for Eclipse as Section 3.7, "Installing the Oracle CEP IDE for Eclipse" describes.

- Optionally, create your own Oracle CEP domain:

See:

- "Creating an Oracle CEP Standalone-Server Domain" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing

- "Creating an Oracle CEP Multi-Server Domain" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing

Note:

If you installed Oracle CEP using the default option, you must create your own Oracle CEP domain. For more information, see Section 3.1.3, "Default Oracle CEP Domain ocep_domain and Samples".

- Create an Oracle CEP application and deploy it to your domain.

For a description of the programming model, details about the various components that make up an application, and how they all fit together, see "Overview of Creating Oracle CEP Applications" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

3.6.1 Configuring Oracle CEP for the IBM JDK

If you installed Oracle CEP for use with the IBM JDK, depending on your operating system and processor architecture, you must make changes to the IBM AIX network options and the setDomainEnv script in each Oracle CEP domain directory. This section describes:

- Section 3.6.1.1, "How to Configure Oracle CEP for the IBM JVM on IBM AIX (64-bit)"

3.6.1.1 How to Configure Oracle CEP for the IBM JVM on IBM AIX (64-bit)

If you installed Oracle CEP for use with the IBM JDK on IBM AIX (64-bit), you must make changes to the IBM AIX network options and the setDomainEnv script in each Oracle CEP domain directory.

To configure Oracle CEP for the IBM JVM on IBM AIX (64-bit):

1. Execute the following commands (using super user privileges or sudo) to modify the AIX network options:

no -o rfc1323=1
no -o sb_max=4194304

2. Go to the domain directory.

For example, MIDDLEWARE_HOME/user_projects/domains/ocep_domain/defaultserver

3. Edit the setDomainEnv.sh script and add the following line:

export IBM_JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false"

3.7 Installing the Oracle CEP IDE for Eclipse

Oracle CEP IDE for Eclipse is a set of plugins for the Eclipse IDE designed to help develop, deploy, and debug applications for Oracle CEP.

For more information, see:

- "Installing the Latest Oracle CEP IDE for Eclipse" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse

- "Installing the Oracle CEP IDE for Eclipse Distributed With Oracle CEP" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse

3.8 Upgrading to Oracle CEP 11g Release 1 (11.1.1.6.0)

Upgrading to Oracle CEP 11g Release 1 (11.1.1.6.0) is a two-step process: first you must upgrade your applications and then you must upgrade the domain to which the applications are deployed.

Table 3-5 lists the steps you must take for each supported upgrade path:

Table 3-5 Upgrade Paths

From Release

To Release 10.3

To Release 11gR1 (11.1.1)

2.0

1. Section 3.8.1, "Upgrading a WebLogic Event Server 2.0 Domain to Oracle CEP 10.3"

2. Section 3.8.3, "Upgrading a WebLogic Event Server 2.0 Application to Run on Oracle CEP 10.3"

1. Section 3.8.1, "Upgrading a WebLogic Event Server 2.0 Domain to Oracle CEP 10.3"

2. Section 3.8.2, "Upgrading an Oracle CEP 10.3 Domain to Oracle CEP 11g Release 1 (11.1.1.6.0)"

3. Section 3.8.3, "Upgrading a WebLogic Event Server 2.0 Application to Run on Oracle CEP 10.3"

4. Section 3.8.4, "Upgrading an Oracle CEP 10.3 Application to Run on Oracle CEP 11g Release 1 (11.1.1.6.0)"

10.3

Not Applicable.

1. Section 3.8.2, "Upgrading an Oracle CEP 10.3 Domain to Oracle CEP 11g Release 1 (11.1.1.6.0)"

2. Section 3.8.4, "Upgrading an Oracle CEP 10.3 Application to Run on Oracle CEP 11g Release 1 (11.1.1.6.0)"

For more information, see Section 3.8.5, "Backward Compatibility Issues".

3.8.1 Upgrading a WebLogic Event Server 2.0 Domain to Oracle CEP 10.3

This section describes the steps you must take to upgrade a WebLogic Event Server 2.0 domain so that it runs correctly in Oracle CEP 10.3. For clarity, it is assumed that the existing WebLogic Event Server 2.0 domain is located in the /bea/user_projects/domains/mydomain20 directory.

To upgrade a WebLogic Event Server 2.0 domain to Oracle CEP 10.3:

1. Using the Configuration Wizard, create a temporary Oracle CEP 10.3 domain. Later steps in this procedure require you to use or refer to files in a new Oracle CEP 10.3 domain, and it is best to use a new domain. You can later delete this domain if you want.

For the purposes of this procedure, it is assumed that the new Oracle CEP 10.3 domain is called mydomain30, it contains a single server called defaultserver, and the server files are located in the /oracle_cep/user_projects/domains/mydomain30/defaultserver directory.

See "Creating an Oracle CEP Standalone-Server Domain" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing.

2. If the WebLogic Event Server 2.0 server is currently running, stop it.

3. Make a backup copy of your WebLogic Event Server 2.0 domain in case you need to revert back.

4. Replace the following two files in the WebLogic Event Server 2.0 domain with the equivalent files from the Oracle CEP 10.3 domain.

- lib/XACMLAuthorizerInit.ldift

- lib/XACMLRoleMapperInit.ldift

The WebLogic Event Server 2.0 files are located relative to the domain directory (/bea/user_projects/domains/mydomain20 in our example) and the Oracle CEP 10.3 files are located relative to the server directory under the domain directory (/oracle_cep/user_projects/domains/mydomain30/defaultserver in our example).

5. Using your favorite text editor, open the atnstore.txt file in the WebLogic Event Server 2.0 domain, located in the config sub-directory of the main domain directory, and add the new Oracle 10.3 groups:

group: wlevsDeployers
description:
group: wlevsApplicationAdmins
description:
group: wlevsBusinessUsers
description:
group: wlevsOperators
description:

6. Remove the following files and directories (if they exist) in the WebLogic Event Server 2.0 domain:

- FileBasedDefaultCredentialMappermy-realmInit.initialized

- FileBasedXACMLAuthorizermy-realmInit.initialized

- FileBasedXACMLRoleMappermy-realmInit.initialized

- rm

- cm

- atz

7. Update the startwlevs.cmd (Windows) or startwlevs.sh (Unix) command scripts in the WebLogic Event Server 2.0 domain to point to the new Oracle 10.3 binaries.

8. Update the stopwlevs.cmd (Windows) or stopwlevs.sh (Unix) command scripts in the WebLogic Event Server 2.0 domain to point to the new Oracle 10.3 binaries.

9. Start the server in the 2.0 domain using the Oracle 10.3 binaries.

"Starting and Stopping an Oracle CEP Server in a Standalone-Server Domain" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing.

10. This upgrade procedure might have changed the security configuration of your 2.0 domain, especially if you created new users and assigned them to groups. If this is the case, use Visualizer to reconfigure the security.

See:

- "Security Tasks" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Complex Event Processing

- "Configuring Security for Oracle CEP" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing

3.8.2 Upgrading an Oracle CEP 10.3 Domain to Oracle CEP 11g Release 1 (11.1.1.6.0)

This section describes the steps you must take to upgrade an Oracle CEP 10.3 domain so that it runs correctly in Oracle CEP 11g Release 1 (11.1.1). For clarity, it is assumed that the existing Oracle CEP 10.3 domain is located in the /bea/user_projects/domains/mydomain103 directory.

To upgrade an Oracle CEP 10.3 domain to Oracle CEP release 11g Release 1 (11.1.1.6.0):

1. Using the Configuration Wizard, create a temporary Oracle CEP 11g Release 1 (11.1.1.6.0) domain. Later steps in this procedure require you to use or refer to files in a new Oracle CEP 11g Release 1 (11.1.1.6.0) domain, and it is best to use a new domain. You can later delete this domain if you want.

For the purposes of this procedure, it is assumed that the new Oracle CEP 11g Release 1 (11.1.1) domain is called mydomain11, it contains a single server called defaultserver, and the server files are located in the /oracle_cep/user_projects/domains/mydomain11/defaultserver directory.

See "Creating an Oracle CEP Standalone-Server Domain" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing.

2. If the WebLogic Event Server 10.3 server is currently running, stop it.

3. Make a backup copy of your WebLogic Event Server 10.3 domain in case you need to revert back.

4. Replace the following two files in the WebLogic Event Server 10.3 domain with the equivalent files from the Oracle CEP 11g Release 1 (11.1.1) domain.

- lib/XACMLAuthorizerInit.ldift

- lib/XACMLRoleMapperInit.ldift

The WebLogic Event Server 10.3 files are located relative to the domain directory (/bea/user_projects/domains/mydomain30 in our example) and the Oracle CEP 11g Release 1 (11.1.1) files are located relative to the server directory under the domain directory (/oracle_cep/user_projects/domains/mydomain11/defaultserver in our example).

5. Using your favorite text editor, open the atnstore.txt file in the WebLogic Event Server 10.3 domain, located in the config sub-directory of the main domain directory, and add the new Oracle 11g Release 1 (11.1.1.6.0) groups:

group: wlevsDeployers
description:
group: wlevsApplicationAdmins
description:
group: wlevsBusinessUsers
description:
group: wlevsOperators
description:

6. Remove the following files and directories (if they exist) in the WebLogic Event Server 10.3 domain:

- FileBasedDefaultCredentialMappermy-realmInit.initialized

- FileBasedXACMLAuthorizermy-realmInit.initialized

- FileBasedXACMLRoleMappermy-realmInit.initialized

- rm

- cm

- atz

7. Update the startwlevs.cmd (Windows) or startwlevs.sh (Unix) command scripts in the WebLogic Event Server 10.3 domain to point to the new Oracle 11g Release 1 (11.1.1.6.0) binaries.

8. Update the stopwlevs.cmd (Windows) or stopwlevs.sh (Unix) command scripts in the WebLogic Event Server 10.3 domain to point to the new Oracle 11g Release 1 (11.1.1.6.0) binaries.

9. Start the server in the 10.3 domain using the Oracle 11g Release 1 (11.1.1.6.0) binaries.

"Starting and Stopping an Oracle CEP Server in a Standalone-Server Domain" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing.

10. This upgrade procedure might have changed the security configuration of your 10.3 domain, especially if you created new users and assigned them to groups. If this is the case, use Visualizer to reconfigure the security.

See:

- "Security Tasks" in the Oracle Fusion Middleware Visualizer User's Guide for Oracle Complex Event Processing

- "Configuring Security for Oracle CEP" in the Oracle Fusion Middleware Administrator's Guide for Oracle Complex Event Processing

3.8.3 Upgrading a WebLogic Event Server 2.0 Application to Run on Oracle CEP 10.3

This section describes the steps you must take to upgrade an application that you developed in Version 2.0 of WebLogic Event Server so that it runs on Oracle CEP 10.3.

To upgrade a WebLogic Event Server 2.0 application to run on Oracle CEP 10.3:

1. Update the MANIFEST.MF file to import new versions of Spring framework and Oracle CEP packages, as well as new required packages. In particular:

- Update the version of all imported Spring framework packages to 2.5.5. For example:

Import-Package:
org.springframework.aop.framework;version="2.5.5",
org.springframework.aop;version="2.5.5",
...

- Update the version of any imported Oracle CEP packages to 3.0.0.0. For example:

Import-Package:
com.bea.wlevs.ede;version="3.0.0.0",
com.bea.wlevs.ede.api;version="3.0.0.0",
...

- Add the following packages to the Import-Package header if they are not already included:

Import-Package:
com.bea.wlevs.management.configuration.spi;version="3.0.0.0",
com.bea.wlevs.management.spi;version="3.0.0.0",
com.bea.wlevs.monitor;version="3.0.0.0",
com.bea.wlevs.spi;version="3.0.0.0",
com.bea.wlevs.spring.support;version="3.0.0.0",
commonj.work;version="1.4.0.0",
org.springframework.osgi.extensions.annotation;version="1.1.0",
com.bea.wlevs.ede.spi;version="3.0.0.0",
com.bea.wlevs.configuration.internal;version="3.0.0.0",
...

2. If you use Spring or Spring Dynamic Modules for OSGI (Spring DM) features in your application, it is possible that the declaration of the features in the Spring application context file has changed. If this is the case, you must update these declarations in the EPN assembly file of your Oracle CEP application.

Note:

This change is a result of the upgrade of the Spring framework (from 2.0 to 2.5) that occurred between WebLogic Event Server 2.0 and Oracle CEP 10.3, not as a direct result of the Oracle CEP upgrade

Refer to the appropriate 2.5 XSD Schemas for any changes:

- Spring: http://www.springframework.org/schema/beans/spring-beans.xsd

- Spring DM: http://www.springframework.org/schema/osgi/spring-osgi.xsd

The following bullets list some of the typical changes you might have to make; the following list is not complete:

- When specifying a property to the <osgi:service-property> tag, use the <entry> tag with the key and value attributes, rather than the old <prop> tag.

For example, change the following 2.0 tag from:

<osgi:service-properties>
<prop key="type">SocketAdapterType</prop>
</osgi:service-properties>

To:

<osgi:service-properties>
<entry key="type" value="SocketAdapterType"/>
</osgi:service-properties>

- The value or ref attribute of an instance-property must always be set to an explicit value; it can no longer be an empty string to indicate an implicit use of a default value.

For example, change the following 2.0 tag from:

<wlevs:adapter id="fileAdapter" provider="FileAdapterType">
<!-- file: empty value uses default
<wlevs:instance-property name="file" value="" />
<wlevs:listener ref="algoTradingProcessor"/>
</wlevs:adapter>

To:

<wlevs:adapter id="fileAdapter" provider="FileAdapterType">
<wlevs:instance-property name="file" value="test.file" />
<wlevs:listener ref="algoTradingProcessor"/>
</wlevs:adapter>

3. Recompile the Java code of your 2.0 adapter and business POJO implementations using your IDE. If you get compile-time errors, check the latest 10.3 Javadoc (http://download.oracle.com/docs/cd/E13157_01/wlevs/docs30/javadocs/wlevs/index.html) that describe the new Oracle CEP APIs and make the appropriate source code changes.

4. If your 2.0 application has an adapter that uses the loadgen provider as Example 3-3 shows, then you must register a StockTick event type in your EPN assembly file as Example 3-4 shows.

Example 3-3 Adapter Using loadgen Provider

<wlevs:adapter id="fxMarketAmer" provider="loadgen">
<wlevs:instance-property name="port" value="9011"/>
</wlevs:adapter>

Example 3-4 Registering a StockTick Event

<wlevs:event-type-repository>
<wlevs:event-type type-name="StockTick">
<wlevs:class>com.bea.wlevs.adapter.defaultprovider.StockTickEvent</wlevs:class>
</wlevs:event-type>
</wlevs:event-type-repository>

5. After you have made the preceding changes, reassemble the application and deploy it to Oracle CEP 10.3.

See "Assembling and Deploying Oracle CEP Applications" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

If, during deployment, you get an exception that indicates that a package is invisible, add this package to the Import-Package header of the MANIFEST.MF file, then reassemble and redeploy the application. Keep adding packages in this manner until the application deploys successfully.

3.8.4 Upgrading an Oracle CEP 10.3 Application to Run on Oracle CEP 11g Release 1 (11.1.1.6.0)

This section describes the steps you must take to upgrade an application that you developed in Oracle CEP 10.3 so that it runs on Oracle CEP 11g Release 1 (11.1.1.6.0).

To upgrade an Oracle CEP 10.3 application to run on Oracle CEP release 1111g Release 1 (11.1.1.6.0):

1. Update the MANIFEST.MF file to import new versions of Spring framework and Oracle CEP packages, as well as new required packages.

Note that alternatively you can specify unversioned packages which will not require updating and also that you can specify larger versions in order to avoid minor version updates, that is, use "2.5" instead of "2.5.6".

In particular:

- Update the version of all imported Spring framework packages to 2.5.6. For example:

Import-Package:
org.springframework.aop.framework;version="2.5.6",
org.springframework.aop;version="2.5.6",
...

- Update the version of all imported Spring-DM framework packages to 1.2.0. For example:

Import-Package:
org.springframework.osgi.context="1.2.0",
...

- Update the version of any imported Oracle CEP packages to 11.1.1.4_0. For example:

Import-Package:
com.bea.wlevs.ede;version="11.1.1.4_0",
com.bea.wlevs.ede.api;version="11.1.1.4_0",
...

- Add the following packages to the Import-Package header if they are not already included (see the sample source for a complete list of headers that may be required):

Import-Package:
com.bea.wlevs.management.spi;version="11.1.1.4_0",
com.bea.wlevs.spring.support;version="11.1.1.4_0",
com.bea.wlevs.ede.spi;version="11.1.1.4_0",
org.springframework.osgi.extensions.annotation;version="1.2.0",
...

2. If you use Spring or Spring Dynamic Modules for OSGI (Spring DM) features in your application, it is possible that the declaration of the features in the Spring application context file has changed. If this is the case, you must update these declarations in the EPN assembly file of your Oracle CEP application.

Note:

This change is a result of the upgrade of the Spring-DM framework (from 1.1 to 1.2) that occurred between Oracle CEP 10.3 and Oracle CEP 11.1, not as a direct result of the Oracle CEP upgrade.

Refer to the appropriate 2.5 XSD Schemas for any changes:

- Spring: http://www.springframework.org/schema/beans/spring-beans.xsd

- Spring DM: http://www.springframework.org/schema/osgi/spring-osgi.xsd

In particular convert any Spring-DM declared adapter factories to use the <wlevs:factory/> tag instead. For example, if your 10.3 EPN assembly file contains the service that Example 3-5 shows, then you must replace this service with the wlevs:factory that Example 3-6 shows.

Example 3-5 Spring-DM Declared Adapter Factory

<osgi:service interface="com.bea.wlevs.ede.api.AdapterFactory">
<osgi:service-properties>
<entry key="type" value="SocketAdapterType"/>
</osgi:service-properties>
<bean class="com.bea.wlevs.example.algotrading.adapter.SocketAdapterFactory" />
</osgi:service>

Example 3-6 wlevs:factory

<wlevs:factory provider-name="SocketAdapterType"     class="com.bea.wlevs.example.algotrading.adapter.SocketAdapterFactory"/>

3. Recompile the Java code of your 10.3 adapter and business POJO implementations using your IDE. If you get compile-time errors, check the latest 11g Release 1 (11.1.1) Javadoc (see Oracle Fusion Middleware Java API Reference for Oracle Complex Event Processing) that describe the new Oracle CEP APIs and make the appropriate source code changes.

Consider changing deprecated Java API and Oracle CEP schema:

- "Deprecated API and Schemas" in the Oracle Fusion Middleware Release Notes

- "Adapter Changes" in the Oracle Fusion Middleware Release Notes

4. After you have made the preceding changes, reassemble the application and deploy it to Oracle CEP 11g Release 1 (11.1.1).

See "Assembling and Deploying Oracle CEP Applications" in the Oracle Fusion Middleware Developer's Guide for Oracle Complex Event Processing for Eclipse.

If, during deployment, you get an exception that indicates that a package is invisible, add this package to the Import-Package header of the MANIFEST.MF file, then reassemble and redeploy the application. Keep adding packages in this manner until the application deploys successfully.

3.8.5 Backward Compatibility Issues

The following are non-backward compatible changes in the management framework:

- The following classes have been deprecated and removed from all operation signatures:

- com.bea.wlevs.management.ManagementException

- com.bea.wlevs.management.ManagementRuntimeException

- com.bea.wlevs.management.MbeanOperationsException

- The following methods have been removed from all MBeans: isRegistered(), preRegister(), postRegister(), getMBeanInfo().

- The monitoring-related methods have been removed from StageMBean and replaced by com.bea.wlevs.monitor.management.MonitorRuntimeMBean.

- The com.bea.wlevs.management.boot.BootMBean has been removed.

- The com.bea.wlevs.management.configuration.ConfigSessionBean has been removed.

- The ObjectName for the AppDeploymentMBean has been changed to include the DomainMBean as a parent.

- The class com.bea.wlevs.server.management.mbean.ServerRuntimeMBean has been changed to com.bea.wlevs.management.runtime.ServerRuntimeMBean.

- Two additional modules have been added: com.bea.wlevs.management.api_* and com.bea.wlevs.management.spi_*, in addition to the existing com.bea.wlevs.management_*.

- The service com.bea.wlevs.spi.ManagementService has been moved from bundle com.bea.wlevs.spi_* to com.bea.wlevs.management.spi_*.

Glossary

Adapter

An element of the EPN that interfaces directly to an inbound event source. Adapters understand the inbound protocol, and are responsible for converting the event data into a normalized form that can be queried by a POJO. Adapters forward the normalized event data into a Stream.

Aggregate Function

Aggregate functions return a single aggregate result based on group of tuples, rather than on a single tuple.

See also Function and Single-Row Function.

CEP

Complex Event Processing.

Channel

A channel represents the physical conduit through which events flow between other types of components, such as between an Adapter and a Processor, and between a Processor and an Event Bean. A channel can model a Stream or Relation.

Condition

An Oracle CQL condition specifies a combination of one or more expressions and logical (Boolean) operators and returns a value of TRUE, FALSE, or UNKNOWN.

Constant value

A fixed data value. Synonymous with Literal.

CQL

Oracle Continuous Query Language. Supersedes EPL.

Data Feed

A synonym for Event Source.

Destination

An Oracle CQL destination identifies a consumer of query results such as the Enterprise Link BAM Adapter, JMS queue or topic, or file.

Deterministic Garbage Collection

Short, predictable pause times for memory heap garbage collection, which is the process of clearing dead objects from the heap, thus releasing that space for new objects.

DStream

A relation-to-stream operator that represents deleted tuples.

EDA

Event-Driven Architecture.

EPL

Oracle Event Processing Language. Superseded by CQL.

EPN

Oracle Event Processing Network. An EPN is the arbitrary interconnection of Adapter, Stream, POJO, and business logic POJOs used by Oracle CEP to process events.

Event Bean

A POJO to that contains the business logic executed when a notable event is detected. An event bean is an Event Sink.

Event Rule

A query, expressed in CQL or EPL, executed by a POJO to filter and aggregate events.

Event Sink

A component that consumes events, such as a Processor.

See also Event Source.

Event Source

A component that provides events, such as a sensor, wire service, or stock ticker.

See also Data Feed and Event Sink.

Expressions

An Oracle CQL expression is a combination of one or more values, operators, and Oracle CQL functions that evaluates to a value. An expression generally assumes the datatype of its components.

See also Condition and Function.

Format model

A character literal that describes the format of datetime or numeric data stored in a character string.

Function

Oracle CQL functions are similar to operators in that they manipulate data items and return a result. Functions differ from operators in the format of their arguments. This format enables them to operate on zero, one, two, or more arguments.

See also Condition, Aggregate Function, and Single-Row Function.

Incremental Processing

A user-defined aggregate function design pattern that improves scalability and performance by ensuring that the cost of (re)computation on arrival of new events will be proportional to the number of new events as opposed to the total number of events seen thus far.

If your user-defined aggregate function supports incremental processing, you specify the supports incremental processing clause in the register function statement to instruct the Oracle CEP Service Engine to supply only the new event data as opposed to performing a rescan over already processed event data.

IStream

A relation-to-stream operator that represents inserted tuples.

Join

A query that combines rows from two or more streams, views, or relations.

Latency

An expression of how much time it takes for data to get from one designated point to another.

Literal

A fixed data value. Synonymous with Constant value.

Monotonic

A sequence of values that are consistently increasing and never decreasing or consistently decreasing and never increasing. The sequence may contain multiple consecutive occurrences of the same value.

Now window

A special case of the time-based sliding window on a stream S that takes a time-interval T as a parameter and is specified by: S [Range T]. A Now window is defined as: S [Now] (short for S [Range 0]). When T = 0, the relation at time t consists of tuples obtained from elements of S with timestamp t.

See also Sliding window.

Operators

Oracle CQL operators manipulate data items and return a result. Syntactically, an operator appears before or after an operand or between two operands.

OSGi

A dynamic module system for Java that provides a service-oriented, component-based environment and standardized software lifecycle management. Oracle CEP applications are packaged and deployed as OSGi bundles. For more information, see http://www.osgi.org/.

Partitioned window

A partitioned sliding window on a stream S takes a positive integer number of tuples N and a subset {A1,... Ak} of the stream's attributes as parameters and is specified by: S[Partition By A1 ... Ak Rows N] or, optionally, S[Partition By A1 ... Ak Rows N Range T].

See also Sliding window.

POJO

A Plain Old Java Object. A Java class that is not required to implement a third-party interface or extend a third-party class. In Oracle CEP, you can express your business logic using POJOs.

Processor

An element of the EPN that consumes normalized event data from a stream, processes it using queries (expressed in CQL or EPL), and may generate new events to an output stream.

Query

A query is an operation that retrieves data from one or more streams or views. In this reference, a top-level SELECT statement is called a query.

Real-time

A level of computer responsiveness that a user senses as sufficiently immediate or that enables the computer to keep up with some external process (for example, to present visualizations of the weather as it constantly changes).

Relation

A relation is time-varying bag of tuples. Here "time" refers to an instant in the time domain. At every instant of time, a relation is a bounded set. It can also be represented as a sequence of timestamped tuples that includes insertions, deletions, and updates to capture the changing state of the relation. The updates are required to arrive at the system in the order of increasing timestamps. Like streams, relations have a fixed schema to which all tuples conform.

RStream

A relation-to-stream operator that maintains the entire current state of its input relation and outputs all of the tuples as insertions at each time step.

Single-Row Function

Single-row functions return a single result row for every row of a queried stream or view.

See also Function and Aggregate Function.

Sliding window

A stream-to-relation operator based on the window specification derived from SQL99.

See also: Now window, Partitioned window, Unbounded window, tuple-based, and Unbounded window, time-based.

Source

An Oracle CQL source identifies a producer of data that a Oracle CQL query operates on such as the Enterprise Link BAM Adapter, JMS queue or topic, or file.

Spring Framework

A light-weight, open source application framework for Java. Oracle CEP server uses the Spring Framework to host Oracle CEP applications. For more information, see http://www.springframework.org/.

Stream

A stream is a sequence of timestamped tuples. There could be more than one tuple with the same timestamp. The tuples of an input stream are required to arrive at the system in the order of increasing timestamps. A stream has an associated schema consisting of a set of named attributes, and all tuples of the stream conform to the schema.

A stream is a bag (or multi-set) of tuple-timestamp pairs, which can be represented as a sequence of timestamped tuple "insertions".

In Oracle CEP, a stream is modeled as a channel component.

See also Tuple and Channel.

Throughput

An Oracle CQL source identifies a producer of data that a Oracle CQL query operates on such as the Enterprise Link BAM Adapter, JMS queue or topic, or file.

Tuple

The term "tuple of a stream" denotes the ordered list of data (excluding timestamp data) portion of a stream element (the s of <s,t>). For example, a stock ticker data stream might appear like this where each stream element is made up of <timestamp value>, <stock symbol>, and <stock price>:

...
<timestampN>    NVDA,4
<timestampN+1>  ORCL,62
<timestampN+2>  PCAR,38
<timestampN+3>  SPOT,53
<timestampN+4>  PDCO,44
<timestampN+5>  PTEN,50
...

In the stream element <timestampN+1>  ORCL,62, the tuple is ORCL,62.

See also Stream.

Unbounded window, time-based

A special case of the time-based sliding window on a stream S that takes a time-interval T as a parameter and is specified by: S [Range T]. An Unbounded window is defined as: S [Range Unbounded] (short for S [Range infinity]). When T = infinity, the relation at time t consists of tuples obtained from all elements of S up to t.

See also Sliding window.

Unbounded window, tuple-based

A special case of the tuple-based sliding window on a stream S that takes a number of tuples N as a parameter and is specified by: S [Rows N]. An Unbounded window is defined as: S [Rows Unbounded] (short for S [Rows infinity] and equivalent to S [Range Unbounded]). When T = infinity, the relation at time t consists of tuples obtained from all elements of S up to t.

See also Sliding window.

View

An Oracle CQL view represents an alternative selection on a stream or relation. In Oracle CQL, you use a view instead of a subquery.

Index

A  B  C  D  E  F  H  I  J  M  O  P  S  T  U

Symbols

*

maximal pattern quantifier (0 or more times), 2.7.4.1

*?

minimal pattern quantifier (0 or more times), 2.7.4.1

+

maximal pattern quantifier (1 or more times), 2.7.4.1

+?

minimal pattern quantifier (1 or more times), 2.7.4.1

?

maximal pattern quantifier (0 or 1 time), 2.7.4.1

??

minimal pattern quantifier (0 or 1 time), 2.7.4.1

A

adapters, 1.2

Ant

CQL sample targets, 2.7.3

Event Record and Playback sample targets, 2.11.3

FX sample targets, 2.9.3

HelloWorld sample targets, 2.6.3

installing, 3.1

Oracle Spatial sample targets, 2.8.3

Signal Generation sample targets, 2.10.3

B

beans, 1.2

C

channels, 1.2

CQL sample

about, 2.7

Ant targets, 2.7.3

building, 2.7.2

deploying, 2.7.2

running, 2.7.1

D

data cartridge samples

Oracle Spatial

about, 2.8

Ant targets, 2.8.3

building, 2.8.2

component configuration file, 2.8.6

deploying, 2.8.2

EPN assembly file, 2.8.5

implementation, 2.8.4

running, 2.8.1

development environment, 2.5

E

EDA

decoupled components, 1.2

event sinks, 1.2

event sources, 1.2

event streams, 1.2

example, 1.2

rule driven, 1.2

environment, 2.5

EPN

about, 1.3

FX sample assembly file, 2.9.5

HelloWorld sample assembly file, 2.6.5

Oracle Spatial sample assembly file, 2.8.5

Signal Generation sample assembly file, 2.10.5

topologies, 1.3

event beans, 1.2

Event Processing Network. See EPN

Event Record and Playback sample

about, 2.11

Ant targets, 2.11.3

building, 2.11.2

deploying, 2.11.2

implementation, 2.11.4

running, 2.11.1

event sinks, 1.2

event sources, 1.2

event streams, 1.2

Event-Driven Architecture. See EDA

F

FX sample

about, 2.9

Ant targets, 2.9.3

building, 2.9.2

component configuration file, 2.9.6

deploying, 2.9.2

EPN assembly file, 2.9.5

implementation, 2.9.4

running, 2.9.1

H

HelloWorld sample

about, 2.6

Ant targets, 2.6.3

building, 2.6.2

component configuration file, 2.6.6

deploying, 2.6.2

EPN assembly file, 2.6.5

implementation, 2.6.4

running, 2.6.1

I

installation

Ant, 3.1

default domain, 3.1.3

file name, 1.6

installation programs, 1.6

installers, 1.6

JRockit, 3.1

JVM, 3.1.2

middleware home, 3.1.4

mode

console, 3.1.5.2

graphical, 3.1.5.1

silent, 3.1.5.3

Oracle CEP IDE for Eclipse, 3.7

Oracle Fusion Middleware directory, 3.1.4

patches, 3.5

post-installation tasks, 3.6

pre-installation tasks, 3.1

samples, 2.2, 3.1.3

J

JRockit

installing, 3.1

JVM

about, 3.1.2

HP, 3.1.2.3

IBM/AIX, 3.1.2.3

Oracle JRockit Real Time, 3.1.2.1

Sun JVM, 3.1.2.2

M

MATCH_RECOGNIZE clause, 2.7.4.1

MEASURES clause, 2.7.4.1

middleware home, 3.1.4

O

Oracle CEP IDE for Eclipse

about, 3.7

installing, 3.7

Oracle CEP Visualizer, 2.3

Oracle Spatial sample

about, 2.8

Ant targets, 2.8.3

building, 2.8.2

component configuration file, 2.8.6

deploying, 2.8.2

EPN assembly file, 2.8.5

implementation, 2.8.4

running, 2.8.1

P

patches, 3.5

platforms, 1.6

processors, 1.2

S

samples

about, 2.1

Ant targets

CQL, 2.7.3

Event Record and Playback, 2.11.3

FX, 2.9.3

HelloWorld, 2.6.3

Oracle Spatial, 2.8.3

Signal Generation, 2.10.3

building

CQL, 2.7.2

Event Record and Playback, 2.11.2

FX, 2.9.2

HelloWorld, 2.6.2

Oracle Spatial, 2.8.2

Signal Generation, 2.10.2

component configuration file

FX, 2.9.6

HelloWorld, 2.6.6

Oracle Spatial, 2.8.6

Signal Generation, 2.10.6

deploying

CQL, 2.7.2

Event Record and Playback, 2.11.2

FX, 2.9.2

HelloWorld, 2.6.2

Oracle Spatial, 2.8.2

Signal Generation, 2.10.2

development environment, 2.5

EPN assembly file

FX, 2.9.5

HelloWorld, 2.6.5

Oracle Spatial, 2.8.5

Signal Generation, 2.10.5

implementation

Event Record and Playback, 2.11.4

FX, 2.9.4

HelloWorld, 2.6.4

Oracle Spatial, 2.8.4

Signal Generation, 2.10.4

installing, 2.2

Oracle CEP Visualizer, 2.3

performance, 2.4

ready-to-run, 2.1.1

running

CQL, 2.7.1

Event Record and Playback, 2.11.1

FX, 2.9.1

HelloWorld, 2.6.1

Oracle Spatial, 2.8.1

Signal Generation, 2.10.1

source, 2.1.2

Signal Generation sample

about, 2.10

Ant targets, 2.10.3

building, 2.10.2

component configuration file, 2.10.6

deploying, 2.10.2

EPN assembly file, 2.10.5

implementation, 2.10.4

running, 2.10.1

supported platforms, 1.6

T

tools

Oracle CEP IDE for Eclipse

about, 1.7

installing, 3.7

Oracle CEP Visualizer

about, 1.8

topologies, 1.3

U

user code, 1.2, 1.2

Copyright © 2007, 2011, Oracle and/or its affiliates. All rights reserved.