Fusion Middleware Oracle Complex Event Processingスタート・ガイド

11gリリース1 (11.1.1.6.2)

B61656-04(原本部品番号:E14476-08)

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

リリース11.1.1.6.x用のこのガイドでの新しい情報

1 Oracle CEPの概要

- 1.1 Oracle Complex Event Processingの紹介

- 1.2 Oracle CEPの概念

- 1.3 イベント処理ネットワーク

- 1.4 使用例

- 1.5 Oracle CEPの機能の概要

- 1.6 サポート対象のプラットフォーム

- 1.7 Oracle CEP IDE for Eclipse

- 1.8 Oracle CEP Visualizer

- 1.9 次の手順

2 Oracle CEPのサンプル

- 2.1 配布キットで提供されるサンプルの概要

- 2.1.1 すぐに実行できるサンプル

- 2.1.2 サンプル・ソース

- 2.2 デフォルトのocep_domainとサンプルのインストール

- 2.3 サンプルでのOracle CEP Visualizerの使用

- 2.4 サンプルのパフォーマンスの改善

- 2.5 開発環境の設定

- 2.5.1 Windowsでの開発環境の設定方法

- 2.5.2 UNIXでの開発環境の設定方法

- 2.6 HelloWorldのサンプル

- 2.6.1 helloworldドメインから実行するHelloWorldのサンプル

- 2.6.2 ソース・ディレクトリからビルドおよびデプロイするHelloWorldのサンプル

- 2.6.3 Hello WorldをビルドするAntターゲットの説明

- 2.6.4 HelloWorldのサンプルの実装

- 2.6.5 HelloWorldのEPNアセンブリ・ファイル

- 2.6.6 HelloWorldのコンポーネント構成ファイル

- 2.7 Oracle Continuous Query Language (CQL)のサンプル

- 2.7.1 CQLのサンプルの実行

- 2.7.2 CQLのサンプルのビルドとデプロイ

- 2.7.3 CQLサンプルをビルドするAntターゲットの説明

- 2.7.4 CQLのサンプルの実装

- 2.7.4.1 欠落イベントの問合せの作成

- 2.7.4.2 移動平均の問合せの作成

- 2.8 Oracle Spatialサンプル

- 2.8.1 Oracle Spatialサンプルの実行

- 2.8.2 Oracle Spatialサンプルのビルドとデプロイ

- 2.8.3 Oracle SpatialサンプルをビルドするAntターゲットの説明

- 2.8.4 Oracle Spatialサンプルの実装

- 2.8.5 Oracle SpatialサンプルのEPNアセンブリ・ファイル

- 2.8.6 Oracle Spatialサンプルのコンポーネント構成ファイル

- 2.9 外国為替取引(FX)のサンプル

- 2.9.1 外国為替取引のサンプルの実行

- 2.9.2 ソース・ディレクトリからビルドおよびデプロイする外国為替取引のサンプル

- 2.9.3 FXをビルドするAntターゲットの説明

- 2.9.4 FXのサンプルの実装

- 2.9.5 FXのEPNアセンブリ・ファイル

- 2.9.6 FXのプロセッサ・コンポーネント構成ファイル

- 2.9.6.1 FXのプロセッサ・コンポーネント構成ファイル: spreader.xml

- 2.9.6.2 FXのプロセッサ・コンポーネント構成ファイル: SummarizeResults.xml

- 2.10 シグナル生成のサンプル

- 2.10.1 シグナル生成のサンプルの実行

- 2.10.2 ソース・ディレクトリからビルドおよびデプロイするシグナル生成のサンプル

- 2.10.3 シグナル生成をビルドするAntターゲットの説明

- 2.10.4 シグナル生成のサンプルの実装

- 2.10.5 シグナル生成のEPNアセンブリ・ファイル

- 2.10.6 シグナル生成のコンポーネント構成ファイル

- 2.11 イベントの記録と再生のサンプル

- 2.11.1 イベントの記録/再生のサンプルの実行

- 2.11.2 ソース・ディレクトリからビルドおよびデプロイするイベントの記録/再生のサンプル

- 2.11.3 記録と再生のサンプルをビルドするAntターゲットの説明

- 2.11.4 記録と再生のサンプルの実装

3 Oracle CEPのインストール

- 3.1 インストールの概要

- 3.1.1 インストール・プログラムを開始する前に

- 3.1.2 JVMを選択する

- 3.1.2.1 Oracle JRockit Real Time

- 3.1.2.2 Sun JVM

- 3.1.2.3 その他のプラットフォーム固有JVM

- 3.1.3 デフォルトのOracle CEPドメインocep_domainとサンプル

- 3.1.4 Oracle Fusion Middlewareのディレクトリ構造と概念

- 3.1.4.1 Oracle CEP固有のミドルウェア・ホーム

- 3.1.4.2 既存のOracle Fusion Middlewareホーム

- 3.1.5 インストール・モード

- 3.1.5.1 グラフィカル・モード

- 3.1.5.2 コンソール・モード

- 3.1.5.3 サイレント・モード

- 3.2 グラフィカル・モードでのOracle CEPのインストール

- 3.3 コンソール・モードでのOracle CEPのインストール

- 3.4 サイレント・モードでのOracle CEPのインストール

- 3.4.1 サイレント・モード・インストール用のsilent.xmlファイルの作成

- 3.4.2 コンポーネント選択のガイドライン

- 3.4.3 コマンド・ウィンドウでの終了コードの戻り値

- 3.5 Oracle CEPパッチのインストール

- 3.6 インストール後の手順

- 3.6.1 IBM JDKのためのOracle CEPの構成

- 3.6.1.1 IBM AIX(64ビット)上のIBM JVMのためにOracle CEPを構成する方法

- 3.7 Oracle CEP IDE for Eclipseのインストール

- 3.8 Oracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレード

- 3.8.1 WebLogic Event Server 2.0ドメインのOracle CEP 10.3へのアップグレード

- 3.8.2 Oracle CEP 10.3ドメインのOracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレード

- 3.8.3 Oracle CEP 10.3で実行するためのWebLogic Event Server 2.0アプリケーションのアップグレード

- 3.8.4 Oracle CEP 11gリリース1 (11.1.1.6.2)で実行するためのOracle CEP 10.3アプリケーションのアップグレード

- 3.8.5 下位互換性について

用語集

索引

例一覧

- 2-1 HelloWorldのEPNアセンブリ・ファイル

- 2-2 HelloWorldのコンポーネント構成ファイル

- 2-3 Oracle SpatialサンプルのEPNアセンブリ・ファイル

- 2-4 Oracle Spatialサンプルのコンポーネント構成ファイル

- 2-5 FXのEPNアセンブリ・ファイル

- 2-6 コンポーネント定義のネスト

- 2-7 FXのプロセッサ・コンポーネント構成ファイル: spreader.xml

- 2-8 FXのプロセッサ・コンポーネント構成ファイル: SummarizeResults.xml

- 2-9 シグナル生成のEPNアセンブリ・ファイル

- 2-10 シグナル生成のコンポーネント構成ファイル

- 2-11 recplayアプリケーション構成ファイルconfig.xml: adapter要素

- 3-1 サイレント・モード・インストール用のsilent.xmlファイルのサンプル

- 3-2 サイレント・モードの終了コードを表示するWindowsコマンド・ファイルのサンプル

- 3-3 loadgenプロバイダを使用するアダプタ

- 3-4 StockTickイベントの登録

- 3-5 Spring-DM宣言済アダプタ・ファクトリ

- 3-6 wlevs:factory

図一覧

- 1-1 イベント駆動型システムの例

- 1-2 Oracle CEPアプリケーション

- 1-3 Oracle CEP IDE for Eclipse

- 1-4 Oracle CEP Visualizer

- 2-1 HelloWorldサンプルのイベント処理ネットワーク

- 2-2 CQLサンプルのイベント処理ネットワーク

- 2-3 Oracle CEP Visualizerの「ログオン」画面

- 2-4 Oracle CEP Visualizerダッシュボード

- 2-5 CQLアプリケーション画面: 「全般」タブ

- 2-6 CQLアプリケーション: 「イベント処理ネットワーク」タブ

- 2-7 Oracle CQLプロセッサ: 「全般」タブ

- 2-8 Oracle CQLプロセッサ: 「問合せウィザード」タブ

- 2-9 「テンプレート」タブ

- 2-10 SSourceの構成ダイアログ

- 2-11 パターンの構成ダイアログ: 「パターン」タブ

- 2-12 パターンの構成ダイアログ: 「定義」タブ

- 2-13 式ビルダー: CustOrder

- 2-14 パターンの構成ダイアログ: CustOrder条件を含む「定義」タブ

- 2-15 式ビルダー: NoApproval

- 2-16 式ビルダー: Shipment

- 2-17 パターンの構成ダイアログ: 「定義」タブの完了

- 2-18 「メジャー」タブ

- 2-19 式ビルダー: orderid

- 2-20 式ビルダー: amount

- 2-21 「メジャー」タブ: 完了

- 2-22 選択の構成ダイアログ: 「プロジェクト」タブ

- 2-23 選択の構成ダイアログ: 「プロジェクト」タブの完了

- 2-24 出力の構成ダイアログ

- 2-25 ルールのインジェクトの「確認」ダイアログ

- 2-26 Tracking問合せを含む「CQLルール」タブ

- 2-27 ストリーム・ビジュアライザ: 欠落イベントの表示

- 2-28 Oracle CEP Visualizerの「ログオン」画面

- 2-29 Oracle CEP Visualizerダッシュボード

- 2-30 CQLアプリケーション画面: 「全般」タブ

- 2-31 CQLアプリケーション: 「イベント処理ネットワーク」タブ

- 2-32 Oracle CQLプロセッサ: 「全般」タブ

- 2-33 Oracle CQLプロセッサ: 「問合せウィザード」タブ

- 2-34 問合せウィザード: SSource

- 2-35 SSourceの構成ダイアログ

- 2-36 問合せウィザード: フィルタ

- 2-37 SSourceアイコンと「フィルタ」アイコンの接続

- 2-38 フィルタの構成ダイアログ

- 2-39 フィルタの式ビルダー

- 2-40 フィルタの構成ダイアログ: フィルタの追加後

- 2-41 問合せウィザード: 選択

- 2-42 選択の構成ダイアログ: プロパティの選択

- 2-43 問合せウィザード: 出力

- 2-44 出力の構成ダイアログ

- 2-45 ルールのインジェクトの「確認」ダイアログ

- 2-46 ビューStockVolGt1000を含む「CQLルール」タブ

- 2-47 Oracle CEP Visualizerの「ログオン」画面

- 2-48 Oracle CEP Visualizerダッシュボード

- 2-49 CQLアプリケーション画面: 「全般」タブ

- 2-50 CQLアプリケーション: 「イベント処理ネットワーク」タブ

- 2-51 Oracle CQLプロセッサ: 「全般」タブ

- 2-52 Oracle CQLプロセッサ: 「問合せウィザード」タブ

- 2-53 問合せウィザード: 移動平均問合せのSSource

- 2-54 SSourceの構成ダイアログ: 移動平均問合せ

- 2-55 問合せウィザード: 移動平均問合せのウィンドウ

- 2-56 ウィンドウの構成ダイアログ: ウィンドウの追加後

- 2-57 問合せウィザード: 移動平均問合せの選択

- 2-58 選択の構成ダイアログ: ソース・プロパティsymbolの選択

- 2-59 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティsymbol

- 2-60 選択の構成ダイアログ: ソース・プロパティpriceの選択

- 2-61 式ビルダー: AVG関数の適用

- 2-62 選択の構成ダイアログ: 式を含む

- 2-63 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティprice

- 2-64 検証エラー: GROUP BY

- 2-65 「グループ」タブ: グループ化プロパティsymbolを含む

- 2-66 問合せウィザード: 出力

- 2-67 出力の構成ダイアログ

- 2-68 ルールのインジェクトの「確認」ダイアログ

- 2-69 ビューMovingAverageを含む「CQLルール」タブ

- 2-70 ストリーム・ビジュアライザ: 移動平均問合せの出力表示

- 2-71 Oracle Spatialサンプルのイベント処理ネットワーク

- 2-72 Oracle SpatialのWebページ

- 2-73 Oracle SpatialのWebページ: バス停到着タブ

- 2-74 Oracle SpatialのWebページ: バスの追跡

- 2-75 FXサンプルのイベント処理ネットワーク

- 2-76 シグナル生成サンプルのイベント処理ネットワーク

- 2-77 シグナル生成のダッシュボード

- 2-78 イベントの記録と再生のサンプルのイベント処理ネットワーク

- 2-79 Oracle CEP Visualizerの「ログオン」画面

- 2-80 Oracle CEP Visualizerダッシュボード

- 2-81 イベントの「記録」タブ

- 2-82 記録開始の「アラート」ダイアログ

- 2-83 イベントの「再生」タブ

- 2-84 再生開始の「アラート」ダイアログ

- 2-85 ストリーム・ビジュアライザ

- 3-1 Oracle CEP固有のミドルウェア・ホーム

- 3-2 既存のOracle Fusion MiddlewareホームのOracle CEP

表一覧

- 2-1 有効な注文のワークフロー

- 2-2 無効な注文のワークフロー

- 2-3 MATCH_RECOGNIZEのパターン量指定子

- 2-4 条件定義

- 3-1 ホーム・ディレクトリとOracle CEP固有のミドルウェア・ホーム

- 3-2 ホーム・ディレクトリと既存のミドルウェア・ホーム

- 3-3 silent.xmlファイルの値

- 3-4 終了コード

- 3-5 アップグレードの流れ

Oracle® Fusion Middleware

Oracle Complex Event Processingスタート・ガイド

11gリリース1 (11.1.1.6.2)

B61656-04(原本部品番号:E14476-08)

2012年4月

高性能イベント駆動型アプリケーションの開発のためのJavaサーバーである、Oracle Complex Event Processing (Oracle CEP)の使用開始方法を説明する管理者および開発者向けのドキュメント。機能および概念の概要、サンプル・アプリケーション、インストール・ガイドラインなどが含まれています。

Oracle Fusion Middleware Oracle Complex Event Processingスタート・ガイド 11gリリース1 (11.1.1.6.2)

B61656-04

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

原本主著者: Steve Traut、Peter Purich

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

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 America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

はじめに

このドキュメントには、Oracle Complex Event Processing (Oracle CEP)およびOracle Continuous Query Language (Oracle CQL)を習得するために役立つ、一般的な背景情報や詳しいコード・サンプルが含まれます。

対象読者

このドキュメントは、Oracle CEPおよびOracle CQLの習得に関心があるユーザーを対象としています。基本的なJava開発の知識が必要です。また、SQLの知識もあれば役立ちます。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleのお客様は、My Oracle Supportから電子サポートにアクセスできます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

関連ドキュメント

詳細は、次のドキュメントを参照してください。

- 『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』

- 『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』

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

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』

- 『Oracle Fusion Middleware Oracle Complex Event Processing EPL言語リファレンス』

- 『Oracle Database SQL言語リファレンス』: http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/toc.htm

- SQL99仕様(ISO/IEC 9075-1:1999、ISO/IEC 9075-2:1999、ISO/IEC 9075-3:1999およびISO/IEC 9075-4:1999)

- Oracle CEPフォーラム: http://forums.oracle.com/forums/forum.jspa?forumID=820

- Oracle CEPサンプル: http://www.oracle.com/technologies/soa/complex-event-processing.html

- Oracle Event Driven Architecture Suiteサンプル・コード: http://www.oracle.com/technology/sample_code/products/event-driven-architecture

表記規則

このドキュメントでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

斜体

イタリックは、ユーザーが特定の値を指定するプレースホルダー変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

リリース11.1.1.6.x用のこのガイドでの新しい情報

リリース11.1.1.6.x用に、このガイドはいくつかの点が更新されています。次の表に、追加または変更された項を示します。11.1.1.6.xの最初のリリースで機能を使用できなかった場合は、最後の列に更新を含むドキュメントのリリースを示します。

既知の問題のリストについては(リリース・ノート)、Oracle SOA製品およびOracle AIA Foundation Packの既知の問題に関するページ(http://www.oracle.com/technetwork/middleware/docs/soa-aiafp-knownissuesindex-364630.html)を参照してください。

項

変更内容

11.1.1.6.0

11.1.1.6.1

なし

1 Oracle CEPの概要

この章では、Oracle Complex Event Processing (Oracle CEP)の概要について説明します。ここではイベント処理ネットワーク、Eclipse IDEによる開発、Oracle CEP Visualizerによるアプリケーション管理を含む、主な概念、機能および使用例について説明します。

- 1.1項「Oracle Complex Event Processingの紹介」

- 1.2項「Oracle CEPの概念」

- 1.3項「イベント処理ネットワーク」

- 1.4項「使用例」

- 1.5項「Oracle CEPの機能の概要」

- 1.6項「サポート対象のプラットフォーム」

- 1.7項「Oracle CEP IDE for Eclipse」

- 1.8項「Oracle CEP Visualizer」

- 1.9項「次のステップ」

1.1 Oracle Complex Event Processingの紹介

Oracle CEP(以前の名称はWebLogic Event Server)は、高性能イベント駆動型アプリケーションの開発とデプロイメントのためのJavaサーバーです。これは、Oracle Continuous Query Language (Oracle CQL)ベースの豊富な宣言的環境を提供するOracle CEPサービス・エンジンを含む共有サービスを含む、Equinox OSGiに基づく軽量Javaアプリケーション・コンテナです - Oracle CQLは、ビジネス・オペレーションを管理するための効率と効果を向上するためにデータのストリームをサポートする追加のコンストラクトがあるSQLベースの問合せ言語です。 Oracle CEPは、JRockitリアルタイムを使用して超高スループットおよびマイクロ秒単位での待機時間をサポートし、完全なリアルタイム・エンドツーエンドJavaイベント駆動型アーキテクチャ(EDA)の開発プラットフォームに対して、Eclipseを開発するツールを使用してOracle CEP VisualizerおよびOracle CEP IDEを提供します。

Oracle CEPには、ビジネス・ロジックを含むユーザーのJavaコード(POJO)をデプロイする機能があります。Oracle CEP内でビジネス・ロジックを実行することにより、時間およびイベント駆動型アプリケーション向けの高度に調整されたフレームワークが提供されます。

1.2 Oracle CEPの概念

図1-1に、イベント駆動型システムの概要を示します。

図1-1 イベント駆動型システムの例

「図1-1 イベント駆動型システムの例」の説明

イベント駆動型システムは、通常、複数のイベント・ソース、リアルタイム・イベント駆動型アプリケーション、およびイベント・シンクで構成されています。Oracle CEPサーバーと、そのサーバーにデプロイするOracle CEPアプリケーションが、イベント駆動型アプリケーションを構成します。イベント・ソースは通常のイベント・データのストリームを生成します。Oracle CEPアプリケーションはイベント・ストリームをリスニングし、これらのイベントを処理して特別なイベントを生成します。イベント・シンクは特別なイベントを受信します。

イベント・ソース、イベント駆動型アプリケーション、およびイベント・シンクは互いに独立しているため、他のコンポーネントに変更を加えることなくこれらのコンポーネントを追加または削除できます。これはイベント駆動型アーキテクチャの重要な特性です。

イベント駆動型アプリケーションはルールによって駆動されます。Oracle CEPでは、Oracle Continuous Query Language (Oracle CQL)を使用してルールは問合せとして表されます。これらの問合せはデータ・ストアに対して永続化され、イベントの着信ストリームの処理およびイベントの発信ストリームの生成に使用されます。通常、問合せはフィルタリングおよび集計機能を実行し、着信イベント・ストリームの特別なイベントを検出して抽出します。このため、発信イベント数は着信イベント数をはるかに下回ります。

Oracle CEPはイベント駆動型アプリケーション開発用のミドルウェアです。Oracle CEPアプリケーションは、本質的にイベント駆動型アプリケーションです。

次に、アプリケーション自体について説明します。アプリケーションは、図1-2に示すようにOracle CEPサーバーによってホストされる軽量のコンテナです。

図1-2 Oracle CEPアプリケーション

「図1-2 Oracle CEPアプリケーション」の説明

通常、Oracle CEPアプリケーションは次の種類のコンポーネントによって構成されます。

- アダプタは、着信ストリームおよび発信ストリームとリレーション・ソースおよびリレーション・シンクの直接のインタフェースです。アダプタは、着信プロトコルと発信プロトコルを理解し、プロセッサが問い合せできる標準化形式にイベント・データを変換します。アダプタは、標準化したイベント・データをチャネルすなわち発信ストリームとリレーション・シンクに転送します。

- チャネルはイベント処理エンドポイントです。ストリームは、イベント処理エージェントがデータを処理できるようになるまで、イベント・データのキューなどを行います。

- プロセッサ(またはイベント処理エージェント)は標準化されたイベント・データをチャネルから受け取り、問合せを使用してイベント・データを処理し、新しいイベントを出力チャネルに生成できます。

- Beanは、出力チャネルをリスニングするように登録され、新しいイベントが出力チャネルに入るとトリガーされます。このユーザー・コードは通常はplain-old-Java-object (POJO)です。ユーザー・アプリケーションは一連の外部サービス(JMS、Webサービス、ファイル書込みプログラムなど)を利用して、生成されるイベントを外部イベント・シンクに転送します。

- イベントBeanは出力チャネルをリスニングするように登録され、新しいイベントが出力チャネルに入るとトリガーされます。このユーザー・コードでは、Oracle CEPでBeanを管理できるようにOracle CEPイベントBean APIが使用されます。

1.3 イベント処理ネットワーク

アダプタ、チャネル、プロセッサ、およびビジネス・ロジックPOJOを任意に相互接続してイベント処理ネットワーク(EPN)を形成できます。EPNのトポロジの例を次に示します。

- アダプタ - チャネル - ビジネス・ロジックPOJO
シナリオ: 専用プロトコルから標準化されたモデルに適応させる以外には、処理が不要です。

- アダプタ - チャネル - プロセッサ - チャネル - ビジネス・ロジックPOJO
シナリオ: ユーザー・コードに対する直接的な処理です。

- アダプタ - チャネル - プロセッサ - チャネル - ビジネス・ロジックPOJO - チャネル - プロセッサ - チャネル - ビジネス・ロジックPOJO
シナリオ: 最初のプロセッサがイベント間の因果関係を作成し、2番目のプロセッサがイベントを集約して複合イベント(特別なイベント)を作成する2層のイベント処理です。

EPNには重要な特性が2つあります。

- イベント処理ネットワークを使用して処理エージェントの階層を作成できるため、非常に複雑なイベント処理が実現されることです。EPNの各層では、その層のイベントが集約されて複合イベントになります。複合イベントはその層の上位層の単純なイベントになります。

- イベント処理ネットワークの特性は、積分可能性(別々に開発されたコンポーネントを連携して正常に機能させる性質)の確保に役立つことです。たとえば、ユーザー・コードを追加して、ネットワーク内の複数の場所で外部サービスを参照することができます。

1.4 使用例

Oracle CEPの使用例は様々な業種やアプリケーションに及びます。多様な使用例のごく一部を次に示します。

- 金融: アルゴリズムによる取引
市場価格の変動に基づいた自動株取引。問合せの例: 任意の20秒のウィンドウ内で、株式Bが2%を上回る幅で上昇し、かつ株式Aが同様の上昇をしない場合は、自動的に株式Aを購入します。

例は、2.10項「シグナル生成のサンプル」を参照してください。

- 交通: セキュリティと不正の検出
イベント内のパターンを検出することで不正行為を発見します。問合せの例: 1枚のIDカードを5秒未満の間に2回使用して都市地下鉄システムにアクセスした場合、ピギーバッキング行為のセキュリティ警告を発します。

- エネルギーと電気通信: 警報の相関関係
誤検出の警報を削減します。問合せの例: 任意の5秒のウィンドウ内で15件の警報を受信しても、30秒以内に検出した同様の警報が5件未満だった場合は、何もしません。

- 医療: 患者のモニタリング
患者の生命兆候をモニターし、特定のイベントが発生した場合に何らかのタスクを実行します。問合せの例: 任意の10秒のウィンドウ内で、薬の変更後、この患者に対する最大許容値の20%以内の血圧の上昇が発生した場合、最も近くの看護師に警告します。

1.5 Oracle CEP機能の概要

Oracle CEPの主な機能の概要を次に示します。

- 11g リリース1(11.1.1)の新機能: Oracle Continuous Query Language (Oracle CQL)は、ストリーミング・データをサポートする構文が追加されたSQLベースの問合せ言語です。Oracle CQLを使用すると、データ・ストリームに対する問合せを作成して、Oracle CEPを使用する複雑なイベント処理(CEP)を実行できます。Oracle CQLはスケーラブルかつ包括的です。幅広い演算子(豊富なウィンドウ演算子を含む)、関数(組込み、Coltおよびjava.lang.Math関数)および文が提供されます。EPLはOracle CQLによって置き換えられます。

- 11g リリース1(11.1.1)の新機能: Coherenceクラスタリングおよび分散キャッシュのサポート。

- 11g リリース1(11.1.1)の新機能: Oracle CEP Visualizerの問合せコンストラクタと問合せ計画ジェネレータ、およびCoherenceクラスタリングと分散キャッシュのサポート。

- イベント・キャッシング - アプリケーションでは、必要に応じてキャッシュにイベントをパブリッシュしたり、キャッシュのイベントを使用したりすることで、イベントの可用性を高め、イベント処理アプリケーションのパフォーマンスを向上させることができます。

- イベントの記録と再生 - Oracle CEPのイベント・リポジトリ機能を使用すると、EPNを通じて流れるイベントを記録、格納できるため、後からイベントを再生できます。

- 組込みHTTPパブリッシュ/サブスクライブ・アダプタ - アプリケーションでは、3つの組込みHTTPパブリッシュ/サブスクライブ・アダプタを使用して、HTTPパブリッシュ/サブスクライブ・サーバー・チャネルに対するパブリッシュ(ローカルおよびリモート)とサブスクライブを簡単に行うことができます。

- 組込みJMSアダプタ - 2種類のJMSアダプタ(着信と発信)を使用して、Javaコードを作成せずに、アプリケーションからJMSキューに対して個別にメッセージを送受信できます。

- Oracle CEP Visualizer - Oracle CEPからのデータを使用し、そのデータを便利で直感的な方法でシステム管理者やオペレータに表示し、さらに特定のタスクにおいて構成の変更を行うために受け入れたデータを再びOracle CEPに返すWeb 2.0アプリケーションです。

- マルチ・サーバー・ドメイン(クラスタリングとも呼ばれる) - Oracle CEPで、管理上の目的から複数のサーバーを論理的に接続したり、共有のユーザー・データ・グラム・プロトコル(UDP)マルチキャスト・アドレスとポートを使用して物理的に接続したりできるようになりました。

- 低レイテンシが要求される大量のストリーミング・データを処理するために、通常の従来型Javaアプリケーション(POJO)またはSpringアプリケーションのデプロイメントをサポートするアプリケーション・サーバー。

- Oracle CEPアプリケーションは、イベント駆動型アプリケーションとして開発およびデプロイされます。つまり、EPNアセンブリ・ファイルでカスタムSpringタグを使用してイベント処理ネットワークを定義し、それによってアプリケーションの標準Springコンテキスト・ファイルを拡張します。

- アプリケーション・サーバーは、複合イベント・プロセッサ(CEP)、アダプタ、ストリームなどの一連のリアル・タイム・サービスを提供します。このサーバーは、高いメッセージ・スループット、低いレイテンシ、および確定的な動作を実現するように高度に調整されています。

- 複合イベント・プロセッサは、大量のストリーミング・データを処理するための高パフォーマンスで継続的な問合せエンジンです。1つまたは複数のストリームから受け取るストリーミング・データのフィルタ処理、相関、および集約を完全にサポートしています。

- イベント処理言語(EPL)は、SQLに類似した言語であり、ストリームから受け取るイベント・データを宣言によってフィルタ処理、相関、集約、およびマージできます。また、他のストリームに結果を挿入して、下流でさらに処理を行うことができます。EPLルールは、複合イベント・プロセッサを構成するXMLファイルで定義するか、またはAPIを使用してプログラムで定義します。EPLはOracle CQLによって置き換えられます。

- アダプタSDKは、着信データ・フィードをリスニングするアダプタの作成に必要なすべてのツールを提供します。

- 一連の製品サンプルには、入門用として簡単なHello Worldのシナリオを示す例と、Oracle CEPのその他の機能を使用した複雑な外国為替取引やアルゴリズムによる取引のシナリオを示す例の両方があります。

- データ・フィードをシミュレートするロード・ジェネレータ・ユーティリティは、実際のデータ・フィードに接続せずにアプリケーションをテストするのに役立ちます。

- 事前に組み込まれたインストゥルメンテーションを含むモニター・サービスは、コンポーネント・レベルでスループットとレイテンシを計測するためのサービスです。

- 静的および動的な構成フレームワーク。静的構成は、XMLファイルを使用して実行します。動的構成を実行するには、JMXとコマンド・ライン・ユーティリティwlevs.Adminを使用して構成MBeanおよびランタイムMBeanにアクセスします。

- Oracle CEPは、Oracle microServices Architecture (mSA)を基盤として構築されています。Oracle mSAは、OSGiベースのフレームワークを使用して、モジュールまたは機能セットで提供されるサービスを管理します。Oracle mSAが提供するサービスを次に示します。

- Jetty(サーブレットを実行するHTTPコンテナ)

- リレーショナル・データベースにアクセスするためのjavax.sql.DataSourceの実装とJDBCシン・ドライバ

- ロギングとデバッグ

- 認証と認可のセキュリティ

1.6 サポート対象のプラットフォーム

Oracle CEPのサポート対象プラットフォームの詳細は、http://www.oracle.com/technology/software/products/ias/files/oracle%20fusion%20middleware%2011gR1%20(11.1.1.x)%20certification%20matrix.xlsを参照してください。

ご使用のプラットフォームに対応するインストール・プログラムは、http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.htmlにあります。詳細は、3.1項「インストールの概要」を参照してください。

1.7 Oracle CEP IDE for Eclipse

Oracle CEP IDE for Eclipseは、図1-3に示すように、Oracle CEPアプリケーションを開発するプログラマを対象としています。

図1-3 Oracle CEP IDE for Eclipse

「図1-3 Oracle CEP IDE for Eclipse」の説明

Oracle CEP IDE for Eclipseは、Oracle CEPアプリケーションの開発、デプロイ、およびデバッグを支援するためにデザインされたEclipse IDEのプラグインです。

Oracle CEP IDE for Eclipseの主な機能は次のとおりです。

- イベント駆動型アプリケーションの作成を直ちに開始するためのプロジェクト作成ウィザードおよびテンプレート。

- JavaやXMLファイルなどのOracle CEPアプリケーションに共通のソース・ファイル用の高度なエディタ。

- IDE内部からOracle CEPサーバー・インスタンスをシームレスに開始、停止およびデプロイするための統合化されたサーバー管理。

- 統合化されたデバッグ。

- イベント処理アプリケーション内を参照および移動できる、イベント処理ネットワーク(EPN)のビジュアルなデザイン・ビュー。

- Oracle CEP VisualizerをIDEから使用できる、Oracle CEP Visualizerの統合化されたサポート(1.8項「Oracle CEP Visualizer」を参照)。

詳細については、次を参照してください:

- 3.7項「Oracle CEP IDE for Eclipseのインストール」

- 『Oracle Fusion Middleware 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によって、Oracle CEP Visualizer(図1-4)という高度なランタイム管理コンソールが提供されます。

図1-4 Oracle CEP Visualizer

「図1-4 Oracle CEP Visualizer」の説明

Oracle CEP Visualizerを使用すると、Oracle CEPサーバー・ドメインとそのドメインにデプロイするOracle CEPアプリケーションの管理、チューニングおよび監視をすべてブラウザから行うことができます。Oracle CEP Visualizerでは、洗練された様々なランタイム管理ツールが提供されます。これにはOracle CQLおよびEPLのルールの管理や作成も含まれます。

Oracle CEP Visualizerは、すべてのOracle CEPサーバーにあらかじめインストールされています。

詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』を参照してください。

1.9 次の手順

- Oracle CEP 11g リリース1(11.1.1)をインストールします。
第3章「Oracle CEPのインストール」を参照してください。

- 各ドメインからサンプルを実行します。
参照:

- 2.1項「配布キットで提供されるサンプルの概要」

- 2.6.1項「helloworldドメインから実行するHelloWorldのサンプル」

- 2.9.1項「外国為替取引のサンプルの実行」

- 2.10.1項「シグナル生成のサンプルの実行」

- 2.11.1項「イベントの記録/再生のサンプルの実行」

- 2.7.1項「CQLのサンプルの実行」

- ソース・ファイルと構成ファイルを参照して、サンプル・アプリケーションをそれぞれのソース・ディレクトリからビルドすることで、サンプル・アプリケーションがどのようにプログラミングされているかを理解します。
参照:

- 2.6.2項「ソース・ディレクトリからビルドおよびデプロイするHelloWorldのサンプル」

- 2.9.2項「ソース・ディレクトリからビルドおよびデプロイする外国為替取引のサンプル」

- 2.10.2項「ソース・ディレクトリからビルドおよびデプロイするシグナル生成のサンプル

- 独自のOracle CEPドメインを作成します。
参照:

- 『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロンサーバー・ドメインの作成に関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のOracle CEPマルチサーバー・ドメインの作成に関する項

- 新しいOracle CEPアプリケーションを作成し、新しいドメインにデプロイします。
『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーションの作成の概要に関する項を参照してください。

- Oracle CEPフォーラム(http://forums.oracle.com/forums/forum.jspa?forumID=820)で質問を提示し、解決方法を探します。

2 Oracle CEPのサンプル

この章では、Oracle Complex Event Processing (Oracle CEP)に付属するサンプル・コードを紹介し、簡単な"Hello World"からOracle Continuous Query Language (CQL)のアプリケーションまでのコードの設定および使用方法だけでなく、空間や業界に特化したシナリオの場合も同様に説明します。

- 2.1項「配布キットで提供されるサンプルの概要」

- 2.2項「デフォルトのocep_domainとサンプルのインストール」

- 2.3項「サンプルでのOracle CEP Visualizerの使用」

- 2.4項「サンプルのパフォーマンスの改善」

- 2.5項「開発環境の設定」

- 2.6項「HelloWorldのサンプル」

- 2.7項「Oracle Continuous Query Language (CQL)のサンプル」

- 2.8項「Oracle Spatialサンプル」

- 2.9項「外国為替取引(FX)サンプル」

- 2.10項「シグナル生成のサンプル」

- 2.11項「イベントの記録と再生のサンプル」

2.1 配布キットで提供されるサンプルの概要

Oracle CEPには次のサンプルが含まれています。

- HelloWorld: 標準的なOracle CEPの基本スケルトン。

- Oracle Continuous Query Language (CQL): Oracle CEP Visualizer問合せウィザードを使用して、イベント・ストリームを処理する様々なOracle CQL問合せを作成する方法を示すサンプル。

- Oracle Spatial: Oracle Spatialの使用方法を示すサンプルで、Oracle CQL問合せで全地球測位システム(GPS)のイベント・ストリームを処理してバスのGPS位置を追跡し、バスが事前に定義されたバス停の位置に到着するとアラートを生成します。

- 外国為替取引(FX): 複数のコンポーネントを含む完全なサンプル。

- シグナル生成: 市場取引およびトレンド検出をシミュレートするサンプル。

- イベントの記録と再生: 永続イベント・ストアを使用してイベントの記録と再生を構成する方法を示すサンプル。

これらのサンプルは次の2つの形式で提供されます。

- 2.1.1項「すぐに実行できるサンプル」

- 2.1.2項「サンプル・ソース」

サンプルではAntを開発ツールとして使用しています。Antの詳細とコンピュータへのインストール方法は、http://ant.apache.org/を参照してください。

注意:

その他のOracle CEPサンプル・コードは、http://www.oracle.com/technology/sample_code/products/event-driven-architectureにあります。

2.1.1 すぐに実行できるサンプル

アセンブルしたアプリケーションをデプロイするための、そのまま使用できるサンプル・ドメインが事前に構成されています。わかりやすくするために、サンプルごとに固有のドメインが用意されています。各ドメインはスタンドアロン・サーバー・ドメインです。サーバー・ファイルは、ドメイン・ディレクトリのdefaultserverサブディレクトリに格納されます。アプリケーションをデプロイするには、単にドメインのデフォルト・サーバーを起動します。

- サンプルのHelloWorldドメインは\MIDDLEWARE_HOME\ocep_11.1\samples\domains\helloworld_domainにあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。
詳細は、2.6.1項「helloworldドメインから実行するHelloWorldのサンプル」を参照してください。

- サンプルのCQLドメインはMIDDLEWARE_HOME\ocep_11.1\samples\domains\cql_domainにあります。
詳細は、2.7.1項「CQLのサンプルの実行」を参照してください。

- サンプルのOracle SpatialドメインはMIDDLEWARE_HOME\ocep_11.1\samples\domains\spatial_domainにあります。
詳細は、2.8.1項「Oracle Spatialサンプルの実行」を参照してください。

- サンプルの外国為替取引ドメインはMIDDLEWARE_HOME\ocep_11.1\samples\domains\fx_domainにあります。
詳細は、2.9.1項「外国為替取引のサンプルの実行」を参照してください。

- サンプルのシグナル生成ドメインはMIDDLEWARE_HOME\ocep_11.1\samples\domains\signalgeneration_domainにあります。
詳細は、2.10.1項「シグナル生成のサンプルの実行」を参照してください。

- サンプルの記録と再生のドメインはMIDDLEWARE_HOME\ocep_11.1\samples\domains\recplay_domainにあります。
詳細は、2.11.1項「イベントの記録/再生のサンプルの実行」を参照してください。

2.1.2 サンプル・ソース

各サンプルのJavaソースと構成XMLソースは、サンプルの開発環境を示す個別のソース・ディレクトリで提供されます。

- HelloWorldソース・ディレクトリは\MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\helloworldにあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。
詳細は、2.6.4項「HelloWorldのサンプルの実装」を参照してください。

- CQLのソース・ディレクトリはMIDDLEWARE_HOME\ocep_11.1\\samples\source\applications\cqlにあります。
詳細は、2.7.4項「CQLのサンプルの実装」を参照してください。

- Oracle Spatialのソース・ディレクトリはMIDDLEWARE_HOME\ocep_11.1\\samples\source\applications\spatialにあります。
詳細は、2.8.4項「Oracle Spatialサンプルの実装」を参照してください。

- 外国為替取引のソース・ディレクトリはMIDDLEWARE_HOME\ocep_11.1\samples\source\applications\fxにあります。
詳細は、2.9.4項「外国為替取引のサンプルの実装」を参照してください。

- シグナル生成のソース・ディレクトリは、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\signalgenerationにあります。
詳細は、2.10.4項「シグナル生成のサンプルの実装」を参照してください。

- 記録と再生のソース・ディレクトリはMIDDLEWARE_HOME\ocep_11.1\\samples\source\applications\recplayにあります。
詳細は、2.11.4項「記録と再生のサンプルの実装」を参照してください。

2.2 「デフォルトのocep_domainとサンプルのインストール」

デフォルトのocep_domainドメイン(デフォルトのパスワード)およびサンプルを含め、すべてのOracle CEPコンポーネントをインストールするには、「カスタム」オプションを使用する必要があります。「標準」オプションには、デフォルトのocep_domainおよびサンプルは含まれません。

以前に「標準」オプションを使用してOracle CEPをインストールしている場合に、サンプルもインストールするには、Oracle CEPインストール・プロセスを再実行し、同じOracle CEPホーム・ディレクトリを指定します。インストール・プロセスの後半のステップで、サンプルのみをインストールできます。

2.3 サンプルでのOracle CEP Visualizerの使用

The Oracle CEP Visualizerは、Oracle CEPからのデータを使用し、そのデータを便利で直感的な方法でシステム管理者やオペレータに表示し、さらに特定のタスクにおいて構成の変更を行うために受け入れたデータを再びOracle CEPに返すWeb 2.0アプリケーションです。

Visualizer自身は各サーバー・インスタンスに自動的にデプロイされるOracle CEPアプリケーションです。サンプルでそれを使用するには、次の各サンプルに示されている手順に従ってサーバーを起動済であることを確認し、ブラウザで次のURLを起動します。

http://host:9002/wlevs

hostは、Oracle CEPをホストするコンピュータ名です。ブラウザを実行しているのと同じコンピュータである場合は、localhostとすることができます。

HelloWorldアプリケーションではセキュリティが無効になるため、ログイン画面でユーザー名とパスワードを入力せずに「ログオン」をクリックできます。ただし、FXおよびシグナル生成のサンプルでは、セキュリティが有効になるため、次の情報を使用してログインします。

User Id: wlevs
Password: wlevs

Visualizerの詳細は、1.8項「Oracle CEP Visualizer」を参照してください。

2.4 サンプルのパフォーマンスの改善

サンプルおよびOracle CEPアプリケーション全般について、実行時のスループットを向上させ待機時間を短縮させるには、次の処理をお薦めします。

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用して、該当するドメインのOracle CEPインスタンスの起動コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.cmd -dgc

デフォルトでは、確定的ガベージ・コレクタはサンプルに対して無効になっています。

Oracle JRockit Real Timeの詳細は、http://www.oracle.com/technology/products/jrockit/jrrt/index.htmlを参照してください。

- メモリー容量の大きいコンピュータでOracle CEPを実行している場合は、コンピュータの容量に合わせてロード・ジェネレータとサーバーのヒープ・サイズを適切に設定する必要があります。十分なメモリー容量のコンピュータでは、サーバーのヒープ・サイズを1GB、ロード・ジェネレータのヒープ・サイズを512MB - 1GBとすることをお薦めします。

2.5 開発環境の設定

Oracle CEPインスタンスを起動してサンプルを実行する前に、開発環境を設定する必要があります。特に、正しいバージョンのJRockit JDKを使用するようにPATHおよびJAVA_HOME環境変数を設定する必要があります。

JRockitをコンピュータにインストールするときに使用された可能性がある方法として、次の2つの方法があります。

- Oracle JRockit Real Timeインストールの一部としてのインストール。このバージョンのJRockit JDKには確定的ガベージ・コレクタが含まれています。

- Oracle CEP 11gリリース1 (11.1.1)インストールの一部としてのインストール。このバージョンのJRockit JDKには確定的ガベージ・コレクタが含まれていません。このバージョンはテスト目的専用に提供されています。

必須ではありませんが、最適な結果を得るためには、Oracle JRockit Real Timeに含まれるJRockit JDKバージョンを使用してOracle CEPを実行することをお薦めします。以下の手順では、いずれの場合にも適用できる環境の設定方法を説明します。

JRockitの詳細は、2.4項「サンプルのパフォーマンスの改善」を参照してください。

ここでは次の項目について説明します。

- 2.5.1項「Windowsでの開発環境の設定方法」

- 2.5.2項「UNIXでの開発環境の設定方法」

2.5.1 Windowsでの開発環境の設定方法

この手順は、Windowsに開発環境を設定する方法を説明します。

setEnv.cmdなどのコマンド・ファイルを作成して、ここで説明するsetコマンドを指定しておくと、セッションからログアウトした後に開発環境を簡単にリセットできます。

Windowsコンピュータで、「コントロール パネル」→「システム」ウィンドウを呼び出し、「詳細設定」タブ、「環境変数」ボタンの順にクリックして、必要な環境変数を永続的に設定することもできます。環境変数は、現在のユーザーに対して、またはシステム全体に対して設定できます。

Windowsで開発環境を設定するには:

1. JRockit JDKのbinディレクトリを含むようにPATH環境変数を更新します。また、PATH環境変数にAntのインストール先のbinディレクトリが含まれていることを確認してください。

1. Oracle JRockit Real Timeと一緒にインストールされたJRockit JDKを使用する場合
Oracle JRockit Real Timeがd:\jrockitディレクトリにインストールされていて、Antがd:\antディレクトリにインストールされている場合は、PATH環境変数を次のように設定します。

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

JRRT_HOMEは、JRockit Real Timeのディレクトリです。

2. Oracle CEPと一緒にインストールされたJRockit JDKを使用する場合
Oracle CEPがd:\Oracle\Middlewareディレクトリにインストールされていて、Antがd:\antディレクトリにインストールされている場合は、PATH環境変数を次のように設定します。

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

2. setDomainEnv.cmdスクリプトのJAVA_HOME変数が正しいJRockit JDKを参照していることを確認します。正しくない場合は、スクリプトを編集します。
setDomainEnv.cmdスクリプトは、メイン・ドメイン・ディレクトリのdefaultserverサブディレクトリにあります。defaultserverサブディレクトリには、各ドメインのスタンドアロン・サーバーのファイルが含まれます。たとえば、HelloWorldドメインは\MIDDLEWARE_HOME\ocep_11.1\samples\domains\helloworld_domainにあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middlewareなど)。

1. Oracle JRockit Real Timeと一緒にインストールされたJRockit JDKを使用する場合
setコマンドを次のように指定します。

set JAVA_HOME=d:\jrockit\[JRRT_HOME]

JRRT_HOMEは、JRockit Real Timeのディレクトリです。

2. Oracle CEPと一緒にインストールされたJRockit JDKを使用する場合
setコマンドを次のように指定します。

set JAVA_HOME=d:\Oracle\Middleware\jrockit_160_20

3. 独自の開発環境のJAVA_HOME変数を、JRockit JDKを参照するように設定します。

1. Oracle JRockit Real Timeと一緒にインストールされたJRockit JDKを使用する場合
setコマンドを次のように指定します。

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

JRRT_HOMEは、JRockit Real Timeのディレクトリです。

2. Oracle CEPと一緒にインストールされたJRockit JDKを使用する場合
setコマンドを次のように指定します。

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

2.5.2 UNIXでの開発環境の設定方法

この手順は、UNIXに開発環境を設定する方法を説明します。

setEnv.shなどのコマンド・ファイルを作成して、ここで説明するsetコマンドを指定しておくと、セッションからログアウトした後に開発環境を簡単にリセットできます。

UNIXで開発環境を設定するには:

1. JRockit JDKのbinディレクトリを含むようにPATH環境変数を更新します。また、PATH環境変数にAntのインストール先のbinディレクトリが含まれていることを確認してください。

1. Oracle JRockit Real Timeと一緒にインストールされたJRockit JDKを使用する場合
Oracle JRockit Real Timeが/jrockitディレクトリにインストールされていて、Antが/antディレクトリにインストールされている場合は、PATH環境変数を次のように設定します。

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

JRRT_HOMEは、JRockit Real Timeのディレクトリです。

2. Oracle CEPと一緒にインストールされたJRockit JDKを使用する場合
Oracle CEPが/Oracle/Middlewareディレクトリにインストールされていて、Antが/antディレクトリにインストールされている場合は、PATH環境変数を次のように設定します。

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

2. setDomainEnv.shスクリプトのJAVA_HOME変数が正しいJRockit JDKを参照していることを確認します。正しくない場合は、スクリプトを編集します。
setDomainEnv.shスクリプトは、メイン・ドメイン・ディレクトリのdefaultserverサブディレクトリにあります。defaultserverサブディレクトリには、各ドメインのスタンドアロン・サーバーのファイルが含まれます。たとえば、HelloWorldドメインはMIDDLEWARE_HOME/ocep_11.1/samples/domains/helloworld_domainにあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(/Oracle/Middlewareなど)。

1. Oracle JRockit Real Timeと一緒にインストールされたJRockit JDKを使用する場合
JAVA_HOME変数を次のように設定します。

JAVA_HOME=/jrockit/[JRRT_HOME]

JRRT_HOMEは、JRockit Real Timeのディレクトリです。

2. Oracle CEPと一緒にインストールされたJRockit JDKを使用する場合
JAVA_HOME変数を次のように設定します。

JAVA_HOME=/Oracle/Middleware/jrockit_160_20

3. 開発環境のJAVA_HOME変数を、JRockit JDKを参照するように設定します。

1. Oracle JRockit Real Timeと一緒にインストールされたJRockit JDKを使用する場合
JAVA_HOME変数を次のように設定します。

prompt> JAVA_HOME=/jrockit/[JRRT_HOME]

JRRT_HOMEは、JRockit Real Timeのディレクトリです。

2. Oracle CEPと一緒にインストールされたJRockit JDKを使用する場合
JAVA_HOME変数を次のように設定します。

prompt> JAVA_HOME=/Oracle/Middleware/jrockit_160_20

2.6 HelloWorldのサンプル

Oracle CEPアプリケーションの作成方法を示すこの最初のサンプルは、よく知られているHelloWorldです。

図2-1に、HelloWorldサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。

図2-1 HelloWorldサンプルのイベント処理ネットワーク

「図2-1 HelloWorldサンプルのイベント処理ネットワーク」の説明

このサンプルには次のコンポーネントが含まれています。

- helloworldAdapter - 「Hello World」というメッセージを毎秒生成するコンポーネント。実世界のシナリオでは、このコンポーネントは通常、ソース(金融機関から送られてくるデータなど)からデータ・ストリームを読み込み、読み込んだデータ・ストリームを複合イベント・プロセッサで処理できるイベント・ストリームに変換します。HelloWorldアプリケーションには、HelloWorldAdapterのインスタンスを作成するHelloWorldAdapterFactoryも含まれています。

- helloworldInputChannel - アダプタで生成されたイベント(この場合、「Hello World」のメッセージ)を複合イベント・プロセッサに送信するコンポーネント。

- helloworldProcessor - 単純に、helloworldAdapterコンポーネントから受け取ったメッセージをビジネス・ロジックを含むPOJOに転送するコンポーネント。実世界のシナリオでは、このコンポーネントは通常、ストリームから受け取ったイベントに対して追加の処理やはるかに複雑な処理を実行します。例として、Oracle CQLを使用して、プロパティ値に基づいてイベントのサブセットを選択する処理や、イベントをグループ化する処理があります。

- helloworldOutputChannel - 複合イベント・プロセッサで処理されたイベントを、ユーザー定義のビジネス・ロジックを含むPOJOに送るコンポーネント。

- helloworldBean - 出力チャネルを経由してプロセッサからひとまとまりのメッセージを受け取るたびに、単純にメッセージを出力するPOJOコンポーネント。実世界のシナリオでは、このコンポーネントにはアプリケーションのビジネス・ロジックが含まれます。例として、プロセッサから受け取ったイベントに関するレポートを実行するロジックや、適切な電子メールまたはアラートを送信するロジックがあります。

2.6.1 helloworldドメインから実行するHelloWorldのサンプル

HelloWorldアプリケーションはhelloworldドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle CEPのインスタンスを起動します。

HelloWorldのサンプルをhelloworldドメインから実行するには:

1. コマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\domains\helloworld_domain\defaultserverにあるhelloworldドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middlewareなど)。

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

2. サーバー起動スクリプトで環境が正しく設定されていることを確認します。
詳細は、2.5項「開発環境の設定」を参照してください。

3. 適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle CEPを起動します。

1. Windowsの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.cmd -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.cmd

2. UNIXの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.sh -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.sh

サーバー・ステータス・メッセージがスクロールされた後、約1秒ごとに次のメッセージが出力されます。

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

このメッセージは、HelloWorldのサンプルが正しく実行されていることを示しています。

2.6.2 ソース・ディレクトリからビルドおよびデプロイするHelloWorldのサンプル

HelloWorldサンプルのソース・ディレクトリには、Javaソースと、HelloWorldアプリケーションを構成する他の必須リソース(構成XMLファイルなど)が含まれます。build.xml Antファイルには、アプリケーションをビルドしてhelloworldドメインにデプロイするためのターゲットが含まれています。

詳細は、2.6.3項「Hello WorldをビルドするAntターゲットの説明」を参照してください。

ソース・ディレクトリからHelloWorldのサンプルをビルドしてデプロイするには:

1. helloworldのOracle CEPインスタンスがまだ実行されていない場合は、2.6.1項「helloworldドメインから実行するHelloWorldのサンプル」の手順に従ってサーバーを起動します。
再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

2. 新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\helloworldにあるHelloWorldソース・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです。
例:

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

3. 開発環境を設定します。
詳細は、2.5項「開発環境の設定」を参照してください。

4. all Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。

prompt> ant all

5. deploy Antターゲットを実行してアプリケーションJARファイルをOracle CEPにデプロイします。

prompt> ant -Daction=update deploy

注意:

このターゲットは、ドメイン・ディレクトリにある既存のhelloworldアプリケーションJARファイルを上書きします。

出力先に約1秒ごとに次のメッセージが出力されます。

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

このメッセージは、HelloWorldのサンプルが再デプロイされ、正しく実行されていることを示しています。

2.6.3 Hello WorldをビルドするAntターゲットの説明

HelloWorldソース・ディレクトリの最上位レベルにあるbuild.xmlファイルには、アプリケーションをビルドおよびデプロイするための次のターゲットが含まれています。

- clean - このターゲットは、現在のディレクトリの下にあるdistおよびoutput作業ディレクトリを削除します。

- all - このターゲットは、アプリケーションをクリーンアップしてコンパイルし、com.bea.wlevs.example.helloworld_11.1.1.4_0.jarというJARファイルを生成し、生成したJARファイルを現在のディレクトリの下のdistディレクトリに格納します。

- deploy - このターゲットはDeployerユーティリティを使用してJARファイルをOracle CEPにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.6.4 HelloWorldのサンプルの実装

HelloWorldのサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーションの標準的な作成手順に関する項に従って行われます。

標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。

HelloWorldのサンプルは、比較的単純な内容であるため、Oracle CEPアプリケーションを作成する一般的な手順で説明されるすべてのコンポーネントと構成ファイルが使用されるわけではありません。

サンプルのすべてのファイルは、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\helloworldディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。

HelloWorldのサンプルで使用するファイルは次のとおりです。

- アプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。EPNアセンブリ・ファイルは標準のSpringコンテキスト・ファイルを拡張します。また、このファイルはアプリケーションで使用されるイベント・タイプを登録します。このXMLファイルをOracle CEPアプリケーションに組み込む必要があります。
サンプルでは、このファイルはcom.bea.wlevs.example.helloworld-context.xmlという名前で、META-INF/springディレクトリにあります。

詳細は、2.6.5項「HelloWorldのEPNアセンブリ・ファイル」を参照してください。

- helloworldAdapterコンポーネントのJavaソース・ファイル。
サンプルでは、このファイルはHelloWorldAdapter.javaという名前で、src/com/bea/wlevs/adapter/example/helloworldディレクトリにあります。

このファイルの詳細な説明と、アダプタのJavaファイルの一般的なプログラミング方法については、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPイベント処理ネットワークの拡張に関する項を参照してください。

- HelloWorldEventイベント・タイプを記述したJavaソース・ファイル。
サンプルでは、このファイルはHelloWorldEvent.javaという名前で、src/com/bea/wlevs/event/example/helloworldディレクトリにあります。

このファイルの詳細な説明と、イベント・タイプのプログラミングの概要については、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のイベント・タイプの作成に関する項を参照してください。

- helloworldProcessorおよびhelloworldOutputChannelコンポーネントを構成するXMLファイル。このファイルの重要な部分は、HelloWorldアプリケーションで処理するイベント・セットを選択するためのEPLルール・セットです。プロセッサ構成ファイルをOracle CEPアプリケーションに組み込む必要があります。アダプタとチャネルの構成は省略可能です。
サンプルでは、このファイルはconfig.xmlという名前で、META-INF/wlevsディレクトリにあります。

詳細は、2.6.6項「HelloWorldのコンポーネント構成ファイル」を参照してください。

- アプリケーションのhelloworldBeanコンポーネント(ビジネス・ロジックを含むPOJO)を実装するJavaファイル。
サンプルでは、このファイルはHelloWorldBean.javaという名前で、src/com/bea/wlevs/example/helloworldディレクトリにあります。

このファイルの詳細な説明と、イベント・シンクのプログラミングの概要については、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPイベント処理ネットワークの拡張に関する項を参照してください。

- Oracle CEPにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MFファイル。
サンプルでは、MANIFEST.MFファイルがMETA-INFディレクトリにあります。

このファイルの作成方法およびOracle CEPにデプロイするOSGiバンドルの作成方法の詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のアプリケーションのアセンブリとデプロイメントの概要に関する項を参照してください。

HelloWorldのサンプルでは、OSGiバンドルのコンパイル、アセンブリ、およびデプロイにbuild.xml Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xmlファイルの詳細は、2.6.2項「ソース・ディレクトリからビルドおよびデプロイするHelloWorldのサンプル」を参照してください。

2.6.5 HelloWorldのEPNアセンブリ・ファイル

EPNアセンブリ・ファイルの主な目的の1つは、アプリケーションのコンポーネントを宣言してイベント処理ネットワークを定義し、これらすべてのコンポーネントの接続方法、つまりどのコンポーネントが他のどのコンポーネントをリスニングするかを定義することです。Oracle CEPには、ネットワークの宣言に使用するカスタムSpringタグのセットが用意されています。また、EPNアセンブリ・ファイルは、アプリケーションで使用するイベント・タイプとアプリケーションのEPLルールを登録するためにも使用します。

EPNアセンブリ・ファイルを通常の方法で使用して、 Springアプリケーション・コンテキストで アプリケーション・コンポーネントBeanを定義します。アプリケーション・コンポーネントBeanは、 Javaクラスで実装される「アダプタ」や 「ビジネス・ロジックを含むPOJO」などです。

詳細については、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』の「スキーマ参照: EPN Assembly spring-wlevs-v11_1_1_6.xsd」

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPスキーマに関する項

例2-1は、HelloWorldサンプル・アプリケーションで使用するEPNアセンブリ・ファイルを示しています。太字のエントリの詳細は、サンプルの後にある説明を参照してください。

例2-1 HelloWorldのEPNアセンブリ・ファイル

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

上記の例では:

- wlevs:event-type-repository要素は、アプリケーション全体で使用するイベント・タイプを登録します。HelloWorldアプリケーションには、イベント・タイプが1つしか存在しません。このイベント・タイプは、com.bea.wlevs.event.example.helloworld.HelloWorldEventクラスで実装されるHelloWorldEventです。Oracle CEPは、必要に応じてこのデータ型のインスタンスを自動的に作成します。アプリケーションのEPLルールでもこのデータ型を参照できます。

- wlevs:adapter要素、wlevs:processor要素およびwlevs:channel要素は、それぞれがネットワーク内の各コンポーネントを宣言することにより、イベント・プロセッサ・ネットワークを定義します。

- wlevs:adapter要素は、HelloWorldアプリケーションのアダプタ・コンポーネントを定義します。

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

id属性は、このコンポーネントの一意の識別子を指定します。idは、他のコンポーネントによって後で参照されます。class属性は、アダプタを実装するクラスを指定します。この場合は、com.bea.wlevs.adapter.example.helloworld.HelloWorldAdapterです。

wlevs:instance-property子要素は、インスタンスの変数をアダプタ・インスタンスに渡します。変数の名前はmessageで、値はHelloWorld - the current time is:です。

- wlevs:processor要素は、アプリケーションのプロセッサ・コンポーネントを定義します。

<wlevs:processor id="helloworldProcessor" />

id属性は、wlevs:adapter要素のid属性と同じように機能します。

- wlevs:channel要素は、アプリケーションの2つのチャネル・コンポーネントを定義します。

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

ストリームのid属性は、wlevs:adapterのid属性と同様に機能します。manageable属性は、チャネルのモニターを有効にします。コンポーネントの管理容易性はデフォルトで無効になっています。

id="helloworldInstream"のwlevs:channel要素は、wlevs:listener子要素を使用して、helloworldProcessorがチャネルをリスニングするように指定します。また、wlevs:source子要素を使用して、チャネルがhelloworldAdapterコンポーネントからイベントを取得するように指定します。

id="helloworldOutstream"のwlevs:channel要素でも、これらのlistenerタグとsourceタグを使用します。ただし、1つ異なる点として、一意の識別子を参照するのではなく、wlevs:listener要素でビジネス・ロジックPOJOの定義を直接ネストします。この場合、ネストされたタグは、POJOがcom.bea.wlevs.example.helloworld.HelloWorldBeanクラスで実装されることを指定するSpring標準のbean要素です。

2.6.6 HelloWorldのコンポーネント構成ファイル

HelloWorldアプリケーションは、例2-2に示すコンポーネント構成ファイルでプロセッサを構成します。

例2-2 HelloWorldのコンポーネント構成ファイル

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

アプリケーションに複数のプロセッサ、アダプタ、またはストリームがある場合は、それらすべてを1つの構成ファイルで宣言することも、コンポーネントごとに個別の構成ファイルを作成することもできます。どちらか管理しやすい方法を選択してください。

構成するコンポーネントごとにname子要素を追加し、参照する特定のコンポーネントを明示的に宣言する必要があります。name要素の値は、EPNアセンブリ・ファイルで宣言したコンポーネントの一意のな識別子に対応している必要があります。

たとえば、プロセッサがEPNアセンブリ・ファイルで次のように宣言されているとします。

<wlevs:processor id="helloworldProcessor" ...>

対応するXML構成は次のようになります。

<processor>
<name>helloworldProcessor</name>
...
</processor>

HelloWorldのサンプルでは、helloworldProcessorという名前の1つのプロセッサに対して1つの構成ファイルを使用しています。この名前はEPNアセンブリ・ファイルでのコンポーネントの宣言に対応しています。

processor要素は、プロセッサ・コンポーネントを構成します。プロセッサ構成の重要な部分は、このプロセッサで実行するOracle Continuous Query Language (Oracle CQL)のルール・セットの宣言です。これらのルールは最終的にアプリケーション・ビジネス・オブジェクトに渡されるイベント・セットを選択します。各ルールは、XMLの<![CDATA[...]]>セクションを使用してquery要素またはrelation要素で宣言されます。すべてのquery要素とrelation要素は単一のrules要素によってグループ化されます。特定のプロセッサ用に必要な数だけルールを定義できます。

HelloWorldアプリケーションには、次のごく単純なルールが1つしかありません。

select * from helloworldInputChannel

この問合せの目的は、入力データを(処理せずに)そのまま渡して、(リレーションではなく)ストリームとして出力する方法を指定することです。このため、この問合せではウィンドウ演算子([now]または[range 1]など)が使用されていません。ウィンドウ演算子を使用すると、出力はストリームではなくリレーションになります。下流のHelloWorldBean POJOについて考えてみてください。これがStreamSinkのみ(RelationSinkではなく)を実装するのは、この問合せの出力がストリームであるためです(ウィンドウ演算子で生成されるリレーションではありません)。このため、HelloWorldBean POJOは挿入イベントのみを出力します。RelationSinkを実装していないため、削除イベントは出力しません。通常は、ストリームを生成する後続の問合せまたはビューで使用するために、リレーション(ウィンドウ演算子を使用)を出力する問合せ(およびビュー)を作成します。

Oracle CEP問合せ言語の詳細およびサンプルは、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』

- 『Oracle Fusion Middleware Oracle Complex Event Processing EPL言語リファレンス』

注意:

Oracle EPLはOracle CQLによって置き換えられます。

2.7 Oracle Continuous Query Language (CQL)のサンプル

CQLのサンプルは、Oracle CEP Visualizerの問合せウィザードを使用して様々な種類のOracle CQL問合せを作成する方法を示します。

図2-2に、CQLサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。

図2-2 CQLサンプルのイベント処理ネットワーク

「図2-2 CQLサンプルのイベント処理ネットワーク」の説明

このアプリケーションのEPNには3つの異なるイベント・パスが含まれます。

- 欠落イベント: このイベント・パスは、チャネルorderChannelに接続するアダプタorderCVSAdapterで構成されています。orderChannelからプロセッサorderProcessor、チャネルalertChannel、アダプタalertOutputの順に接続しています。
このイベント・パスは、顧客注文ワークフローの欠落イベントを検出するために使用されます。

cqlProcプロセッサが実行する問合せの作成方法の詳細は、2.7.4.1項「欠落イベントの問合せの作成」を参照してください。

- 移動平均: このイベント・パスは、順に接続されているチャネルstockChannel、プロセッサstockProcessor、チャネルmovingAvgChannel、アダプタmovingOutputで構成されます。
このイベント・パスは、数が1000を超える在庫の移動平均を計算するために使用されます。

cqlProcプロセッサが実行する問合せの作成方法の詳細は、2.7.4.2項「移動平均の問合せの作成」を参照してください。

- キャッシュ: このイベント・パスは、順に接続されているアダプタadapter、チャネルS1、Oracle CQLプロセッサcacheProcessor、チャネルS2、Bean Beanで構成されます。キャッシュstockCacheもあり、Oracle CQLプロセッサcacheProcessorに接続しています。また、Bean Loaderもあります。
このイベント・パスは、Oracle CQL問合せのキャッシュの情報にアクセスするために使用されます。

注意:

EPNの様々なコンポーネントの詳細は、このマニュアルの他のサンプルを参照してください。

2.7.1 CQLのサンプルの実行

最適なデモンストレーションの目的のためには、複数のCPUまたは3GHzのデュアル・コアIntelと最低限2GBのRAMを搭載した強力なコンピュータでこのサンプルを実行することをお薦めします。

CQLアプリケーションはcql_domainドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle CEPのインスタンスを起動します。

CQLのサンプルを実行するには:

1. コマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\domains\cql_domain\defaultserverにあるCQLドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

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

2. 2.5項「開発環境の設定」に従って開発環境を設定します。

3. 適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle CEPを起動します。

1. Windowsの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.cmd -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.cmd

2. UNIXの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.sh -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.sh

これで、CQLアプリケーションでデータ・フィードからデータを受信する準備ができました。

4. 欠落イベントの問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、2.5項「開発環境の設定」の説明に従って環境を設定します。

5. MIDDLEWARE_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

6. orderData.propプロパティ・ファイルを使用してロード・ジェネレータを実行します。

1. Windowsの場合:

prompt> runloadgen.cmd orderData.prop

2. UNIXの場合:

prompt> runloadgen.sh orderData.prop

7. 移動平均の問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、2.5項「開発環境の設定」の説明に従って環境を設定します。

8. MIDDLEWARE_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

9. stockData.propプロパティ・ファイルを使用してロード・ジェネレータを実行します。

1. Windowsの場合:

prompt> runloadgen.cmd stockData.prop

2. UNIXの場合:

prompt> runloadgen.sh stockData.prop

10. キャッシュの問合せのデータ・フィードをシミュレートするには、ただサンプルを実行します。
ロード・データがAdaptor.javaによって生成され、キャッシュ・データがLoader.javaによって生成されます。Oracle CEP Visualizer Query Planの統計を有効にすると、データが流れていることを確認できます。

2.7.2 CQLのサンプルのビルドとデプロイ

CQLサンプルのソース・ディレクトリには、Javaソースと、CQLアプリケーションを構成する他の必須リソース(構成XMLファイルなど)が含まれます。build.xml Antファイルには、アプリケーションをビルドしてcql_domainドメインにデプロイするためのターゲットが含まれています(2.7.3項「CQLサンプルをビルドするAntターゲットの説明」を参照)。

ソース・ディレクトリからCQLのサンプルをビルドしてデプロイするには:

1. CQLのOracle CEPインスタンスがまだ実行されていない場合は、2.7.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。
再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

2. 新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\cqlにあるCQLソース・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

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

3. 2.5項「開発環境の設定」に従って開発環境を設定します。

4. all Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。

prompt> ant all

5. deploy Antターゲットを実行してアプリケーションJARファイルをOracle CEPにデプロイします。

prompt> ant -Dusername=wlevs -Dpassword=wlevs -Daction=update deploy

注意:

このターゲットは、ドメイン・ディレクトリにある既存のCQLアプリケーションJARファイルを上書きします。

6. CQLアプリケーションで必要なロード・ジェネレータが実行されていない場合は、2.7.1項「CQLのサンプルの実行」の説明に従って起動します。

2.7.3 CQLサンプルをビルドするAntターゲットの説明

CQLソースの最上位レベル・ディレクトリにあるbuild.xmlファイルには、アプリケーションをビルドおよびデプロイするための次のターゲットが含まれています。

- clean - このターゲットは、現在のディレクトリの下にあるdistおよびoutput作業ディレクトリを削除します。

- all - このターゲットは、アプリケーションをクリーンアップしてコンパイルし、com.bea.wlevs.example.cql_11.1.1.4_0.jarというJARファイルを生成し、生成したJARファイルを現在のディレクトリの下のdistディレクトリに格納します。

- deploy - このターゲットはDeployerユーティリティを使用してJARファイルをOracle CEPにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.7.4 CQLのサンプルの実装

ここでは、CQLのサンプルで使用される問合せの作成方法を説明します。

- 2.7.4.1項「欠落イベントの問合せの作成」

- 2.7.4.2項「移動平均の問合せの作成」

2.7.4.1 欠落イベントの問合せの作成

ここでは、Oracle CEP Visualizer問合せウィザードを使用して、cqlProcプロセッサが欠落イベントを検出するために実行するOracle CQLのパターン一致問合せを作成する方法を説明します。

顧客注文ワークフロー・イベントがOracle CEPシステムに流れる顧客注文ワークフローについて考えてみます。

有効なシナリオでは、表2-1に示す順序でイベントが出現します。

表2-1 有効な注文のワークフロー

イベント・タイプ

説明

C

顧客の注文

A

承認

S

出荷

ただし、表2-2に示すように承認イベントなしで注文が出荷されるとエラーになります。

表2-2 無効な注文のワークフロー

イベント・タイプ

説明

C

顧客の注文

S

出荷

承認イベントの欠落を検出してアラート・イベントを生成する問合せを作成してテストします。

- 「欠落イベントの問合せの作成」

- 「欠落イベントの問合せのテスト」

欠落イベントの問合せを作成するには:

1. CQLのOracle CEPインスタンスがまだ実行されていない場合は、2.7.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。
Oracle CEP Visualizerを使用するには、サーバーが実行中である必要があります。

2. ブラウザで次のURLを起動します。

http://host:port/wlevs

hostは、Oracle CEPが実行中のコンピュータ名を指します。portは、サーバーに構成されているJetty NetIOポートを指します(デフォルト値9002)。

図2-3に示すように「ログオン」画面が表示されます。

図2-3 Oracle CEP Visualizerの「ログオン」画面

「図2-3 Oracle CEP Visualizerの「ログオン」画面」の説明

3. 「ログオン」画面で、「ユーザーID」にwlevs、「パスワード」にwlevsを入力し、「ログイン」をクリックします。
図2-4に示すようにOracle CEP Visualizerダッシュボードが表示されます。

図2-4 Oracle CEP Visualizerダッシュボード

「図2-4 Oracle CEP Visualizerダッシュボード」の説明

Oracle CEP Visualizerのユーザー・インタフェースの詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のOracle CEP Visualizerユーザー・インタフェースの概要に関する項を参照してください。

4. 右側のペインで、「WLEventServerDomain」→「NonClusteredServer」→「アプリケーション」を展開します。

5. cqlノードを選択します。
図2-5に示すようにCQLアプリケーション画面が表示されます。

図2-5 CQLアプリケーション画面: 「全般」タブ

「図2-5 CQLアプリケーション画面: 「全般」タブ」の説明

6. 「イベント処理ネットワーク」タブを選択します。
図2-6に示すように「イベント処理ネットワーク」画面が表示されます。

図2-6 CQLアプリケーション: 「イベント処理ネットワーク」タブ

「図2-6 CQLアプリケーション: 「イベント処理ネットワーク」タブ」の説明

7. Oracle CQLプロセッサorderProcessorのアイコンをダブルクリックします。
図2-7に示すようにOracle CQLプロセッサ画面が表示されます。

図2-7 Oracle CQLプロセッサ: 「全般」タブ

「図2-7 Oracle CQLプロセッサ: 「全般」タブ」の説明

8. 「問合せウィザード」タブを選択します。
図2-8に示すように「問合せウィザード」画面が表示されます。

図2-8 Oracle CQLプロセッサ: 「問合せウィザード」タブ

「図2-8 Oracle CQLプロセッサ: 「問合せウィザード」タブ」の説明

Oracle CQL問合せウィザードを使用すると、テンプレートまたは個々のOracle CQL構文からOracle CQL問合せを作成できます。

この手順では、テンプレートからOracle CQL問合せを作成します。

詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』の問合せウィザードを使用したOracle CQLプロセッサのルール作成に関する項を参照してください。

9. 「テンプレート」タブを選択します。
図2-9に示すように「テンプレート」タブが表示されます。

図2-9 「テンプレート」タブ

「図2-9 「テンプレート」タブ」の説明

10. 図2-9に示すように、「パターン一致」テンプレートを「テンプレート」タブでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

11. SSourceのアイコンをダブルクリックします。
図2-10に示すようにSSourceの構成ダイアログが表示されます。

図2-10 SSourceの構成ダイアログ

「図2-10 SSourceの構成ダイアログ」の説明

問合せのソースはorderChannelストリームです。

12. SSourceを次のように構成します。

- 「タイプ」として「ストリーム」を選択します。

- 「ソースの選択」プルダウン・メニューでorderChannelを選択します。

13. 「保存」をクリックします。

14. 「問合せの保存」をクリックします。

15. 「パターン」アイコンをダブルクリックします。
図2-11に示すようにパターンの構成ダイアログが表示されます。

図2-11 パターンの構成ダイアログ: 「パターン」タブ

「図2-11 パターンの構成ダイアログ: 「パターン」タブ」の説明

「パターン」タブを使用して、欠落イベントの発生と一致するパターン式を定義します。この式は、後の手順で「定義」タブに指定する名前付き条件を使用して作成します。

16. 「パターン式」フィールドに次の式を入力します。

CustOrder NoApproval*? Shipment

このパターンでは、表2-3に示すOracle CQLのパターン量指定子が使用されます。パターン量指定子を使用して、パターン一致が許可される範囲を指定します。1文字のパターン量指定子は最大(最長マッチ)を指定し、まず最大の数量との一致を試行します。2文字のパターン量指定子は最小(最短マッチ)を指定し、まず最小の数量との一致を試行します。

表2-3 MATCH_RECOGNIZEのパターン量指定子

最大

最小

説明

*

*?

0回以上

+

+?

1回以上

?

??

0回または1回

詳細については、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のPATTERN条件に関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のMATCH_RECOGNIZE条件に関する項

17. 「パーティション基準」プルダウン・メニューからorderidを選択し、プラス記号ボタンをクリックしてこのプロパティをPARTITION BY句に追加します。
これで、Oracle CEPが各注文について欠落イベントの問合せを検証するようになります。

18. 別名フィールドにOrdersと入力します。
これで、パターンの別名(Orders)が割り当てられ、後から問合せで使用するときに便利です。

19. 「定義」タブをクリックします。
図2-12に示すように「定義」タブが表示されます。

図2-12 パターンの構成ダイアログ: 「定義」タブ

「図2-12 パターンの構成ダイアログ: 「定義」タブ」の説明

ここで、表2-4に示すようにパターン句に指定する各条件を定義します。

表2-4 条件定義

条件名

定義

CustOrder

orderChannel.eventType = 'C'

NoApproval

NOT(orderChannel.eventType = 'A')

Shipment

orderChannel.eventType = 'C'

20. 「オブジェクト名」フィールドにCustOrderと入力します。

21. 「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-13を参照)。

- 「変数」リストでeventTypeをダブルクリックします。

- 「オペランド」リストで=をダブルクリックします。

- =オペランドの後に値'C'を入力します。

図2-13 式ビルダー: CustOrder

「図2-13 式ビルダー: CustOrder」の説明

22. 「保存」をクリックします。

23. プラス記号ボタンをクリックします。
図2-14に示すように条件定義がオブジェクト・リストに追加されます。

図2-14 パターンの構成ダイアログ: CustOrder条件を含む「定義」タブ

「図2-14 パターンの構成ダイアログ: CustOrder条件を含む「定義」タブ」の説明

24. 「オブジェクト名」フィールドにNoApprovalと入力します。

25. 「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-15を参照)。

- 「変数」リストでeventTypeをダブルクリックします。

- 「オペランド」リストで=をダブルクリックします。

- =オペランドの後に値'A'を入力します。

- 式をカッコで囲みます。

- 式の先頭のカッコの外側にカーソルを置きます。

- 「オペランド」リストでNOTをダブルクリックします。

図2-15 式ビルダー: NoApproval

「図2-15 式ビルダー: NoApproval」の説明

26. 「保存」をクリックします。

27. プラス記号ボタンをクリックします。
条件定義がオブジェクト・リストに追加されます。

28. 「オブジェクト名」フィールドにShipmentと入力します。

29. 「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-16を参照)。

- 「変数」リストでeventTypeをダブルクリックします。

- 「オペランド」リストで=をダブルクリックします。

- =オペランドの後に値'S'を入力します。

図2-16 式ビルダー: Shipment

「図2-16 式ビルダー: Shipment」の説明

30. 「保存」をクリックします。

31. プラス記号ボタンをクリックします。
図2-17に示すように「定義」タブが表示されます。

図2-17 パターンの構成ダイアログ: 「定義」タブの完了

「図2-17 パターンの構成ダイアログ: 「定義」タブの完了」の説明

32. 「メジャー」タブをクリックします。
図2-18に示すように「メジャー」タブが表示されます。

図2-18 「メジャー」タブ

「図2-18 「メジャー」タブ」の説明

「メジャー」タブを使用して、MATCH_RECOGNIZE条件に式を定義し、DEFINE句の条件と一致するストリーム要素を問合せのselect文に指定する引数にバインドします。

「メジャー」タブを使用して次のように指定します。

- CustOrder.orderid AS orderid

- CustOrder.amount AS amount

詳細については、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のMEASURES句に関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のMATCH_RECOGNIZE条件に関する項

33. 「オブジェクト名」フィールドにorderidと入力します。

34. 「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-19を参照)。

- 「変数」リストでCustOrder.orderidをダブルクリックします。

図2-19 式ビルダー: orderid

「図2-19 式ビルダー: orderid」の説明

35. 「保存」をクリックします。

36. プラス記号ボタンをクリックします。

37. 「オブジェクト名」フィールドにamountと入力します。

38. 「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-20を参照)。

- 「変数」リストでCustOrder.amountをダブルクリックします。

図2-20 式ビルダー: amount

「図2-20 式ビルダー: amount」の説明

39. 「保存」をクリックします。

40. プラス記号ボタンをクリックします。
図2-21に示すように「メジャー」タブが表示されます。

図2-21 「メジャー」タブ: 完了

「図2-21 「メジャー」タブ: 完了」の説明

41. 「保存」をクリックします。

42. 選択アイコンをダブルクリックします。
図2-22に示すように選択の構成画面が表示されます。

図2-22 選択の構成ダイアログ: 「プロジェクト」タブ

「図2-22 選択の構成ダイアログ: 「プロジェクト」タブ」の説明

43. 「プロジェクト」タブを次のように構成します。

- イベント・タイプの選択または入力プルダウン・メニューからAlertEventを選択します。

- 「ソースの選択」プルダウン・メニューでOrdersを選択します。

44. 「プロパティ」リストのorderidをダブルクリックし、別名の選択または入力プルダウン・メニューからorderidを選択します。

45. プラス記号ボタンをクリックして、このプロパティを「生成されたCQL文」に追加します。

46. 「プロパティ」リストのamountをダブルクリックし、別名の選択または入力プルダウン・メニューからamountを選択します。

47. プラス記号ボタンをクリックして、このプロパティを「生成されたCQL文」に追加します。

48. 「プロジェクト式」フィールドをクリックして値"Error - Missing Approval"を入力し、別名の選択または入力プルダウン・メニューからalertTypeを選択します。

49. プラス記号ボタンをクリックして、このプロパティを「生成されたCQL文」に追加します。
図2-23に示すように「プロジェクト」タブが表示されます。

図2-23 選択の構成ダイアログ: 「プロジェクト」タブの完了

「図2-23 選択の構成ダイアログ: 「プロジェクト」タブの完了」の説明

50. 「保存」をクリックします。

51. 「問合せの保存」をクリックします。

52. 「出力」アイコンをダブルクリックします。
図2-24に示すように出力の構成ダイアログが表示されます。

図2-24 出力の構成ダイアログ

「図2-24 出力の構成ダイアログ」の説明

53. 出力を次のように構成します。

- 「問合せ」を選択します。

- 「問合せ名」としてTrackingと入力します。

54. 「ルールのインジェクト」をクリックします。
図2-25に示すように、ルールのインジェクトの「確認」ダイアログが表示されます。

図2-25 ルールのインジェクトの「確認」ダイアログ

「図2-25 ルールのインジェクトの「確認」ダイアログ」の説明

55. 「OK」をクリックします。
問合せウィザードによってルールがcqlProcプロセッサに追加されます。

56. 「保存」をクリックします。

57. 「CQLルール」タブをクリックします。
図2-26に示すように「CQLルール」タブが表示されます。

58. 「問合せ」ラジオ・ボタンをクリックします。
Tracking問合せが存在していることを確認します。

図2-26 Tracking問合せを含む「CQLルール」タブ

「図2-26 Tracking問合せを含む「CQLルール」タブ」の説明

欠落イベントの問合せをテストするには:

1. 欠落イベントの問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、2.5項「開発環境の設定」の説明に従って環境を設定します。

2. MIDDLEWARE_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に作成したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

3. orderData.propプロパティ・ファイルを使用してロード・ジェネレータを実行します。

1. Windowsの場合:

prompt> runloadgen.cmd orderData.prop

2. UNIXの場合:

prompt> runloadgen.sh orderData.prop

4. Oracle CEP Visualizerで上のペインの「ストリームの表示」ボタンをクリックします。
図2-27に示すように「ストリーム・ビジュアライザ」画面が表示されます。

図2-27 ストリーム・ビジュアライザ: 欠落イベントの表示

「図2-27 ストリーム・ビジュアライザ: 欠落イベントの表示」の説明

5. 「クライアントの初期化」をクリックします。

6. 「登録」タブをクリックします。

7. オーダー警告ラジオ・ボタンを選択します。

8. 「サブスクライブ」をクリックします。
欠落イベントが検出されると、Oracle CEPによって「受信メッセージ」領域が更新され、生成されたAlertEventsが表示されます。

2.7.4.2 移動平均の問合せの作成

ここでは、Oracle CEP Visualizer問合せウィザードを使用して、stockProcプロセッサが実行するOracle CQLの移動平均問合せを作成する方法を説明します。

これは2段階で行います。

- まず、移動平均問合せのソースとして使用するビュー(Oracle CQLにおける副問合せ)を作成します。
「移動平均問合せのビュー・ソースの作成」を参照してください。

- 次に、ソース・ビューを使用する移動平均問合せを作成します。
「ビュー・ソースを使用する移動平均問合せの作成」を参照してください。

- 最後に、移動平均問合せをテストします。
「移動平均問合せのテスト」を参照してください。

移動平均問合せのビュー・ソースを作成するには:

1. CQLのOracle CEPインスタンスがまだ実行されていない場合は、2.7.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。
Oracle CEP Visualizerを使用するには、サーバーが実行中である必要があります。

2. ブラウザで次のURLを起動します。

http://host:port/wlevs

hostは、Oracle CEPが実行中のコンピュータ名を指します。portは、サーバーに構成されているJetty NetIOポートを指します(デフォルト値9002)。

図2-28に示すように「ログオン」画面が表示されます。

図2-28 Oracle CEP Visualizerの「ログオン」画面

「図2-28 Oracle CEP Visualizerの「ログオン」画面」の説明

3. 「ログオン」画面で、「ユーザーID」にwlevs、「パスワード」にwlevsを入力し、「ログイン」をクリックします。
図2-29に示すようにOracle CEP Visualizerダッシュボードが表示されます。

図2-29 Oracle CEP Visualizerダッシュボード

「図2-29 Oracle CEP Visualizerダッシュボード」の説明

Oracle CEP Visualizerのユーザー・インタフェースの詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のOracle CEP Visualizerユーザー・インタフェースの概要に関する項を参照してください。

4. 右側のペインで、「WLEventServerDomain」→「NonClusteredServer」→「アプリケーション」を展開します。

5. cqlノードを選択します。
図2-30に示すようにCQLアプリケーション画面が表示されます。

図2-30 CQLアプリケーション画面: 「全般」タブ

「図2-30 CQLアプリケーション画面: 「全般」タブ」の説明

6. 「イベント処理ネットワーク」タブを選択します。
図2-31に示すように「イベント処理ネットワーク」画面が表示されます。

図2-31 CQLアプリケーション: 「イベント処理ネットワーク」タブ

「図2-31 CQLアプリケーション: 「イベント処理ネットワーク」タブ」の説明

7. Oracle CQLプロセッサstockProcessorのアイコンをダブルクリックします。
図2-32に示すようにOracle CQLプロセッサ画面が表示されます。

図2-32 Oracle CQLプロセッサ: 「全般」タブ

「図2-32 Oracle CQLプロセッサ: 「全般」タブ」の説明

8. 「問合せウィザード」タブを選択します。
図2-33に示すように「問合せウィザード」画面が表示されます。

図2-33 Oracle CQLプロセッサ: 「問合せウィザード」タブ

「図2-33 Oracle CQLプロセッサ: 「問合せウィザード」タブ」の説明

Oracle CQL問合せウィザードを使用すると、テンプレートまたは個々のOracle CQL構文からOracle CQL問合せを作成できます。

この手順では、個々のOracle CQL構文からOracle CQLのビューおよび問合せを作成します。

詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』の問合せウィザードを使用したOracle CQLプロセッサのルール作成に関する項を参照してください。

9. 図2-34に示すように、SSourceアイコン(ストリーム・ソース)を「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

図2-34 問合せウィザード: SSource

「図2-34 問合せウィザード: SSource」の説明

10. SSourceのアイコンをダブルクリックします。
SSourceの構成画面が表示されます。

ビューのソースはstockChannelストリームになります。このストリームから、数が1000を超える在庫イベントを選択します。これが移動平均問合せのソースになります。

11. SSourceを次のように構成します(図2-35)。

- 「タイプ」として「ストリーム」を選択します。
ビューのソースはstockChannelストリームになります。

- 「ソースの選択」プルダウン・メニューでstockChannelを選択します。

- 別名StockVolGt1000を「AS」フィールドに入力します。

図2-35 SSourceの構成ダイアログ

「図2-35 SSourceの構成ダイアログ」の説明

12. 「保存」をクリックします。

13. 「問合せの保存」をクリックします。

14. プロンプトが表示されたら、「問合せID」フィールドにStockVolGt1000と入力します。

15. 「保存」をクリックします。
次は、Oracle CQLフィルタを追加します。

16. 図2-36に示すように、「フィルタ」アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

図2-36 問合せウィザード: フィルタ

「図2-36 問合せウィザード: フィルタ」の説明

17. SSourceアイコンをクリックしてウィンドウアイコンまでドラッグし、図2-37に示すようにOracle CQL構文を接続します。

図2-37 SSourceアイコンと「フィルタ」アイコンの接続

「図2-37 SSourceアイコンと「フィルタ」アイコンの接続」の説明

18. 「フィルタ」アイコンをダブルクリックします。
図2-38に示すようにフィルタの構成ダイアログが表示されます。

図2-38 フィルタの構成ダイアログ

「図2-38 フィルタの構成ダイアログ」の説明

19. 「式ビルダー」ボタンをクリックします。
「式ビルダー」ダイアログが表示されます。

20. 式ビルダーを次のように構成します(図2-39)。

- 「イベント・タイプの選択」プルダウン・メニューからStockVolGt100を選択し、この式で使用できる変数を定義します。

- volume変数をダブルクリックして、「式ビルダー」フィールドに追加します。

- 「オペランド」リストの>をダブルクリックして、「式ビルダー」フィールドに追加します。

- >オペランドの後に値1000を入力します。

図2-39 フィルタの式ビルダー

「図2-39 フィルタの式ビルダー」の説明

21. 「保存」をクリックします。

22. 「フィルタの追加」をクリックします。
図2-40に示すように、問合せウィザードによって「生成されたCQL文」にこの式が追加されます。

図2-40 フィルタの構成ダイアログ: フィルタの追加後

「図2-40 フィルタの構成ダイアログ: フィルタの追加後」の説明

23. 「保存」をクリックします。

24. 「問合せの保存」をクリックします。
次は、select文を追加します。

25. 図2-41に示すように、選択アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

図2-41 問合せウィザード: 選択

「図2-41 問合せウィザード: 選択」の説明

26. 「フィルタ」アイコンをクリックして選択アイコンにドラッグし、Oracle CQL構文を接続します。

27. 選択アイコンをダブルクリックします。
選択の構成画面が表示されます。

price、symbolおよびvolumeをStockVolGt1000ストリームから選択します。

28. 選択を次のように構成します。

- 「ソースの選択」プルダウン・メニューでStockVolGt1000を選択します。

- priceプロパティを選択し、プラス記号ボタンをクリックします。
問合せウィザードによって、プロパティが「生成されたCQL文」に追加されます。

- symbolプロパティとvolumeプロパティについても繰り返します。

図2-42に示すように選択の構成ダイアログが表示されます。

図2-42 選択の構成ダイアログ: プロパティの選択

「図2-42 選択の構成ダイアログ: プロパティの選択」の説明

29. 「保存」をクリックします。

30. 「問合せの保存」をクリックします。
最後に出力を追加します。

31. 図2-43に示すように、「出力」アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

図2-43 問合せウィザード: 出力

「図2-43 問合せウィザード: 出力」の説明

32. 選択アイコンをクリックして「出力」アイコンにドラッグし、Oracle CQL構文を接続します。

33. 「出力」アイコンをダブルクリックします。
出力の構成画面が表示されます。

34. 出力を次のように構成します(図2-44)。

- 「ビュー」を選択します。

- 「ビュー名」にStockVolGt1000を構成します。

- 「スキーマの表示」フィールドの内容を削除します。
Oracle CEPサーバーによってビュー・スキーマが定義されます。

図2-44 出力の構成ダイアログ

「図2-44 出力の構成ダイアログ」の説明

35. 「ルールのインジェクト」をクリックします。
図2-45に示すように、ルールのインジェクトの「確認」ダイアログが表示されます。

図2-45 ルールのインジェクトの「確認」ダイアログ

「図2-45 ルールのインジェクトの「確認」ダイアログ」の説明

36. 「OK」をクリックします。
問合せウィザードによってルールがcqlProcプロセッサに追加されます。

37. 「保存」をクリックします。

38. 「CQLルール」タブをクリックします。
図2-46に示すように「CQLルール」タブが表示されます。

39. 「ビュー」ラジオ・ボタンをクリックします。
StockVolGt1000ビューが存在していることを確認します。

図2-46 ビューStockVolGt1000を含む「CQLルール」タブ

「図2-46 ビューStockVolGt1000を含む「CQLルール」タブ」の説明

ソース・ビューを使用する移動平均問合せを作成するには:

1. CQLのOracle CEPインスタンスがまだ実行されていない場合は、2.7.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。
Oracle CEP Visualizerを使用するには、サーバーが実行中である必要があります。

2. ブラウザで次のURLを起動します。

http://host:port/wlevs

hostは、Oracle CEPが実行中のコンピュータ名を指します。portは、サーバーに構成されているJetty NetIOポートを指します(デフォルト値9002)。

図2-47に示すように「ログオン」画面が表示されます。

図2-47 Oracle CEP Visualizerの「ログオン」画面

「図2-47 Oracle CEP Visualizerの「ログオン」画面」の説明

3. 「ログオン」画面で、「ユーザーID」にwlevs、「パスワード」にwlevsを入力し、「ログイン」をクリックします。
図2-48に示すようにOracle CEP Visualizerダッシュボードが表示されます。

図2-48 Oracle CEP Visualizerダッシュボード

「図2-48 Oracle CEP Visualizerダッシュボード」の説明

Oracle CEP Visualizerのユーザー・インタフェースの詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のOracle CEP Visualizerユーザー・インタフェースの概要に関する項を参照してください。

4. 左側のペインで、「WLEventServerDomain」→「NonClusteredServer」→「アプリケーション」を展開します。

5. cqlノードを選択します。
図2-49に示すようにCQLアプリケーション画面が表示されます。

図2-49 CQLアプリケーション画面: 「全般」タブ

「図2-49 CQLアプリケーション画面: 「全般」タブ」の説明

6. 「イベント処理ネットワーク」タブを選択します。
図2-50に示すように「イベント処理ネットワーク」画面が表示されます。

図2-50 CQLアプリケーション: 「イベント処理ネットワーク」タブ

「図2-50 CQLアプリケーション: 「イベント処理ネットワーク」タブ」の説明

7. Oracle CQLプロセッサstockProcessorのアイコンをダブルクリックします。
図2-51に示すようにOracle CQLプロセッサ画面が表示されます。

図2-51 Oracle CQLプロセッサ: 「全般」タブ

「図2-51 Oracle CQLプロセッサ: 「全般」タブ」の説明

8. 「問合せウィザード」タブを選択します。
図2-52に示すように「問合せウィザード」画面が表示されます。最近このプロセッサに対する問合せを作成または編集している場合は、その問合せが問合せウィザードのキャンバスに表示される可能性があります。それ以外の場合、キャンバスは空白になります。

図2-52 Oracle CQLプロセッサ: 「問合せウィザード」タブ

「図2-52 Oracle CQLプロセッサ: 「問合せウィザード」タブ」の説明

Oracle CQL問合せウィザードを使用すると、テンプレートまたは個々のOracle CQL構文からOracle CQL問合せを作成できます。

この手順では、個々のOracle CQL構文からOracle CQLのビューおよび問合せを作成します。

詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』の問合せウィザードを使用したOracle CQLプロセッサのルール作成に関する項を参照してください。

9. 図2-53に示すように、SSourceアイコン(ストリーム・ソース)を「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

図2-53 問合せウィザード: 移動平均問合せのSSource

「図2-53 問合せウィザード: 移動平均問合せのSSource」の説明

10. SSourceのアイコンをダブルクリックします。
SSourceの構成画面が表示されます。

11. SSourceダイアログを次のように構成します(図2-54)。

- 「タイプ」として「ビュー」を選択します。

- 「ソースの選択」プルダウン・メニューでStockVolGt1000ビューを選択します。

図2-54 SSourceの構成ダイアログ: 移動平均問合せ

「図2-54 SSourceの構成ダイアログ: 移動平均問合せ」の説明

12. 「保存」をクリックします。

13. 「問合せの保存」をクリックします。

14. 図2-55に示すように、ウィンドウアイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

図2-55 問合せウィザード: 移動平均問合せのウィンドウ

「図2-55 問合せウィザード: 移動平均問合せのウィンドウ」の説明

15. SSourceアイコンをクリックしてウィンドウアイコンにドラッグし、Oracle CQL構文を接続します。

16. ウィンドウアイコンをダブルクリックします。
SSourceの構成画面が表示されます。

symbolをパーティションとして、最後の2つのイベントに対するスライディング・ウィンドウを作成します。

17. ウィンドウ・ダイアログを次のように構成します(図2-56)。

- 「ソース・プロパティ・リスト」でsymbolを選択して、パーティション・リストに追加します。

- 「タイプ」として「パーティション」を選択します。

- 「行ベース」を選択し、「行ベース」フィールドに2を入力します。

18. 「ウィンドウの追加」をクリックします。
図2-56に示すように、問合せウィザードによって「生成されたCQL文」にこのスライディング・ウィンドウが追加されます。

図2-56 ウィンドウの構成ダイアログ: ウィンドウの追加後

「図2-56 ウィンドウの構成ダイアログ: ウィンドウの追加後」の説明

19. 「保存」をクリックします。

20. 「問合せの保存」をクリックします。

21. 図2-57に示すように、選択アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

図2-57 問合せウィザード: 移動平均問合せの選択

「図2-57 問合せウィザード: 移動平均問合せの選択」の説明

22. ウィンドウ・アイコンをクリックして選択アイコンにドラッグし、Oracle CQL構文を接続します。

23. 選択アイコンをダブルクリックします。
選択の構成画面が表示されます。

24. 「ソースの選択」プルダウン・メニューでStockVolGt1000を選択します。
これは、前に作成した移動平均問合せのビューのソースです(「移動平均問合せのビュー・ソースを作成するには:」を参照してください)。

25. ターゲット・イベント・タイププルダウン・メニューからMovingAvgEventを選択します。
これは、移動平均問合せによって生成される出力イベントです。ソース・イベントからこの出力イベントにプロパティをマップします。

26. 「ソースのプロパティ」リストからsymbolを選択します。
図2-58に示すように、選択したソース・プロパティが「プロジェクト式」に追加されます。

図2-58 選択の構成ダイアログ: ソース・プロパティsymbolの選択

「図2-58 選択の構成ダイアログ: ソース・プロパティsymbolの選択」の説明

このケースでは、ソース・プロパティsymbolを出力イベント・プロパティsymbolにそのままマップします。

27. 「AS」フィールドの横のプルダウン・メニューをクリックし、symbolを選択します。

28. プラス記号ボタンをクリックします。
図2-59に示すように、このソース・プロパティが「生成されたCQL文」のプロジェクト式に追加されます。

図2-59 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティsymbol

「図2-59 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティsymbol」の説明

29. 「ソースのプロパティ」リストからpriceを選択します。
図2-60に示すように、選択したソース・プロパティが「プロジェクト式」に追加されます。

図2-60 選択の構成ダイアログ: ソース・プロパティpriceの選択

「図2-60 選択の構成ダイアログ: ソース・プロパティpriceの選択」の説明

このケースでは、ソース・プロパティpriceを処理した後で出力イベントにマップします。

30. 「式ビルダー」ボタンをクリックします。
「式ビルダー」ダイアログが表示されます。

31. 「関数タイプの選択」プルダウン・メニューで「集計関数」を選択します。
Oracle CQLで提供される集計関数のリストが表示されます。AVG関数を使用します。

32. 「式ビルダー」フィールドでStockVolGt1000.priceを選択します。

33. AVG関数をダブルクリックします。
図2-61に示すように、「式ビルダー」フィールドで選択した部分がAVG()関数によって囲まれます。

図2-61 式ビルダー: AVG関数の適用

「図2-61 式ビルダー: AVG関数の適用」の説明

34. 「保存」をクリックします。
図2-62に示すように、式が「プロジェクト式」フィールドに追加されます。

図2-62 選択の構成ダイアログ: 式を含む

「図2-62 選択の構成ダイアログ: 式を含む」の説明

35. 「AS」フィールドの横のプルダウン・メニューをクリックし、movingAvgPriceを選択します。

36. プラス記号ボタンをクリックします。
図2-63に示すように、このソース・プロパティが「生成されたCQL文」のプロジェクト式に追加されます。

図2-63 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティprice

「図2-63 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティprice」の説明

37. 「検証」をクリックします。
図2-64に示すように検証エラー・ダイアログが表示されます。

図2-64 検証エラー: GROUP BY

「図2-64 検証エラー: GROUP BY」の説明

パーティションを使用しているため、GROUP BY句を指定する必要があります。

38. 「グループ」タブを選択します。
「グループ」タブが表示されます。

39. 「グループ」タブを次のように構成します(図2-65)。

- 「ソースの選択」プルダウン・メニューでStockVolGt1000を選択します。

- 「プロパティ」リストからsymbolを選択します。

- プラス記号ボタンをクリックします。

図2-65に示すようにsymbolプロパティがGROUP BY句に追加されます。

図2-65 「グループ」タブ: グループ化プロパティsymbolを含む

「図2-65 「グループ」タブ: グループ化プロパティsymbolを含む」の説明

40. 「保存」をクリックします。

41. 「問合せの保存」をクリックします。
次は、問合せを出力に結び付けます。

42. 図2-66に示すように、「出力」アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。

図2-66 問合せウィザード: 出力

「図2-66 問合せウィザード: 出力」の説明

43. 選択アイコンをクリックして「出力」アイコンにドラッグし、Oracle CQL構文を接続します。

44. 「出力」アイコンをダブルクリックします。
出力の構成画面が表示されます。

45. 出力を次のように構成します(図2-67)。

- 「問合せ」を選択します。

- 「問合せ名」としてMovingAverageと入力します。

図2-67 出力の構成ダイアログ

「図2-67 出力の構成ダイアログ」の説明

46. 「ルールのインジェクト」をクリックします。
図2-68に示すように、ルールのインジェクトの「確認」ダイアログが表示されます。

図2-68 ルールのインジェクトの「確認」ダイアログ

「図2-68 ルールのインジェクトの「確認」ダイアログ」の説明

47. 「OK」をクリックします。
問合せウィザードによってルールがcqlProcプロセッサに追加されます。

48. 「保存」をクリックします。

49. 「CQLルール」タブをクリックします。
図2-69に示すように「CQLルール」タブが表示されます。

50. 「問合せ」ラジオ・ボタンをクリックします。
MovingAverage問合せが存在していることを確認します。

図2-69 ビューMovingAverageを含む「CQLルール」タブ

「図2-69 ビューMovingAverageを含む「CQLルール」タブ」の説明

移動平均問合せをテストするには:

1. 移動平均の問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、2.5項「開発環境の設定」の説明に従って環境を設定します。

2. MIDDLEWARE_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

3. stockData.propプロパティ・ファイルを使用してロード・ジェネレータを実行します。

1. Windowsの場合:

prompt> runloadgen.cmd stockData.prop

2. UNIXの場合:

prompt> runloadgen.sh stockData.prop

4. Oracle CEP Visualizerで上のペインの「ストリームの表示」ボタンをクリックします。
図2-70に示すように「ストリーム・ビジュアライザ」画面が表示されます。

図2-70 ストリーム・ビジュアライザ: 移動平均問合せの出力表示

「図2-70 ストリーム・ビジュアライザ: 移動平均問合せの出力表示」の説明

5. 「クライアントの初期化」をクリックします。

6. 「クライアントの初期化」フィールドに/stockmovingと入力します。

7. 「サブスクライブ」をクリックします。
移動平均問合せによってイベントが出力されると、Oracle CEPによって「受信メッセージ」領域が更新され、生成されたイベントが表示されます。

2.8 Oracle Spatialサンプル

このサンプルは、Oracle Spatialの使用方法を示すもので、Oracle CQL問合せで全地球測位システム(GPS)のイベント・ストリームを処理してバスのGPS位置を追跡し、バスが事前に定義されたバス停の位置に到着するとアラートを生成します。

図2-71に、Oracle Spatialサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。

図2-71 Oracle Spatialサンプルのイベント処理ネットワーク

このサンプルには次のコンポーネントが含まれています。

- BusPositionGen - バス位置のGPSイベントの入力ストリームをシミュレートするコンポーネント。Oracle CEPのloadgenユーティリティおよびcsvgenアダプタ・プロバイダを使用して、カンマ区切り値(CSV)を読み取り、EPNにBusPosイベントとして渡します。

- BusStopAdapter - MIDDLEWARE_HOME\ocep_11.1\samples\domains\spatial_domain\defaultserver\applications\spatial_sample\bus_stops.csvに基づいてバス停の位置を生成するカスタム・アダプタ・コンポーネント。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

- BusPosStream - BusPosイベントをProcessorにストリームとして送るコンポーネント。

- BusStopRelation - BusPosイベントをProcessorにリレーションとして送るコンポーネント。

- Processor - 着信BusPosイベントに対してOracle CQL問合せを実行するコンポーネント。

- BusStopChannel、BusPosChannelおよびBusStopArrivalChannel - Processorコンポーネントから別の問合せの結果を適切な発信アダプタまたは発信Beanに伝えるために、それぞれが別のセレクタを指定するコンポーネント。

- BusStopPub、BusPosPubおよびBusStopArrivalPub - Processorコンポーネントの問合せの結果をパブリッシュするコンポーネント。

- BusStopArrivalOutputBean - 挿入、削除および更新の各イベントのメッセージを記録するPOJOイベントBeanコンポーネント。BusStopArrivalChannelで提供されるリレーションの視覚化に役立ちます。

注意:

データ・カートリッジの詳細は、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のデータ・カートリッジの概要に関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のOracle Spatialに関する項

2.8.1 Oracle Spatialサンプルの実行

Oracle Spatialアプリケーションはspatial_domainドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle CEPのインスタンスを起動します。

Oracle Spatialサンプルをspatial_domainドメインから実行するには:

1. コマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\domains\spatial_domain\defaultserverにあるOracle Spatialサンプルのドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

prompt> cd d:\Oracle iddleware\ocep_11.1\samples\domains\spatial_domain\defaultserver

2. サーバー起動スクリプトで環境が正しく設定されていることを確認します。
詳細は、2.5項「開発環境の設定」を参照してください。

3. 適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle CEPを起動します。

1. Windowsの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.cmd -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.cmd

2. UNIXの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.sh -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.sh

コンソール・ログに次のように表示されるまで待機します。

<Mar 4, 2010 2:13:15 PM EST> <Notice> <Spring> <BEA-2047000> <The application context for "spatial_sample" was started successfully>
<Mar 4, 2010 2:13:15 PM EST> <Notice> <Server> <BEA-2046000> <Server STARTED>

このメッセージは、Oracle Spatialサンプルが正しく実行されていることを示しています。

4. Oracle Spatialサンプルが実行しているのと同じホストで、ブラウザを起動してhttp://localhost:9002/bus/main.htmlに移動します。

注意:

あるホストでこのサンプルを実行し、別のホストからブラウズすることはできません。これは、このサンプルが使用するGoogle API Keyの制約です。Oracle CEPの制約ではありません。

Oracle SpatialサンプルのWebページが、図2-72のように表示されます。

図2-72 Oracle SpatialのWebページ

「図2-72 Oracle SpatialのWebページ」の説明

バス停到着タブをクリックすると、図2-73に示すようにバス停の到着データが表示されます。

図2-73 Oracle SpatialのWebページ: バス停到着タブ

「図2-73 Oracle SpatialのWebページ: バス停到着タブ」の説明

5. Oracle CEPロード・ジェネレータを実行して、サンプル・データを生成します。

1. Windowsの場合:

- コマンド・プロンプトを開いて、MIDDLEWARE_HOME/ocep_11.1/utils/load-generatorにナビゲートします。

- runloadgen.cmd bus_positions.prop

2. UNIXの場合:

- ターミナル・ウィンドウを開いて、MIDDLEWARE_HOME/ocep_11.1/utils/load-generatorにナビゲートします。

- runloadgen.sh bus_positions.prop

6. 図2-74に示すように、バスの運行状況とアラートをブラウザで確認します。

図2-74 Oracle SpatialのWebページ: バスの追跡

「図2-74 Oracle SpatialのWebページ: バスの追跡」の説明

2.8.2 Oracle Spatialサンプルのビルドとデプロイ

Oracle Spatialサンプルのソース・ディレクトリには、Javaソースと、Oracle Spatialアプリケーションを構成する他の必須リソース(構成XMLファイルなど)が含まれます。build.xml Antファイルには、アプリケーションをビルドしてspatial_domainドメインにデプロイするためのターゲットが含まれています。

詳細は、2.8.3項「Oracle SpatialサンプルをビルドするAntターゲットの説明」を参照してください。

ソース・ディレクトリからOracle Spatialサンプルをビルドしてデプロイするには:

1. spatial_domainのOracle CEPインスタンスがまだ実行されていない場合は、2.8.1項「Oracle Spatialサンプルの実行」の手順に従ってサーバーを起動します。
再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

2. 新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\spatialにあるOracle Spatialソース・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです。
例:

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

3. 開発環境を設定します。
詳細は、2.5項「開発環境の設定」を参照してください。

4. all Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。

prompt> ant all

5. deploy Antターゲットを実行してアプリケーションJARファイルをOracle CEPにデプロイします。

prompt> ant -Daction=update deploy

注意:

このターゲットは、ドメイン・ディレクトリにある既存のOracle SpatialのアプリケーションJARファイルを上書きします。

2.8.3 Oracle SpatialサンプルをビルドするAntターゲットの説明

Oracle Spatialのソース・ディレクトリの最上位レベルにあるbuild.xmlファイルには、アプリケーションをビルドおよびデプロイするための次のターゲットが含まれています。

- clean - このターゲットは、現在のディレクトリの下にあるdistおよびoutput作業ディレクトリを削除します。

- all - このターゲットは、アプリケーションをクリーンアップしてコンパイルし、com.bea.wlevs.example.helloworld_11.1.1.4_0.jarというJARファイルを生成し、生成したJARファイルを現在のディレクトリの下のdistディレクトリに格納します。

- deploy - このターゲットはDeployerユーティリティを使用してJARファイルをOracle CEPにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.8.4 Oracle Spatialサンプルの実装

Oracle Spatialのサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーションの標準的な作成手順に関する項に従って行われます。

標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。

Oracle Spatialサンプルのすべてのファイルは、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\spatialディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。

Oracle Spatialサンプルで使用されるファイルは次のとおりです。

- アプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。このXMLファイルをOracle CEPアプリケーションに組み込む必要があります。
サンプルでは、このファイルはcontext.xmlという名前で、META-INF/springディレクトリにあります。

詳細は、2.8.5項「Oracle SpatialサンプルのEPNアセンブリ・ファイル」を参照してください。

- アプリケーションのプロセッサ・コンポーネントなど、EPNの様々なコンポーネントを構成するコンポーネント構成ファイル。
サンプルでは、このファイルはconfig.xmlという名前で、META-INF/wlevsディレクトリにあります。

詳細は、2.8.6項「Oracle Spatialサンプルのコンポーネント構成ファイル」を参照してください。

- 次のコンポーネントを実装するJavaファイル

- BusStopAdapter - MIDDLEWARE_HOME\ocep_11.1\samples\domains\spatial_domain\defaultserver\applications\spatial_sample\bus_stops.csvに基づいてバス停の位置を生成するカスタム・アダプタ・コンポーネント。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

- OutputBean:挿入、削除および更新の各イベントのメッセージを記録するPOJOイベントBeanコンポーネント。BusStopArrivalChannelで提供されるリレーションの視覚化に役立ちます。

- OrdsHelper: JGeometryからDouble値のListとして縦座標を返すメソッドgetOrdsを提供するヘルパー・クラス。

これらのJavaファイルは、source\applications\spatial\src\com\oracle\cep\sample\spatialディレクトリにあります。

このPOJOで参照されているOracle CEP APIの詳細は、『Oracle Fusion Middleware Java API Reference for Oracle Complex Event Processing』を参照してください。

- Oracle CEPにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MFファイル。
サンプルでは、MANIFEST.MFファイルがMETA-INFディレクトリにあります。

このファイルの作成方法およびOracle CEPにデプロイするOSGiバンドルの作成方法の詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のアプリケーションのアセンブリとデプロイメントの概要に関する項を参照してください。

Oracle Spatialサンプルでは、OSGiバンドルのコンパイル、アセンブリ、およびデプロイにbuild.xml Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xmlファイルの詳細は、2.8.2項「ソース・ディレクトリからビルドおよびデプロイするOracle Spatialサンプル」を参照してください。

2.8.5 Oracle SpatialサンプルのEPNアセンブリ・ファイル

EPNアセンブリ・ファイルの主な目的の1つは、アプリケーションのコンポーネントを宣言してイベント処理ネットワークを定義し、これらすべてのコンポーネントの接続方法、つまりどのコンポーネントが他のどのコンポーネントをリスニングするかを定義することです。Oracle CEPには、ネットワークの宣言に使用するカスタムSpringタグのセットが用意されています。また、EPNアセンブリ・ファイルは、アプリケーションで使用するイベント・タイプとアプリケーションのOracle CQLルールまたはEPLルールを登録するためにも使用します。

EPNアセンブリ・ファイルを通常の方法で使用して、 Springアプリケーション・コンテキストで アプリケーション・コンポーネントBeanを定義します。アプリケーション・コンポーネントBeanは、 Javaクラスで実装される「アダプタ」や 「ビジネス・ロジックを含むPOJO」などです。

詳細については、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』の「スキーマ参照: EPN Assembly spring-wlevs-v11_1_1_6.xsd」

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPスキーマに関する項

例2-3は、Oracle Spatialサンプル・アプリケーションで使用されるEPNアセンブリ・ファイルです。

例2-3 Oracle SpatialサンプルのEPNアセンブリ・ファイル

<?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="BusPos">
<wlevs:properties type="tuple">
<wlevs:property name="busId" type="int"/>
<wlevs:property name="seq" type="int"/>
<wlevs:property name="longitude" type="double"/>
<wlevs:property name="latitude" type="double"/>
</wlevs:properties>
</wlevs:event-type>

<wlevs:event-type type-name="BusStop">
<wlevs:properties type="tuple">
<wlevs:property name="busId" type="int"/>
<wlevs:property name="seq" type="int"/>
<wlevs:property name="geom" type="com.oracle.cep.cartridge.spatial.Geometry"/>
</wlevs:properties>
</wlevs:event-type>

<wlevs:event-type type-name="BusPosEvent">
<wlevs:properties type="tuple">
<wlevs:property name="busId" type="int"/>
<wlevs:property name="seq" type="int"/>
<wlevs:property name="geom" type="com.oracle.cep.cartridge.spatial.Geometry"/>
</wlevs:properties>
</wlevs:event-type>

<wlevs:event-type type-name="BusStopArrivalEvent">
<wlevs:properties type="tuple">
<wlevs:property name="incidentTime" type="int"/>
<wlevs:property name="busId" type="int"/>
<wlevs:property name="stopSeq" type="int"/>
</wlevs:properties>
</wlevs:event-type>

<wlevs:event-type type-name="BusPosPubEvent">
<wlevs:properties type="tuple">
<wlevs:property name="lastTime" type="int"/>
<wlevs:property name="busId" type="int"/>
<wlevs:property name="longitude" type="double"/>
<wlevs:property name="latitude" type="double"/>
</wlevs:properties>
</wlevs:event-type>

<wlevs:event-type type-name="BusStopPubEvent">
<wlevs:properties type="tuple">
<wlevs:property name="busId" type="int"/>
<wlevs:property name="id" type="int"/>
<wlevs:property name="coords" type="java.util.List"/>
</wlevs:properties>
</wlevs:event-type>

</wlevs:event-type-repository>

<!-- Assemble EPN (event processing network) -->

<wlevs:adapter id="BusPositionGen" provider="csvgen">
<wlevs:instance-property name="port" value="9020"/>
<wlevs:instance-property name="eventTypeName" value="BusPos"/>
<wlevs:instance-property
name="eventPropertyNames"
value="busId,seq,longitude,latitude"/>
<wlevs:listener ref="BusPosStream"/>
<wlevs:listener ref="BusStopAdapter"/>
</wlevs:adapter>

<wlevs:adapter id="BusStopAdapter" class="com.oracle.cep.sample.spatial.BusStopAdapter" >
<wlevs:instance-property name="path" value="bus_stops.csv"/>
<wlevs:instance-property name="eventType" value="BusStop"/>

<wlevs:instance-property name="buffer" value="30.0"/>
</wlevs:adapter>

<wlevs:channel id="BusPosStream" event-type="BusPos"
max-size="0" max-threads="0">
<wlevs:listener ref="Processor"/>
</wlevs:channel>

<wlevs:channel id="BusStopRelation" event-type="BusStop" is-relation="true" >
<wlevs:listener ref="Processor"/>
<wlevs:source ref="BusStopAdapter"/>
</wlevs:channel>

<wlevs:processor id="Processor" >
</wlevs:processor>

<!-- bus stops -->
<wlevs:channel id="BusStopChannel" event-type="BusStopPubEvent">
<wlevs:listener ref="BusStopPub" />
<wlevs:source ref="Processor"/>
</wlevs:channel>

<wlevs:adapter id="BusStopPub" provider="httppub" />

<!-- bus position -->
<wlevs:channel id="BusPosChannel" event-type="BusPosPubEvent">
<wlevs:listener ref="BusPosPub" />
<wlevs:source ref="Processor"/>
</wlevs:channel>

<wlevs:adapter id="BusPosPub" provider="httppub" />

<!-- bus stop arrival -->
<wlevs:channel id="BusStopArrivalChannel" event-type="BusStopArrivalEvent">
<wlevs:listener ref="BusStopArrivalPub" />
<wlevs:listener ref="BusStopArrivalOutputBean" />
<wlevs:source ref="Processor"/>
</wlevs:channel>

<wlevs:event-bean id="BusStopArrivalOutputBean" class="com.oracle.cep.sample.spatial.OutputBean">
</wlevs:event-bean>

<wlevs:adapter id="BusStopArrivalPub" provider="httppub" />

</beans>

2.8.6 Oracle Spatialサンプルのコンポーネント構成ファイル

Oracle Spatialアプリケーションでは5つのプロセッサが使用されます。3つは3つのデータ・フィードを処理し、1つは結果のイベントを結合し、1つは結果を要約します。

これらのXMLファイルには、入力イベントに対して実行されるOracle CEP問合せが含まれます。このサンプルではOracle CQL言語が使用されます。Oracle CEP問合せ言語の詳細およびサンプルは、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』

- 『Oracle Fusion Middleware Oracle Complex Event Processing EPL言語リファレンス』

注意:

Oracle EPLはOracle CQLによって置き換えられます。

例2-4は、Oracle Spatialサンプル・アプリケーションで使用されるコンポーネント構成ファイルです。

プロセッサ要素には、Oracle CEPを使用し、Oracle Spatialを使用して地理データを処理するOracle CQLのビューと問合せが含まれます。

注意:

データ・カートリッジの詳細は、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のデータ・カートリッジの概要に関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のOracle Spatialに関する項

例2-4 Oracle Spatialサンプルのコンポーネント構成ファイル

<?xml version="1.0" encoding="UTF-8"?>
<n1:config
xsi:schemaLocation="http://www.bea.com/ns/wlevs/config/application wlevs_application_config.xsd"
xmlns:n1="http://www.bea.com/ns/wlevs/config/application"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<http-pub-sub-adapter>
<name>BusPosPub</name>
<server-url>http://localhost:9002/pubsub</server-url>
<channel>/bus/buspos</channel>
<event-type>BusPosPubEvent</event-type>
</http-pub-sub-adapter>

<http-pub-sub-adapter>
<name>BusStopPub</name>
<server-url>http://localhost:9002/pubsub</server-url>
<channel>/bus/busstop</channel>
<event-type>BusStopPubEvent</event-type>
</http-pub-sub-adapter>

<http-pub-sub-adapter>
<name>BusStopArrivalPub</name>
<server-url>http://localhost:9002/pubsub</server-url>
<channel>/bus/busstoparrival</channel>
<event-type>BusStopArrivalEvent</event-type>
</http-pub-sub-adapter>

<processor>
<name>Processor</name>
<rules>

<view id="BusPosGeomStream" >
select bus.busId as busId, bus.seq as seq,
com.oracle.cep.cartridge.spatial.Geometry.createPoint(8307, bus.longitude, bus.latitude) as geom
from BusPosStream as bus
</view>

<query id="BusArrival">
ISTREAM(
select systimestamp() as incidentTime, bus.busId as busId, busstop.seq as stopSeq
from BusPosGeomStream[NOW] as bus, BusStopRelation as busstop
where CONTAIN@spatial(busstop.geom, bus.geom, 0.0d) = true and
bus.busId = busstop.busId
)
</query>

<query id="BusStopOut">
select busId, seq as id, com.oracle.cep.sample.spatial.OrdsHelper.getOrds(geom) as coords from BusStopRelation
</query>

<query id="BusPosOut">
select systimestamp() as lastTime, busId, longitude, latitude from BusPosStream
</query>
</rules>
</processor>

<channel>
<name>BusStopArrivalChannel</name>
<selector>BusArrival</selector>
</channel>

<channel>
<name>BusPosChannel</name>
<selector>BusPosOut</selector>
</channel>

<channel>
<name>BusStopChannel</name>
<selector>BusStopOut</selector>
</channel>

</n1:config>

2.9 外国為替取引(FX)のサンプル

外国為替取引のサンプル(簡単にFXと呼びます)は、複数のデータ・フィードから読み込んだ情報を処理するために複数のプロセッサを使用しているので、HelloWorldのサンプルよりも複雑です。このサンプルでは、Oracle CEPロード・ジェネレータ・ユーティリティを使用してデータ・フィードをシミュレートします。

図2-75に、FXサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。

図2-75 FXサンプルのイベント処理ネットワーク

「図2-75 FXサンプルのイベント処理ネットワーク」の説明

このシナリオでは、ロード・ジェネレータを使用してシミュレートした3つのデータ・フィードにより、世界各地から定数の値のペアが送信されます。値のペアは通貨を組み合せたもので、たとえばUSDEURは米ドルと欧州ユーロの組合せを表します。値のペアと共に2つの通貨間の為替レートも送信されます。fxMarketAmer、fxMarketAsiaおよびfxMarketEuroの各アダプタはフィードからデータを受信し、受信したデータをイベントに変換して、対応するFilterAmer、FilterAsiaおよびFilterEuroの各プロセッサに渡します。各プロセッサは、初期期限切れチェックを実行し、発生からの経過時間が1秒を超えているイベントがないことを確認します。さらに境界チェックを実行し、2つの通貨間の為替レートが現在の境界の範囲内にあることを確認します。プロセッサは、特定のチャネルから特定の通貨のペアのみを選択します。たとえば、シミュレートされた米国のデータ・フィードからはUSDEURを選択し、USDAUD(オーストラリア・ドル)などの他のすべてのペアを拒否します。

各データ・フィード・プロバイダからのデータがこの初期準備フェーズを通過すると、FindCrossRateという別のプロセッサが、すべてのプロバイダのすべてのイベントを結合し、最大レートと最小レートの中間点を計算して、トレーダが指定したスプレッドを適用します。最後に、プロセッサはビジネス・コードを含むPOJOにレートを転送します。このサンプルでは、POJOは単純にレートをクライアントにパブリッシュします。

Oracle CEPモニターは、直前のステップのイベント待機時間が特定のしきい値を超えていないか(たとえば、30秒という時間内に更新されたレートがないか)、また同じ通貨のペアで2つの連続的なレート間の偏差が大きすぎないかを監視するように構成されています。最後に、通貨の各ペアの直前のレートがOracle CEP httpパブリッシュ/サブスクライブ・サーバーに転送されます。

2.9.1 外国為替取引のサンプルの実行

最適なデモンストレーションの目的のためには、複数のCPUまたは3GHzのデュアル・コアIntelと最低限2GBのRAMを搭載した強力なコンピュータでこのサンプルを実行することをお薦めします。

外国為替取引(FX)アプリケーションはfx_domainドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle CEPのインスタンスを起動します。

外国為替取引のサンプルを実行するには:

1. コマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\domains\fx_domain\defaultserverにあるFXドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

prompt> cd d:\Oracle iddleware\ocep_11.1\samples\domains\fx_domain\defaultserver

2. 2.5項「開発環境の設定」に従って開発環境を設定します。

3. 適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle CEPを起動します。

1. Windowsの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.cmd -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.cmd

2. UNIXの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.sh -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.sh

これで、FXアプリケーションでデータ・フィードからデータを受信する準備ができました。

4. アメリカのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、2.5項「開発環境の設定」の説明に従って環境を設定します。

5. MIDDLEWARE_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

6. fxAmer.propプロパティ・ファイルを使用してロード・ジェネレータを実行します。

1. Windowsの場合:

prompt> runloadgen.cmd fxAmer.prop

2. UNIXの場合:

prompt> runloadgen.sh fxAmer.prop

7. fxAsia.propプロパティ・ファイルを使用してステップ4 - 6を繰り返し、アジアのデータ・フィードをシミュレートします。

1. Windowsの場合:

prompt> runloadgen.cmd fxAsia.prop

2. UNIXの場合:

prompt> runloadgen.sh fxAsia.prop

8. fxEuro.propプロパティ・ファイルを使用してステップ4 - 6を繰り返し、ヨーロッパのデータ・フィードをシミュレートします。

1. Windowsの場合:

prompt> runloadgen.cmd fxEuro.prop

2. UNIXの場合:

prompt> runloadgen.sh fxEuro.prop

サーバーを起動したコマンド・ウィンドウでサーバー・ステータス・メッセージがスクロールされ、3つのロード・ジェネレータが起動した後、サーバーのコマンド・ウィンドウに次のようなメッセージが出力されます(おそらくメッセージは1行で表示されます)。

OutputBean:onEvent() +
<TupleValue>
<EventType>SpreaderOuputEvent</EventType>
<ObjectName>FindCrossRatesRule</ObjectName>
<Timestamp>1843704855846</Timestamp>
<TupleKind>null</TupleKind>
<DoubleAttribute>
<Value>90.08350000074516</Value>
</DoubleAttribute>
<CharAttribute>
<Value>USD</Value>
<Length>3</Length>
</CharAttribute>
<CharAttribute>
<Value>JPY</Value>
<Length>3</Length>
</CharAttribute>
<IsTotalOrderGuarantee>false</IsTotalOrderGuarantee>
</TupleValue>

これらのメッセージは、外国為替取引のサンプルが正しく実行されていることを示しています。出力では、米ドル対日本円および米ドル対英国ポンドのクロス・レートが示されています。

2.9.2 ソース・ディレクトリからビルドおよびデプロイする外国為替取引のサンプル

外国為替取引(FX)サンプルのソース・ディレクトリには、Javaソースと、FXアプリケーションを構成する他の必須リソース(構成XMLファイルなど)が含まれます。build.xml Antファイルには、アプリケーションをビルドしてfx_domainドメインにデプロイするためのターゲットが含まれています(2.9.3項「FXをビルドするAntターゲットの説明」を参照)。

ソース・ディレクトリから外国為替取引のサンプルをビルドおよびデプロイするには:

1. FXのOracle CEPインスタンスがまだ実行されていない場合は、2.9.1項「外国為替取引のサンプルの実行」の手順に従ってサーバーを起動します。
再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

2. 新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\fxにあるFXソース・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPインストール・ディレクトリをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

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

3. 2.5項「開発環境の設定」に従って開発環境を設定します。

4. all Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。

prompt> ant all

5. deploy Antターゲットを実行してアプリケーションJARファイルをOracle CEPにデプロイします。

prompt> ant -Dusername=wlevs -Dpassword=wlevs -Daction=update deploy

注意:

このターゲットは、ドメイン・ディレクトリにある既存のFXアプリケーションJARファイルを上書きします。

6. FXアプリケーションで必要なロード・ジェネレータが実行されていない場合は、2.9.1項「外国為替取引のサンプルの実行」の説明に従って起動します。
サーバー・ステータス・メッセージがスクロールされた後、出力先に次のメッセージが出力されます。

{crossRate=USDJPY, internalPrice=119.09934499999781}, {crossRate=USDGBP, internalPrice=0.5031949999999915}, {crossRate=USDJPY, internalPrice=117.73945624999783}

このメッセージは、FXのサンプルが再デプロイされ、正しく実行されていることを示しています。

2.9.3 FXをビルドするAntターゲットの説明

FXソースの最上位レベル・ディレクトリにあるbuild.xmlファイルには、アプリケーションをビルドおよびデプロイするための次のターゲットが含まれています。

- clean - このターゲットは、現在のディレクトリの下にあるdistおよびoutput作業ディレクトリを削除します。

- all - このターゲットは、アプリケーションをクリーンアップしてコンパイルし、com.bea.wlevs.example.fx_11.1.1.4_0.jarというJARファイルを生成し、生成したJARファイルを現在のディレクトリの下のdistディレクトリに格納します。

- deploy - このターゲットはDeployerユーティリティを使用してJARファイルをOracle CEPにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.9.4 FXのサンプルの実装

外国為替(FX)のサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーションの標準的な作成手順に関する項に従って行われます。

標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。

FXサンプルのすべてのファイルは、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\fxディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middlewareなど)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。

FXのサンプルで使用するファイルは次のとおりです。

- アプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。このXMLファイルをOracle CEPアプリケーションに組み込む必要があります。
サンプルでは、このファイルはcom.oracle.cep.sample.fx.context.xmlという名前で、META-INF/springディレクトリにあります。

詳細は、2.9.5項「FXのEPNアセンブリ・ファイル」を参照してください。

- アプリケーションのプロセッサ・コンポーネントを構成する2つのXMLファイル。
1つ目のXMLファイルは、filterAmer、filterAsia、filterEuroおよびFindCrossRatesの各プロセッサをすべて1つのファイルで構成します。このXMLファイルに含まれるOracle CQLルールは、シミュレートされた特定のマーケット・フィードから特定の通貨ペアを選択し、プリプロセッサで選択されたすべてのイベントを結合し、特定の通貨ペアの内部価格を計算し、さらにクロス・レートを計算します。サンプルでは、このファイルはspreader.xmlという名前で、META-INF/wlevsディレクトリにあります。

2つ目のXMLファイルは、summarizeResultsプロセッサを構成し、FindCrossRatesプロセッサの結果を要約するOracle CQLルールを含みます。サンプルでは、このファイルはSummarizeResults.xmlという名前で、META-INF/wlevsディレクトリにあります。

詳細は、2.9.6項「FXのプロセッサ・コンポーネント構成ファイル」を参照してください。

- PublishSummaryResults httpパブリッシュ/サブスクライブ・アダプタを構成するXMLファイル。サンプルでは、このファイルはPubSubAdapterConfiguration.xmlという名前で、META-INF/wlevsディレクトリにあります。

- アプリケーションのOutputBeanコンポーネント(ビジネス・ロジックを含むPOJO)を実装するJavaファイル。このPOJOは、受信したイベント(onEventメソッドでプログラミングされたもの)を画面に出力します。また、イベント・タイプ・リポジトリにForeignExchangeEventイベント・タイプを登録します。
サンプルでは、このファイルはOutputBean.javaという名前で、src/com/oracle/cep/sample/fxディレクトリにあります。

このPOJOで参照されているOracle CEP APIの詳細は、『Oracle Fusion Middleware Java API Reference for Oracle Complex Event Processing』を参照してください。

- Oracle CEPにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MFファイル。
サンプルでは、MANIFEST.MFファイルがMETA-INFディレクトリにあります。

このファイルの作成方法およびOracle CEPにデプロイするOSGiバンドルの作成方法の詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のアプリケーションのアセンブリとデプロイメントの概要に関する項を参照してください。

FXのサンプルでは、OSGiバンドルのコンパイル、アセンブル、およびデプロイにbuild.xml Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xmlファイルの詳細は、2.9.2項「ソース・ディレクトリからビルドおよびデプロイする外国為替取引のサンプル」を参照してください。

2.9.5 FXのEPNアセンブリ・ファイル

EPNアセンブリ・ファイルの主な目的の1つは、アプリケーションのコンポーネントを宣言してイベント処理ネットワークを定義し、これらすべてのコンポーネントの接続方法、つまりどのコンポーネントが他のどのコンポーネントをリスニングするかを定義することです。Oracle CEPには、ネットワークの宣言に使用するカスタムSpringタグのセットが用意されています。また、EPNアセンブリ・ファイルは、アプリケーションで使用するイベント・タイプとアプリケーションのOracle CQLルールまたはEPLルールを登録するためにも使用します。

EPNアセンブリ・ファイルを通常の方法で使用して、 Springアプリケーション・コンテキストで アプリケーション・コンポーネントBeanを定義します。アプリケーション・コンポーネントBeanは、 Javaクラスで実装される「アダプタ」や 「ビジネス・ロジックを含むPOJO」などです。

詳細については、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』の「スキーマ参照: EPN Assembly spring-wlevs-v11_1_1_6.xsd」

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPスキーマに関する項

例2-5は、FXサンプル・アプリケーションで使用するEPNアセンブリ・ファイルを示しています。太字のエントリの詳細は、サンプルの後にある説明を参照してください。

例2-5 FXのEPNアセンブリ・ファイル

<?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="StockTick">
<wlevs:properties>
<wlevs:property name="lastPrice" type="double"/>
<wlevs:property name="symbol" type="char"/>
</wlevs:properties>
</wlevs:event-type>
<wlevs:event-type type-name="CrossRateEvent">
<wlevs:properties>
<wlevs:property name="price" type="double"/>
<wlevs:property name="fromRate" type="char"/>
<wlevs:property name="toRate" type="char"/>
</wlevs:properties>
</wlevs:event-type>
<wlevs:event-type type-name="SpreaderOuputEvent">
<wlevs:properties type="tuple">
<wlevs:property name="internalPrice" type="double"/>
<wlevs:property name="crossRate1" type="char"/>
<wlevs:property name="crossRate2" type="char"/>
</wlevs:properties>
</wlevs:event-type>
<wlevs:event-type type-name="CrossrateSummaryEvent">
<wlevs:properties>
<wlevs:property name="averageInternalPrice" type="double"/>
<wlevs:property name="crossRatePair" type="char"/>
<wlevs:property name="totalCount" type="int"/>
</wlevs:properties>
</wlevs:event-type>
</wlevs:event-type-repository>

<!-- Assemble EPN (event processing network) -->
<wlevs:adapter id="fxMarketAmer" provider="loadgen">
<wlevs:instance-property name="port" value="9011"/>
<wlevs:listener ref="FilterAmerStream"/>
</wlevs:adapter>

<!-- This processor is simply here to filter the inbound event data
to make it appear more realistic. It would not normally be required
in a real application -->
<wlevs:channel id="FilterAmerStream" event-type="StockTick">
<wlevs:listener ref="FilterAmer"/>
</wlevs:channel>
<wlevs:processor id="FilterAmer" provider="cql">
<wlevs:listener ref="FxQuoteStream"/>
</wlevs:processor>

<wlevs:adapter id="fxMarketAsia" provider="loadgen">
<wlevs:instance-property name="port" value="9012"/>
<wlevs:listener ref="FilterAsiaStream"/>
</wlevs:adapter>

<!-- This processor is simply here to filter the inbound event data
to make it appear more realistic. It would not normally be required
in a real application -->
<wlevs:channel id="FilterAsiaStream" event-type="StockTick">
<wlevs:listener ref="FilterAsia"/>
</wlevs:channel>
<wlevs:processor id="FilterAsia" provider="cql">
<wlevs:listener ref="FxQuoteStream"/>
</wlevs:processor>

<wlevs:adapter id="fxMarketEuro" provider="loadgen">
<wlevs:instance-property name="port" value="9013"/>
<wlevs:listener ref="FilterEuroStream"/>
</wlevs:adapter>

<!-- This processor is simply here to filter the inbound event data
to make it appear more realistic. It would not normally be required
in a real application -->
<wlevs:channel id="FilterEuroStream" event-type="StockTick">
<wlevs:listener ref="FilterEuro"/>
</wlevs:channel>
<wlevs:processor id="FilterEuro" provider="cql">
<wlevs:listener ref="FxQuoteStream"/>
</wlevs:processor>

<!--  this it to allow delivery of specifc values for testing -->
<wlevs:adapter id="csvTestData" provider="csvgen">
<wlevs:instance-property name="port" value="9014"/>
<wlevs:instance-property name="eventTypeName" value="StockTick"/>
<wlevs:instance-property
name="eventPropertyNames"
value="symbol,lastPrice"/>
<wlevs:listener ref="FxQuoteStream"/>
</wlevs:adapter>

<wlevs:channel id="FxQuoteStream" event-type="CrossRateEvent">
<wlevs:listener ref="FindCrossRates"/>
</wlevs:channel>

<wlevs:processor id="FindCrossRates" provider="cql">
<wlevs:listener ref="CrossRateStream"/>
</wlevs:processor>

<wlevs:channel id="CrossRateStream" event-type="SpreaderOuputEvent" advertise="true">
<wlevs:listener ref="summarizeResults"/>
<wlevs:listener>
<bean class="com.oracle.cep.sample.fx.OutputBean" autowire="byName"/>
</wlevs:listener>
</wlevs:channel>

<wlevs:processor id="summarizeResults" provider="cql">
<wlevs:listener ref="SummaryResultsStream"/>
</wlevs:processor>

<wlevs:adapter id="PublishSummaryResults" provider="httppub"></wlevs:adapter>
<wlevs:channel id="SummaryResultsStream"
event-type="CrossrateSummaryEvent">
<wlevs:listener>
<bean class="com.oracle.cep.sample.fx.OutputBean" autowire="byName"/>
</wlevs:listener>

<wlevs:listener ref="PublishSummaryResults"/>

</wlevs:channel>
</beans>

上記の例では:

- wlevs:event-type-repository要素が、アプリケーション全体で使用されるイベント・タイプを登録します。これらのイベントを次に示します。これらのタイプはすべてタプルです。

- StockTick: 入力イベント

- CrossRateEvent: FilterAmer、FilterAsiaおよびFilterEuroの各プロセッサで出力されるイベント・タイプ

- SpreaderOutputEvent: FindCrossRatesプロセッサで出力されるイベント・タイプ

- CrossrateSummaryEvent: summarizeResultsプロセッサで出力されるイベント・タイプ

Oracle CEPは、必要に応じてこれらのイベント・タイプのインスタンスを自動的に作成します。そうすると、アプリケーションのOracle CQLルール、アダプタJavaクラス、およびPOJOでこのデータを参照できます。

『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のイベント・タイプに関する項を参照してください。

- wlevs:adapter、wlevs:processorおよびwlevs:channel要素のセットは、ネットワークの各コンポーネントを宣言することによって、イベント処理ネットワークを設定します。このネットワークは、2つのアダプタ、4つのプロセッサ、および5つのストリームで構成されます(図3-75を参照)。
各コンポーネントにはユニークなIDが指定されます。このIDは、他のコンポーネントがリスナーとソースを宣言するときに参照することができます。

- wlevs:adapter要素はアダプタ・コンポーネントを指定します。例:

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

fxMarketAmer、fxMarketAsiaおよびfxMarketEuroの各アダプタは、主要な入力データ・ソースを提供します。これらのアダプタは各wlevs:adapter要素のprovider="loadgen"属性を使用し、アダプタがデータをOracle CEPロード・ジェネレータ・ユーティリティから取得することを指定します。wlevs:instance-property子要素は、アダプタがリスニングするポート番号を指定します。

csvTestDataアダプタは、テスト・データをアプリケーションにフィードするために使用できるオプション・アダプタです。このアダプタはprovider="csvgen"属性を使用して、アダプタがデータをカンマ区切り値(CSV)ファイルから取得することを指定します。詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のロード・ジェネレータおよびcsvgenアダプタを使用するアプリケーションのテストに関する項を参照してください。

PublishSummaryResultsアダプタは、イベントをOracle CEP httpパブリッシュ/サブスクライブ・サーバーに出力します。

- wlevs:processorは複合イベント・プロセッサを指定します。例:

<wlevs:processor id="FilterAmer" provider="cql">
<wlevs:listener ref="FxQuoteStream"/>
</wlevs:processor>

listeners属性(すべてのコンポーネントの要素に共通)またはwlevs:listener子要素を使用すると、プロセッサをリスニングするコンポーネントを指定できます。このケースでは、FxQuoteStreamというチャネルです。

- wlevs:channel要素は、コンポーネント間のイベント・ストリームを指定します。例:

<wlevs:channel id="FxQuoteStream" event-type="CrossRateEvent">    <wlevs:listener ref="FindCrossRates"/></wlevs:channel>

他のすべてのコンポーネントと同様に、wlevs:listenerおよびwlevs:source子要素を使用して、このコンポーネントに対してリスナーおよびソースとして機能する他のコンポーネントを指定できます。

サンプルではFindCrossRatesプロセッサがFxQuoteStreamチャネルをリスニングします。

例2-6は、コンポーネントの定義をwlevs:listener要素にネストする方法を示しています。

例2-6 コンポーネント定義のネスト

<wlevs:channel id="CrossRateStream" event-type="SpreaderOuputEvent" advertise="true">
<wlevs:listener ref="summarizeResults"/>
<wlevs:listener>
<bean class="com.oracle.cep.sample.fx.OutputBean" autowire="byName"/>
</wlevs:listener>
</wlevs:channel>

例2-6では、<bean>タグを使用して標準Spring Beanとして宣言されているOutputBean POJOは、CrossRateStreamチャネルをリスニングします。

2.9.6 FXのプロセッサ・コンポーネント構成ファイル

FXアプリケーションでは5つのプロセッサが使用されます。3つは3つのデータ・フィードを処理し、1つは結果のイベントを結合し、1つは結果を要約します。

最初の4つのプロセッサはspreader.xmlという1つのXMLファイルで構成されます。詳細は、2.9.6.1項「FXのプロセッサ・コンポーネント構成ファイル: spreader.xml」を参照してください。

5つ目のプロセッサはSummarizeResults.xmlというXMLファイルで構成されます。詳細は、2.9.6.2項「FXのプロセッサ・コンポーネント構成ファイル: SummarizeResults.xml」を参照してください。

これらのXMLファイルには、入力イベントに対して実行されるOracle CEP問合せが含まれます。このサンプルではOracle CQL言語が使用されます。Oracle CEP問合せ言語の詳細およびサンプルは、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』

- 『Oracle Fusion Middleware Oracle Complex Event Processing EPL言語リファレンス』

注意:

Oracle EPLはOracle CQLによって置き換えられます。

2.9.6.1 FXのプロセッサ・コンポーネント構成ファイル: spreader.xml

例2-7に示すように、最初の4つのプロセッサはspreader.xmlという1つのXMLファイルで構成されます。

例2-7 FXのプロセッサ・コンポーネント構成ファイル: spreader.xml

<?xml version="1.0" encoding="UTF-8"?>
<n1:config xsi:schemaLocation="http://www.bea.com/ns/wlevs/config/application wlevs_application_config.xsd"
xmlns:n1="http://www.bea.com/ns/wlevs/config/application"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<processor>
<name>FilterAmer</name>
<rules>
<view id="UsdToEur" schema="lastPrice symbol"><![CDATA[
select lastPrice, symbol from FilterAmerStream [range 1] where symbol="USDEUR"
]]></view>
<view id="UsdToEurPre" schema="price fromRate toRate"><![CDATA[
select avg(lastPrice) as price, "USD"  as fromRate, "EUR" as toRate
from UsdToEur
where lastPrice < 3.0 and lastPrice > 0.25
]]></view>
<query id="AmerFilterCrossRates"><![CDATA[select * from UsdToEurPre]]></query>
</rules>
</processor>
<processor>
<name>FilterAsia</name>
<rules>
<view id="EurToJpy" schema="lastPrice symbol"><![CDATA[
select lastPrice, symbol from FilterAsiaStream [range 1] where symbol="EURJPY"
]]></view>
<view id="EurToJpyPre" schema="price fromRate toRate"><![CDATA[
select avg(lastPrice) as price, "EUR" as fromRate, "JPY" as toRate
from EurToJpy
where lastPrice < 200.0 and lastPrice > 100.0
]]></view>
<query id="AsiaFilterCrossRates"><![CDATA[select * from EurToJpyPre]]></query>
</rules>
</processor>
<processor>
<name>FilterEuro</name>
<rules>
<view id="EurToGbp" schema="lastPrice symbol"><![CDATA[
select lastPrice, symbol from FilterEuroStream [range 1] where symbol="EURGBP"
]]></view>
<view id="EurToGbpPre" schema="price fromRate toRate"><![CDATA[
select avg(lastPrice) as price, "EUR" as fromRate, "GBP" as toRate
from EurToGbp
where lastPrice < 1.5 and lastPrice > 0.5
]]></view>
<query id="EuroFilterCrossRates"><![CDATA[select * from EurToGbpPre]]></query>
</rules>
</processor>

<processor>
<name>FindCrossRates</name>
<rules>
<query id="FindCrossRatesRule"><![CDATA[
select ((a.price * b.price) + 0.05) as internalPrice,
a.fromRate as crossRate1,
b.toRate as crossRate2
from FxQuoteStream [range 1] as a, FxQuoteStream [range 1] as b
where
NOT (a.price IS NULL)
and
NOT (b.price IS NULL)
and
a.toRate = b.fromRate
]]></query>
</rules>
</processor>
</n1:config>

このファイル内のFilterAmer、FilterAsiaおよびFilterEuroの各プロセッサは、すべて本質的には同じであり、データ・フィードに対して異なる項目を照会するため、また異なる境界条件を適用するためにOracle CQL問合せで使用される値だけが異なります。このため、この節では、プロセッサの1つであるFilterAmerプロセッサのみについて説明します。

FilterAmerプロセッサで実行されるOracle CQLルールは次のとおりです。

<processor>
<name>FilterAmer</name>
<rules>
<view id="UsdToEur" schema="lastPrice symbol"><![CDATA[
select lastPrice, symbol from FilterAmerStream [range 1] where symbol="USDEUR"
]]></view>
<view id="UsdToEurPre" schema="price fromRate toRate"><![CDATA[
select avg(lastPrice) as price, "USD" as fromRate, "EUR" as toRate
from UsdToEur
where lastPrice < 3.0 and lastPrice > 0.25
]]></view>
<query id="AmerFilterCrossRates"><![CDATA[select * from UsdToEurPre]]></query>
</rules>
</processor>

この問合せを理解するには、次のように、様々な句を確認する必要があります。

- UsdToEurビューは、StockTickデータ・フィードから、symbol値がUSDEUR(米ドルと欧州ユーロの為替レート)である項目のみを受け入れ、その他すべての項目を拒否する副問合せとして機能します。また、from句では、このOracle CQL問合せを実行する時間ウィンドウを1秒に指定しています。

- UsdToEurPreビューは、UsdToEurビューから選択する副問合せとして機能します。where句では、フィードから読み込む特定の項目のレートが許容範囲内であることが保証されるように、境界条件を指定しています。このサンプルでは、フィードから読み込む特定の項目のlastPriceが$3.00と$0.25の間である必要があります。

- AmerFilterCrossRates問合せは、UsdToEurPreビューのすべてを選択します。問合せの結果のみが、プロセッサをリスニングする下流のチャネルに出力されます。

FindCrossRatesプロセッサで実行されるOracle CQLルールは次のとおりです。

<processor>
<name>FindCrossRates</name>
<rules>
<query id="FindCrossRatesRule"><![CDATA[
select ((a.price * b.price) + 0.05) as internalPrice,
a.fromRate as crossRate1,
b.toRate as crossRate2
from FxQuoteStream [range 1] as a, FxQuoteStream [range 1] as b
where
NOT (a.price IS NULL)
and
NOT (b.price IS NULL)
and
a.toRate = b.fromRate
]]></query>
</rules>
</processor>

この問合せを理解するには、次のように、様々な句を確認する必要があります。

- from句とwhere句では、CrossRateEventオブジェクト(FilterAmer、FilterAsiaおよびFilterEuroの各プロセッサによって選択されたイベントを含む)から、toRateとfromRateの値が同じである2つのイベントを結合します。さらに、from句では、処理時間ウィンドウをここでも1秒と設定しています。

- select句では、特定の通貨の内部価格を計算しています。この価格は、通貨の換算元レートと換算先レートの平均を求め、0.05ドルの手数料を加算して算出します。また、クロス・レートも計算します。クロス・レートは、1つの通貨の、第3国市場の別の通貨に対する価格であると定義されます。

この問合せの結果は、ビジネス・オブジェクトPOJOとsummarizeResultsプロセッサに送られます。

2.9.6.2 FXのプロセッサ・コンポーネント構成ファイル: SummarizeResults.xml

例2-8に示すように、5つ目のプロセッサはSummarizeResults.xmlというXMLファイルで構成されます。

例2-8 FXのプロセッサ・コンポーネント構成ファイル: SummarizeResults.xml

<?xml version="1.0" encoding="UTF-8"?>
<wlevs:config xmlns:wlevs="http://www.bea.com/ns/wlevs/config/application">
<processor>
<name>summarizeResults</name>
<rules>
<query id="Rule"><![CDATA[
select
crossRate1 || crossRate2 as crossRatePair,
count(*) as totalCount,
avg(internalPrice) as averageInternalPrice
from CrossRateStream [RANGE 1 SLIDE 1]
group by crossRate1,crossRate2
having count(*) > 0
]]></query>
</rules>
</processor>
</wlevs:config>

この問合せの結果は、ビジネス・オブジェクトPOJOとPublishSummaryResultsアダプタに送られます。

2.10 シグナル生成のサンプル

シグナル生成のサンプル・アプリケーションは、シミュレートされたマーケット・データを受信し、証券の価格変動が2%を超えたかどうかを検証します。このアプリケーションは、特定の銘柄の連続的な株価を追跡することにより、トレンドの発生も検出します。変動が2%を上回る価格が連続3回を超えた場合に、トレンドと見なします。

図2-76に、シグナル生成サンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。

図2-76 シグナル生成サンプルのイベント処理ネットワーク

「図2-76 シグナル生成サンプルのイベント処理ネットワーク」の説明

このアプリケーションでは、Oracle CEPロード・ジェネレータ・ユーティリティを使用してマーケット・データ・フィードをシミュレートします。このサンプルでは、ロード・ジェネレータは毎秒最大10,000個のメッセージを生成します。サンプルには、照合したイベントとレイテンシを表示するHTMLダッシュボードが含まれています。イベントは、銘柄記号、タイム・スタンプ、および価格で構成されます。

このサンプルは非常に短い待機時間を示し、スループットが高い状況では待機時間のジッタは最小限になります。アプリケーションの実行が開始されると、プロセッサは毎秒平均800個のメッセージを照合します。最小限の構成をしたシステムでアプリケーションを実行した場合、このサンプルは非常に短い平均待機時間(平均30 - 300マイクロ秒)と最小待機時間スパイク(数ミリ秒単位)を示します。

サンプルでは、ロード・ジェネレータで生成されたタイム・スタンプとOracle CEPのタイム・スタンプ間の差分に基づいてレイテンシ値を計算し、表示しています。有効なレイテンシを計算するには、ロード・ジェネレータを実行するコンピュータとOracle CEPを実行するコンピュータの間で、1ミリ秒のような非常に厳密なクロック同期が必要です。このため、ロード・ジェネレータとOracle CEPの両方を1台のマルチCPUコンピュータで実行し、共通のクロックを共有することをお薦めします。

サンプルでは、Oracle CEPイベント・キャッシング機能の使用方法も示されています。具体的には、EPNの単一のプロセッサからイベントBeanとキャッシュの両方にイベントが送信されます。

このサンプルはOracle CQL問合せの使用方法も示します。

2.10.1 シグナル生成のサンプルの実行

最適なデモンストレーションの目的のためには、複数のCPUまたは3GHzのデュアル・コアIntelと最低限2GBのRAMを搭載した強力なコンピュータでこのサンプルを実行することをお薦めします。

signalgeneration_domainドメインには、単一のアプリケーションであるシグナル生成サンプル・アプリケーションが含まれています。シグナル生成アプリケーションを実行するには、ドメインのOracle CEPインスタンスを起動するだけです。

シグナル生成のサンプルを実行するには:

1. コマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\domains\signalgeneration_domain\defaultserverにあるsignalgeneration_domainドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middlewareなど)。

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

2. 2.5項「開発環境の設定」に従って開発環境を設定します。

3. 適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle CEPを起動します。

1. Windowsの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.cmd -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.cmd

2. UNIXの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.sh -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.sh

4. 次のようなコンソール・メッセージが表示されるまで待機します。

<Apr 24, 2009 11:40:37 AM EDT> <Notice> <Server> <BEA-2046000> <Server STARTED>
Throughput (msg per second): 0. Average latency (microseconds): 0
Throughput (msg per second): 0. Average latency (microseconds): 0
Throughput (msg per second): 0. Average latency (microseconds): 0
Throughput (msg per second): 0. Average latency (microseconds): 0
...

これで、シグナル生成アプリケーションでデータ・フィードからデータを受信する準備ができました。

次は、データ・フィードをシミュレートするために、このサンプル用にプログラミングされたロード・ジェネレータを使用します。

5. 新しいコマンド・ウィンドウを開きます。

6. MIDDLEWARE_HOME\ocep_11.1\samples\domains\signalgeneration_domain\defaultserver\utilsディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:Oracle\Middlewareなど)。

7. startDataFeedコマンドを実行します。

1. Windowsの場合:

prompt> startDataFeed.cmd

2. UNIXの場合:

prompt> startDataFeed.sh

8. ブラウザを起動し、次のHTMLページを開いて、サンプルのダッシュボードを起動します。

http://host:9002/signalgeneration/dashboard.html

hostは、Oracle CEPを実行しているコンピュータの名前に置き換えます。ブラウザと同じコンピュータである場合は、localhostとすることができます。

9. ブラウザで、HTMLページの開始をクリックします。
図2-77に示すように、このサンプルに構成されているOracle CQLルールと一致するイベントの表示が開始します。

図2-77 シグナル生成のダッシュボード

「図2-77 シグナル生成のダッシュボード」の説明

2.10.2 ソース・ディレクトリからビルドおよびデプロイするシグナル生成のサンプル

シグナル生成サンプルのソース・ディレクトリには、Javaソースと、シグナル生成アプリケーションを構成する他の必須のリソース(構成XMLファイル、EPNアセンブリ・ファイル、DOJOクライアントJavaScriptライブラリなど)が含まれます。build.xml Antファイルには、アプリケーションをビルドしてsignalgeneration_domainドメインにデプロイするためのターゲットが含まれています(2.10.3項「シグナル生成をビルドするAntターゲットの説明」を参照)。

ソース・ディレクトリからシグナル生成のサンプルをビルドおよびデプロイするには:

1. シグナル生成のOracle CEPインスタンスがまだ実行されていない場合は、2.10.1項「シグナル生成のサンプルの実行」の手順に従ってサーバーを起動します。再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

2. 新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\signalgenerationにあるシグナル生成ソース・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middlewareなど)。

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

3. 2.5項「開発環境の設定」に従って開発環境を設定します。

4. all Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。

prompt> ant all

5. deploy Antターゲットを実行してアプリケーションJARファイルをMIDDLEWARE_HOME\ocep_11.1\samples\domains\signalgeneration_domain\defaultserver\applications\signalgenerationディレクトリにデプロイします。

prompt> ant deploy

注意:

このターゲットは、ドメイン・ディレクトリにある既存のシグナル生成アプリケーションJARファイルを上書きします。

6. シグナル生成アプリケーションで必要なロード・ジェネレータが実行されていない場合は、2.10.1項「シグナル生成のサンプルの実行」の説明に従って起動します。

7. 2.10.1項「シグナル生成のサンプルの実行」の説明に従って、サンプルのダッシュボードを起動します。

2.10.3 シグナル生成をビルドするAntターゲットの説明

シグナル生成サンプル・ソースの最上位レベル・ディレクトリにあるbuild.xmlファイルには、アプリケーションをビルドおよびデプロイするための次のターゲットが含まれています。

- clean - このターゲットは、現在のディレクトリの下にあるdistおよびoutput作業ディレクトリを削除します。

- all - このターゲットは、アプリケーションをクリーンアップしてコンパイルし、com.bea.wlevs.example.signalgen_11.1.1.4_0.jarというJARファイルを生成し、生成したJARファイルを現在のディレクトリの下のdistディレクトリに格納します。

- deploy - このターゲットはDeployerユーティリティを使用してJARファイルをOracle CEPにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.10.4 シグナル生成のサンプルの実装

シグナル生成のサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーションの標準的な作成手順に関する項に従って行われます。

標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。

シグナル生成のすべてのファイルは、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\signalgenerationディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(c:\Oracle\Middlewareなど)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。

シグナル生成のサンプルで使用されるファイルは次のとおりです。

- アプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。
サンプルでは、このファイルはepn_assembly.xmlという名前で、META-INF/springディレクトリにあります。

詳細は、2.10.5項「シグナル生成のEPNアセンブリ・ファイル」を参照してください。

- アプリケーションのプロセッサ・コンポーネントを構成するXMLファイル。このファイルはconfig.xmlという名前で、META-INF/wlevsディレクトリにあります。
config.xmlファイルはprocessor1というOracle CQLプロセッサを構成します。特に、証券の価格変動が2%を超えたかどうか、また価格においてトレンドが発生したかどうかを確認するOracle CQLルールを構成します。

詳細は、2.10.6項「シグナル生成のコンポーネント構成ファイル」を参照してください。

- アプリケーションのSignalgenOutputBeanコンポーネントすなわちビジネス・ロジックを含むPOJOを実装するJavaファイル。このPOJOは、HttpServletおよびEventSinkです。このonEventメソッドは、PercentTickおよびTrendTickイベント・インスタンスを使用して、待機時間を計算し、ダッシュボードの情報を表示します。
サンプルでは、このファイルはSignalgenOutputBean.javaという名前で、src/oracle/cep/example/signalgenディレクトリにあります。

このファイルの詳細な説明と、イベント・シンクのプログラミングの概要については、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のストリーム・ソースおよびストリーム・シンクとリレーション・ソースおよびリレーション・シンクに関する項を参照してください。

- Oracle CEPにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MFファイル。
サンプルでは、MANIFEST.MFファイルがMETA-INFディレクトリにあります。

このファイルの作成方法およびOracle CEPにデプロイするOSGiバンドルの作成方法の詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のアプリケーションのアセンブリとデプロイメントの概要に関する項を参照してください。

- メインのサンプル・ディレクトリにあるdashboard.htmlファイル。このHTMLファイルは、実行中のシグナル生成アプリケーションのイベントと待機時間を表示するサンプル・ダッシュボードです。このHTMLファイルは、http://dojotoolkit.org/のdojoディレクトリにあるDojo JavaScriptライブラリを使用します。

ForeignExchangeBuilderFactoryで参照されているOracle CEP APIの詳細は、『Oracle Fusion Middleware Java API Reference for Oracle Complex Event Processing』を参照してください。

シグナル生成のサンプルでは、OSGiバンドルのコンパイル、アセンブリ、およびデプロイにbuild.xml Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xmlファイルの詳細は、2.10.2項「ソース・ディレクトリからビルドおよびデプロイするシグナル生成のサンプル」を参照してください。

2.10.5 シグナル生成のEPNアセンブリ・ファイル

EPNアセンブリ・ファイルの主な目的の1つは、アプリケーションのコンポーネントを宣言してイベント処理ネットワークを定義し、これらすべてのコンポーネントの接続方法、つまりどのコンポーネントが他のどのコンポーネントをリスニングするかを定義することです。Oracle CEPには、ネットワークの宣言に使用するカスタムSpringタグのセットが用意されています。また、EPNアセンブリ・ファイルは、アプリケーションで使用するイベント・タイプとアプリケーションのOracle CQLルールを登録するためにも使用します。

EPNアセンブリ・ファイルを通常の方法で使用して、 Springアプリケーション・コンテキストで アプリケーション・コンポーネントBeanを定義します。アプリケーション・コンポーネントBeanは、 Javaクラスで実装される「アダプタ」や 「ビジネス・ロジックを含むPOJO」などです。

詳細については、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のスキーマ参照: EPN Assembly spring-wlevs-v11_1_1_6.xsdに関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPスキーマに関する項

例2-9は、シグナル生成サンプル・アプリケーションで使用するEPNアセンブリ・ファイルを示しています。太字のエントリの詳細は、サンプルの後にある説明を参照してください。

例2-9 シグナル生成のEPNアセンブリ・ファイル

<?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"
xmlns:cqlx="http://www.oracle.com/schema/cqlx"
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="TrendTick">
<wlevs:properties>
<wlevs:property name="symbol" type="char"/>
<wlevs:property name="lastPrice" type="double"/>
<wlevs:property name="trendLastPrice" type="bigint"/>
<wlevs:property name="startTimestamp" type="bigint"/>
</wlevs:properties>
</wlevs:event-type>
<wlevs:event-type type-name="PercentTick">
<wlevs:properties>
<wlevs:property name="symbol" type="char"/>
<wlevs:property name="lastPrice" type="double"/>
<wlevs:property name="percentLastPrice" type="double"/>
<wlevs:property name="startTimestamp" type="bigint"/>
</wlevs:properties>
</wlevs:event-type>
<wlevs:event-type type-name="Symbols">
<wlevs:properties>
<wlevs:property name="symbol" type="char" length="10"/>
</wlevs:properties>
</wlevs:event-type>
</wlevs:event-type-repository>

<wlevs:adapter id="loadgenAdapter" provider="loadgen">
<wlevs:instance-property name="port" value="9001"/>
<wlevs:instance-property name="threadContextTimestamp" value="true"/>
</wlevs:adapter>

<!-- definition for cache that holds the symbols -->
<wlevs:caching-system id="signalgenCachingSystem"/>
<wlevs:cache id="symbolsCache" key-properties="symbol" value-type="Symbols">
<wlevs:caching-system ref="signalgenCachingSystem"/>
<wlevs:cache-loader ref="symbolsCacheLoader"/>
</wlevs:cache>

<wlevs:processor id="processor1">
<wlevs:cache-source ref="symbolsCache"/>
</wlevs:processor>

<!-- Streams are just place-holders in this scenario, they just pass-through -->
<wlevs:channel id="StockTickStream" max-threads="0" max-size="0" event-type="OracleStockTick">
<wlevs:listener ref="processor1"/>
<wlevs:source ref="loadgenAdapter"/>
</wlevs:channel>

<!-- advertise for monitoring -->
<wlevs:channel id="TrendStream" max-threads="0" max-size="0" advertise="true" event-type="TrendTick">

<wlevs:listener ref="outputbean"/>
<wlevs:source ref="processor1"/>
</wlevs:channel>

<wlevs:channel id="PercentStream" max-threads="0" max-size="0" advertise="true" event-type="PercentTick">

<wlevs:listener ref="outputbean"/>
<wlevs:source ref="processor1"/>
</wlevs:channel>

<bean id="outputbean" class="oracle.cep.example.signalgen.SignalgenOutputBean">
<property name="timestampProperty" value="startTimestamp"/>
</bean>

<bean id="symbolsCacheLoader" class="oracle.cep.example.signalgen.SymbolsCacheLoader">
<property name="symbolsFileName" value="applications/MySigGen/symbols.txt"/>
<property name="eventTypeName" value="Symbols"/>
</bean>

</beans>

上記の例では:

- wlevs:event-type-repository要素が、アプリケーション全体で使用されるイベント・タイプをタプルとして作成します。シグナル生成アプリケーションでは次のイベントがあります。

- TrendTick: EPNアセンブリ・ファイルで定義されます。

- PercentTick: EPNアセンブリ・ファイルで定義されます。

- Symbols: EPNアセンブリ・ファイルで定義されます。

- wlevs:adapter、wlevs:processor、wlevs:channelおよびwlevs:caching-systemエントリのセットは、ネットワークの各コンポーネントを宣言することによって、イベント・プロセッサ・ネットワークを設定します(図2-76を参照)。
各コンポーネントにはユニークなIDが指定されます。このIDは、他のコンポーネントがリスナーとソースを宣言するときに参照することができます。

- wlevs:adapter要素はアダプタを指定します。例:

<wlevs:adapter id="loadgenAdapter" provider="loadgen">
<wlevs:instance-property name="port" value="9001"/>
<wlevs:instance-property name="threadContextTimestamp" value="true"/>
</wlevs:adapter>

wlevs:adapter要素のprovider="loadgen"属性は、アダプタがデータをOracle CEPロード・ジェネレータ・ユーティリティから取得することを指定します。wlevs:instance-property子要素は、アダプタがリスニングするポート番号を指定します。

- wlevs:processor要素はOracle CQLプロセッサを指定します。例:

<wlevs:processor id="processor1">
<wlevs:cache-source ref="symbolsCache"/>
</wlevs:processor>

すべてのコンポーネント・タグに共通のlistener属性は、プロセッサをリスニングするコンポーネントを指定します。このサンプルでは、リスナーはsymbolsCacheです。

- wlevs:caching-system要素は、パフォーマンスを向上するためにアプリケーションが使用するOracle CEPローカル・イベント・キャッシュを指定します。例:

<wlevs:caching-system id="signalgenCachingSystem"/>
<wlevs:cache id="symbolsCache" key-properties="symbol" value-type="Symbols">
<wlevs:caching-system ref="signalgenCachingSystem"/>
<wlevs:cache-loader ref="symbolsCacheLoader"/>
</wlevs:cache>

キャッシュについての詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPキャッシュの構成に関する項を参照してください。

2.10.6 シグナル生成のコンポーネント構成ファイル

シグナル生成アプリケーションは、例2-10に示すコンポーネント構成ファイルでプロセッサとキャッシュを構成します。

例2-10 シグナル生成のコンポーネント構成ファイル

<?xml version="1.0" encoding="UTF-8"?>
<!-- this is here to test that you ignore this file  -->
<n1:config xsi:schemaLocation="http://www.bea.com/ns/wlevs/config/application wlevs_application_config.xsd"
xmlns:n1="http://www.bea.com/ns/wlevs/config/application"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<processor>
<name>processor1</name>
<rules>
<view id="S" schema="symbol price">
<![CDATA[
RStream(select T.symbol, T.lastPrice from StockTickStream[now] as T, symbolsCache as R where T.symbol = R.symbol)
]]>
</view>
<query id="percent">
<![CDATA[
select symbol, lastPrice, percentLastPrice, startTimestamp
from S MATCH_RECOGNIZE (
PARTITION BY symbol
MEASURES
B.symbol as symbol,
B.price as lastPrice,
100*(B.price - A.price)/A.price as percentLastPrice,
B.ELEMENT_TIME as startTimestamp
ALL MATCHES
PATTERN (A B)
DEFINE
B AS (100*(B.price - A.price)/A.price > 2.0
or    100*(B.price - A.price)/A.price < -2.0
)
) as T
]]>
</query>
<view id="vTrend" schema="symbol lastPrice trendLastPrice">
<![CDATA[
select symbol, lastPrice, trendLastPrice
from S MATCH_RECOGNIZE (
PARTITION BY symbol
MEASURES
Z.symbol as symbol,
Z.price as lastPrice,
count(A.*)-count(B.*) as trendLastPrice
ALL MATCHES
PATTERN (X (A|B|C) (A|B|C) (A|B|C) (A|B|C) )
SUBSET Z = (A, B, C)
DEFINE
A AS (A.price > PREV(A.price)),
B AS (B.price < PREV(B.price)),
C AS (C.price = PREV(C.price))
) as T
]]>
</view>
<query id="trend">
<![CDATA[
select symbol, lastPrice, trendLastPrice, ELEMENT_TIME as startTimestamp from vTrend where trendLastPrice > 2
]]>
</query>
</rules>
</processor>
<channel>
<name>TrendStream</name>
<selector>trend</selector>
</channel>
<channel>
<name>PercentStream</name>
<selector>percent</selector>
</channel>
</n1:config>

アプリケーションに複数のプロセッサ、アダプタ、またはチャネルがある場合は、それらすべてを1つの構成ファイルで宣言することも、コンポーネントごとに個別の構成ファイルを作成することもできます。どちらか管理しやすい方法を選択してください。

構成するコンポーネントごとにname子要素を追加し、参照する特定のコンポーネントを明示的に宣言する必要があります。name要素の値は、EPNアセンブリ・ファイルで宣言したコンポーネントの一意のな識別子に対応している必要があります。

たとえば、プロセッサがEPNアセンブリ・ファイルで次のように宣言されているとします。

<wlevs:processor id="processor1" ...>

対応するXML構成は次のようになります。

<processor>
<name>processor1</name>
...
</processor>

シグナル生成のサンプルでは、processor1という名前の1つのプロセッサと、symbolsCacheという名前の1つのキャッシュに対して、1つの構成ファイルを使用しています。これらの名前はEPNアセンブリ・ファイルでのコンポーネントの宣言に対応しています。

processor要素は、プロセッサ・コンポーネントを構成します。プロセッサ構成の重要な部分は、このプロセッサで実行するOracle Continuous Query Language (Oracle CQL)のルール・セットの宣言です。これらのルールは最終的にアプリケーション・ビジネス・オブジェクトに渡されるイベント・セットを選択します。各ルールは、XMLの<![CDATA[...]]>セクションを使用してquery要素またはrelation要素で宣言されます。すべてのquery要素とrelation要素は単一のrules要素によってグループ化されます。特定のプロセッサ用に必要な数だけルールを定義できます。

シグナル生成アプリケーションのルールは次のとおりです。

<rules>
<view id="S" schema="symbol price">
<![CDATA[
RStream(select T.symbol, T.lastPrice from StockTickStream[now] as T, symbolsCache as R where T.symbol = R.symbol)
]]>
</view>
<query id="percent">
<![CDATA[
select symbol, lastPrice, percentLastPrice, startTimestamp
from S MATCH_RECOGNIZE (
PARTITION BY symbol
MEASURES
B.symbol as symbol,
B.price as lastPrice,
100*(B.price - A.price)/A.price as percentLastPrice,
B.ELEMENT_TIME as startTimestamp
ALL MATCHES
PATTERN (A B)
DEFINE
B AS (100*(B.price - A.price)/A.price > 2.0
or    100*(B.price - A.price)/A.price < -2.0
)
) as T
]]>
</query>
<view id="vTrend" schema="symbol lastPrice trendLastPrice">
<![CDATA[
select symbol, lastPrice, trendLastPrice
from S MATCH_RECOGNIZE (
PARTITION BY symbol
MEASURES
Z.symbol as symbol,
Z.price as lastPrice,
count(A.*)-count(B.*) as trendLastPrice
ALL MATCHES
PATTERN (X (A|B|C) (A|B|C) (A|B|C) (A|B|C) )
SUBSET Z = (A, B, C)
DEFINE
A AS (A.price > PREV(A.price)),
B AS (B.price < PREV(B.price)),
C AS (C.price = PREV(C.price))
) as T
]]>
</view>
<query id="trend">
<![CDATA[
select symbol, lastPrice, trendLastPrice, ELEMENT_TIME as startTimestamp from vTrend where trendLastPrice > 2
]]>
</query>
</rules>

詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』を参照してください。

2.11 イベントの記録と再生のサンプル

記録と再生のサンプルは、1つのコンポーネントを構成してイベントをイベント・ストアに記録し、ネットワークの別のコンポーネントを構成してストアにあるイベントを再生する方法を示します。サンプルは、Oracle CEPで提供されるデフォルトのBerkeleyデータベースを使用してイベントを格納します。サンプルでは、イベント処理ネットワークのノードとしてパブリッシュ用HTTP pub-subアダプタを構成する方法も示します。

図2-78に、イベントの記録と再生のサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。

図2-78 イベントの記録と再生のサンプルのイベント処理ネットワーク

「図2-78 イベントの記録と再生のサンプルのイベント処理ネットワーク」の説明

このアプリケーションのイベント処理ネットワークには次の4つのコンポーネントが含まれています。

- simpleEventSource: 例を示すだけの目的で単純なイベントを生成するアダプタ。図で示したように、このコンポーネントはイベントを記録するよう構成されています。
このアダプタの構成ソースは次のとおりです。

<adapter>
<name>simpleEventSource</name>
<record-parameters>
...
</record-parameters>
</adapter>

- eventStream: simpleEventSourceアダプタとrecplayEventSinkイベントBeanを接続するチャネル。このコンポーネントはイベントを再生するように構成されています。
このチャネルの構成ソースは次のとおりです。

<channel>
<name>eventStream</name>
<playback-parameters>
...
</playback-parameters>
...
</channel>

- recplayEventSink: アダプタで生成されるイベントのシンクとして機能するイベントBean。

- playbackHttpPublisher: recplayEventSinkイベントBeanをリスニングし、Oracle CEP HTTPパブリッシュ/サブスクライブ・サーバーの/playbackchannelというチャネルにパブリッシュするパブリッシュ用HTTPパブリッシュ/サブスクライブ・アダプタ。

2.11.1 イベントの記録/再生のサンプルの実行

recplay_domainドメインには、記録と再生のサンプル・アプリケーションという単一のアプリケーションが含まれています。このアプリケーションを実行するには、次の手順に示すように、最初にドメインのOracle CEPインスタンスを起動します。

この後の手順では、Oracle CEP Visualizerを使用してsimpleEventSourceおよびeventStreamコンポーネントでイベントの記録と再生をそれぞれ開始する方法を示しています。手順の最後では、Oracle CEP Visualizerを使用して、playbackHttpPublisherアダプタによってチャネルにパブリッシュされるイベントのストリームを表示する方法を示しています。

イベントの記録/再生のサンプルを実行するには:

1. コマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\domains\recplay_domain\defaultserverにあるrecplay_domainドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middlewareなど)。

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

2. 2.5項「開発環境の設定」に従って開発環境を設定します。

3. 適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle CEPを起動します。

1. Windowsの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.cmd -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.cmd

2. UNIXの場合:

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgcパラメータを指定して確定的ガベージ・コレクタを有効にします。

prompt> startwlevs.sh -dgc

- Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合

prompt> startwlevs.sh

サーバー・ステータス・メッセージがスクロールされた後、出力先に次のメッセージが出力されます。

SimpleEvent created at: 14:33:40.441

このメッセージは、Oracle CEPサーバーが正しく起動され、simpleEventSourceコンポーネントがイベントを作成していることを示しています。

4. ブラウザで次のURLを起動します。

http://host:port/wlevs

hostは、Oracle CEPが実行中のコンピュータ名を指します。portは、サーバーに構成されているJetty NetIOポートを指します(デフォルト値9002)。

図2-79に示すように「ログオン」画面が表示されます。

図2-79 Oracle CEP Visualizerの「ログオン」画面

「図2-79 Oracle CEP Visualizerの「ログオン」画面」の説明

5. 「ログオン」画面で、「ユーザーID」にwlevs、「パスワード」にwlevsを入力し、「ログイン」をクリックします。
図2-80に示すようにOracle CEP Visualizerダッシュボードが表示されます。

図2-80 Oracle CEP Visualizerダッシュボード

「図2-80 Oracle CEP Visualizerダッシュボード」の説明

Oracle CEP Visualizerのユーザー・インタフェースの詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のOracle CEP Visualizerユーザー・インタフェースの概要に関する項を参照してください。

6. 左側のペインで、WLEventServerDomain→NonClusteredServer→「アプリケーション」→「Recplay」→「ステージ」→simpleEventSourceを選択します。

7. 図2-81に示すように、右側のペインで「記録」タブを選択します。

図2-81 イベントの「記録」タブ

「図2-81 イベントの「記録」タブ」の説明

DataSet Nameフィールドには、例2-11に示すように、simpleEventSourceアダプタ・アプリケーション構成ファイルORACLE-CEP-HOME\ocep_11.1\samples\domains\recplay_domain\defaultserver\applications\recplay\config.xmlのdataset-name要素のrecord-parameters子要素の値が含まれます。

例2-11 recplayアプリケーション構成ファイルconfig.xml: adapter要素

<adapter>
<name>simpleEventSource</name>
<record-parameters>
<dataset-name>recplay_sample</dataset-name>
<event-type-list>
<event-type>SimpleEvent</event-type>
</event-type-list>
<batch-size>1</batch-size>
<batch-time-out>10</batch-time-out>
</record-parameters>
</adapter>

8. 「記録」タブの下の「開始」をクリックします。
図2-82に示すように「アラート」ダイアログが表示されます。

図2-82 記録開始の「アラート」ダイアログ

「図2-82 記録開始の「アラート」ダイアログ」の説明

9. 「OK」をクリックします。
現在のステータス・フィールドに記録中と表示されます。

「OK」をクリックするとすぐに、イベントがsimpleEventSourceコンポーネントから出力され始め、構成済のデータベースに格納されます。

「記録の開始」フィールドと「記録の停止」フィールドを使用すると、いつイベントを記録するかを構成できます。

10. 左側のペインでeventStreamを選択します。

11. 図2-83に示すように、右側のペインで「再生」タブを選択します。

図2-83 イベントの「再生」タブ

「図2-83 イベントの「再生」タブ」の説明

12. タブの下の「開始」をクリックします。
図2-84に示すように「アラート」ダイアログが表示されます。

図2-84 再生開始の「アラート」ダイアログ

「図2-84 再生開始の「アラート」ダイアログ」の説明

13. 「OK」をクリックします。
現在のステータス・フィールドに再生中と表示されます。

「OK」をクリックするとすぐに、simpleEventSourceコンポーネントで記録されたイベントがsimpleStreamコンポーネントに再生されます。

Oracle CEPサーバーを起動したコマンド・ウィンドウに次のメッセージが表示され、元のイベントと再生イベントの両方がEPNをストリームしていることが通知されます。

SimpleEvent created at: 14:33:11.501
Played back: Original time=14:15:23.141 Playback time=14:33:11.657

再生されるイベントが記録される期間や再生速度などの再生パラメータをさらに構成できます。そのためには、適切なフィールドを更新し、パラメータの変更をクリックします。再生パラメータを変更した後、再生を再開する必要があります。

14. playbackHttpPublisher アダプタがチャネルにパブリッシュしているイベントを表示するには、次のステップを実行します:

1. 上のペインでViewstreamを選択します。
図2-85に示すようにViewstreamウィンドウが表示されます。

図2-85 ストリーム・ビジュアライザ

「図2-85 ストリーム・ビジュアライザ」の説明

2. 右側のペインで「クライアントの初期化」をクリックします。

3. 「チャネルのサブスクライブ」テキスト・ボックスに/playbackchannelと入力します。

4. 「サブスクライブ」をクリックします。

「受信メッセージ」テキスト・ボックスに、再生されたイベントの詳細が表示されます。再生されたイベントは、イベントの作成時刻と再生時刻を示します。

2.11.2 ソース・ディレクトリからビルドおよびデプロイするイベントの記録/再生のサンプル

記録と再生のサンプルのソース・ディレクトリには、Javaソースと、アプリケーションを構成する他の必須リソース(構成XMLファイル、EPNアセンブリ・ファイルなど)が含まれます。build.xml Antファイルには、アプリケーションをビルドしてsignalgeneration_domainドメインにデプロイするためのターゲットが含まれています(2.11.3項「記録と再生をビルドするAntターゲットの説明」を参照)。

ソース・ディレクトリからイベントの記録/再生のサンプルをビルドおよびデプロイするには:

1. 記録/再生のOracle CEPインスタンスがまだ実行されていない場合は、2.11.1項「イベントの記録/再生のサンプルの実行」の手順に従ってサーバーを起動します。再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

2. 新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\recplayにある記録/再生ディレクトリに移動します。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middlewareなど)。

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

3. 2.5項「開発環境の設定」に従って開発環境を設定します。

4. all Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。

prompt> ant all

5. deploy Antターゲットを実行してアプリケーションJARファイルをMIDDLEWARE_HOME\ocep_11.1\samples\domains\recplay_domain\defaultserver\applications\recplayディレクトリにデプロイします。

prompt> ant -Dusername=wlevs -Dpassword=wlevs -Daction=update deploy

注意:

このターゲットは、ドメイン・ディレクトリにある既存のイベントの記録/再生アプリケーションのJARファイルを上書きします。

アプリケーション再デプロイ・メッセージの後、約1秒ごとに次のメッセージが出力先に出力されます。

SimpleEvent created at: 14:33:40.441

このメッセージは、記録と再生のサンプルが再デプロイされ、正しく実行されていることを示します。

6. 2.11.1項「イベントの記録/再生のサンプルの実行」の手順(4以降)に従ってOracle CEP Visualizerを起動し、イベントの記録と再生を開始します。

2.11.3 記録と再生のサンプルをビルドするAntターゲットの説明

記録/再生のソースの最上位レベル・ディレクトリにあるbuild.xmlファイルには、アプリケーションをビルドおよびデプロイするための次のターゲットが含まれています。

- clean - このターゲットは、現在のディレクトリの下にあるdistおよびoutput作業ディレクトリを削除します。

- all - このターゲットは、アプリケーションをクリーンアップしてコンパイルし、com.bea.wlevs.example.recplay_11.1.1.4_0.jarというJARファイルを生成し、生成したJARファイルを現在のディレクトリ下のdistディレクトリに格納します。

- deploy - このターゲットはDeployerユーティリティを使用してJARファイルをOracle CEPにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.11.4 記録と再生のサンプルの実装

シグナル生成のサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーションの標準的な作成手順に関する項に従って行われます。

標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。

サンプルのすべてのファイルは、MIDDLEWARE_HOME\ocep_11.1\samples\source\applications\recplayディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOMEはOracle CEPをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(c:\Oracle\Middlewareなど)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。

記録と再生のサンプルで使用するファイルは次のとおりです。

- 図2-78に示すアプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。
サンプルでは、このファイルはcom.bea.wlevs.example.recplay-context.xmlという名前で、META-INF/springディレクトリにあります。

- simpleEventSourceアダプタのJavaソース・ファイル。
サンプルでは、このファイルはSimpleEventSource.javaという名前で、src/com/bea/wlevs/adapter/example/recplayディレクトリにあります。

このファイルの詳細な説明と、アダプタのJavaファイルの一般的なプログラミング方法については、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のカスタム・アダプタとイベントBeanの作成に関する項を参照してください。

- PlayedBackEventおよびSimpleEventイベント・タイプを記述するJavaソース・ファイル。SimpleEventイベント・タイプは、最初にアダプタによって生成されたイベントですが、PlayedBackEventイベント・タイプは、記録された後に再生されるイベントに対して使用します。PlayedBackEventsは、SimpleEventとほぼ同じですが、イベントが記録された時刻を示す追加フィールドがあります。
サンプルでは、2つのイベントはSimpleEvent.javaおよびPlayedBackEvent.javaという名前で、src/com/bea/wlevs/event/example/recplayディレクトリにあります。

このファイルの詳細な説明と、イベント・タイプのプログラミングの概要については、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のイベント・タイプの作成に関する項を参照してください。

- アプリケーションのrecplayEventSinkイベントBeanを実装するJavaファイルは、simpleEventSourceアダプタからリアル・タイム・イベントと再生イベントの両方を受け取るイベント・シンクです。
サンプルでは、このファイルはRecplayEventSink.javaという名前で、src/com/bea/wlevs/example/recplayディレクトリにあります。

このファイルの詳細な説明と、アダプタのJavaファイルの一般的なプログラミング方法については、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のカスタム・アダプタとイベントBeanの作成に関する項を参照してください。

- simpleEventSourceアダプタとeventStreamチャネル・コンポーネントを構成するXMLファイル。コンポーネントを指定する<record-parameters>要素を含むアダプタは、イベントをイベント・ストアに記録します。同様に、チャネルには再生イベントを受け取るように指定する<playback-parameters>要素が含まれます。
サンプルでは、このファイルはconfig.xmlという名前で、META-INF/wlevsディレクトリにあります。

- Oracle CEPにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MFファイル。
サンプルでは、MANIFEST.MFファイルがMETA-INFディレクトリにあります。

このファイルの作成方法およびOracle CEPにデプロイするOSGiバンドルの作成方法の詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のアプリケーションのアセンブリとデプロイメントの概要に関する項を参照してください。

記録/再生のサンプルでは、OSGiバンドルのコンパイル、アセンブリ、およびデプロイにbuild.xml Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xmlファイルの詳細は、2.11.2項「ソース・ディレクトリからビルドおよびデプロイするイベントの記録/再生のサンプル」を参照してください。

3 Oracle CEPのインストール

この章では、Eclipse IDEで使用する開発ツールも含めて、Oracle Complex Event Processing (Oracle CEP)をインストールおよびアップグレードする手順について説明します。

- 3.1項「インストールの概要」

- 3.2項「グラフィカル・モードでのOracle CEPのインストール」

- 3.3項「コンソール・モードでのOracle CEPのインストール」

- 3.4項「サイレント・モードでのOracle CEPのインストール」

- 3.5項「Oracle CEPパッチのインストール」

- 3.7項「Oracle CEP IDE for Eclipseのインストール」

- 3.6項「インストール後の手順」

- 3.8項「Oracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレード」

3.1 インストールの概要

Oracle CEP 11gリリース1 (11.1.1.6.2)のインストール手順:

1. ご使用のプラットフォームに対応するOracle CEPインストーラをダウンロードします。
1.6項「サポート対象のプラットフォーム」を参照してください。

2. 使用するJVMを選択します。
3.1.2項「JVMを選択する」を参照してください。

3. 製品環境にインストールするか開発環境にインストールするかを決定します。
3.1.3項「デフォルトのOracle CEPドメインocep_domainとサンプル」

4. Oracle Fusion Middlewareのディレクトリ構造と概念を理解します。
3.1.4項「Oracle Fusion Middlewareのディレクトリ構造と概念」

5. インストール・モードを選択してOracle CEPをインストールします。
3.1.5項「インストール・モード」を参照してください。

6. 必要に応じてOracle CEPのパッチをインストールします。
3.5項「Oracle CEPパッチのインストール」を参照してください。

7. 必要に応じてインストール後の作業を実行します。
3.6項「インストール後の手順」を参照してください。

8. Oracle CEPおよびOracle CEPアプリケーションを現在のリリースにアップグレードする必要があるかどうかを決定します。
3.8項「Oracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレード」を参照してください。

9. Javaベースのビルド・ツールApache Antをインストールします。
http://ant.apache.org/のApache Antプロジェクトを参照してください。

3.1.1 インストール・プログラムを開始する前に

インストール・プログラムを開始する前に次の情報を確認します。

- Generic PackageインストーラまたはLinux 64ビット・インストーラを使用してOracle CEPをUNIXまたはLinuxシステムにインストールする場合は、インストールの前にシステム上でumaskを027に設定しておくことをお薦めします。これによって確実に、WebLogic Serverファイル権限がインストール中に設定されます。以下のコマンドを使用します。
umask 027

このコマンドは、Oracle CEPインストーラを実行する予定の同じ端末のウィンドウから実行する必要があります。

3.1.2 JVMを選択する

Oracle CEPは、次のJava仮想マシン(JVM)をサポートします。

- 3.1.2.1項「Oracle JRockit Real Time」

- 3.1.2.2項「Sun JVM」

- 3.1.2.3項「その他のプラットフォーム固有JVM」

3.1.2.1 Oracle JRockit Real Time

デフォルトでは、Oracle CEPには独自のバージョンのJRockit (MIDDLEWARE_HOME/jrockit_JAVA-VERSION_RJROCKIT-VERSION)が含まれますが、確定的ガベージ・コレクタは含まれません。

注意:

Sun JVM用のOracle CEPインストーラにはJRockitバージョンは含まれません。

Oracle CEPは、Oracle JRockit Real Timeの特定の機能(特にJRockitの確定的ガベージ・コレクタ)にアクセスできると、パフォーマンスが最適になります。

低レイテンシが要求されるアプリケーションでは、オプションとしてOracle JRockit Real Timeをインストールします。

注意:

Javaバージョン5.0または6.0用のOracle JRockit Real Timeをインストールしてください。Javaバージョン1.4.2用のOracle JRockit Real Timeは、このバージョンのOracle CEPと互換性がありません。

Oracle JRockit Real Timeの詳細は、http://www.oracle.com/technology/products/jrockit/jrrt/index.htmlを参照してください。

3.1.2.2 Sun JVM

Solaris SPARCでは、Sun JVMがデフォルトのJVMで、Solaris SPARCのインストーラに含まれています。Solaris以外のプラットフォームでSun JVM (JRockitのかわりに)を使用する場合は、Oracle Java SEダウンロード・サイトからJVMをダウンロードします。

詳細については、次を参照してください:

- 1.6項「サポート対象のプラットフォーム」

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

3.1.2.3 その他のプラットフォーム固有JVM

他のプラットフォーム(HPまたはIBM/AIXなど)の場合、プラットフォーム固有の適切なJVMをインストールしておいてください。

詳細については、次を参照してください:

- 1.6項「サポート対象のプラットフォーム」

- 3.6.1項「IBM JDKのためのOracle CEPの構成」

3.1.3 デフォルトのOracle CEPドメインocep_domainとサンプル

「標準」インストールを選択した場合は、デフォルトのocep_domainドメイン(デフォルトのパスワード)および製品サンプルはインストールに含まれません。

デフォルトのocep_domainとサンプルをインストールする(推奨)には、「カスタム」オプションを選択します。

「標準」インストールは製品環境のインストールに、「「カスタム」」インストールは開発環境のインストールに適しています。

3.1.4 Oracle Fusion Middlewareのディレクトリ構造と概念

Oracle CEPをインストールするときは、次のシナリオを考慮します。

- 3.1.4.1項「Oracle CEP固有のミドルウェア・ホーム」

- 3.1.4.2項「既存のOracle Fusion Middlewareホーム」

詳細は、『Oracle Fusion Middlewareインストレーション・プランニング・ガイド』のOracle Fusion Middlewareのディレクトリ構造と概念に関する項を参照してください。

3.1.4.1 Oracle CEP固有のミドルウェア・ホーム

このシナリオでは、図3-1に示すように、ミドルウェア・ホームのディレクトリにOracle CEPをスタンドアロン構成でインストールします。

図3-1 Oracle CEP固有のミドルウェア・ホーム

「図3-1 Oracle CEP固有のミドルウェア・ホーム」の説明

表3-1は、このシナリオにおけるOracle CEPで使用できる各種のホーム・ディレクトリを示します。

表3-1 ホーム・ディレクトリとOracle CEP固有のミドルウェア・ホーム

ホーム・ディレクトリのタイプ

ホーム・ディレクトリ

ミドルウェア・ホーム

Oracle CEPのインストール時に選択したディレクトリ

WebLogic Serverホーム

なし

Oracle製品ホーム脚注 1

ocep_11.1

Oracle共通ホーム

なし

ドメイン

MIDDLEWARE_HOME/user_projects/domains/ocep_domain

脚注 1 単にOracleホームとも呼ばれます。

3.1.4.2 既存のOracle Fusion Middlewareホーム

このシナリオでは、図3-2に示すように、Oracle CEPを既存のOracle Fusion Middlewareホームにインストールします。

このシナリオでは、図3-2に示すように、Oracle CEPはそれ自身のOracleホームにインストールしますが、Oracle CEPドメインは既存のORACLE_FUSION_MIDDLEWARE_HOME/user_projects/domainsディレクトリに作成します。

図3-2 既存のOracle Fusion MiddlewareホームのOracle CEP

「図3-2 既存のOracle Fusion MiddlewareホームのOracle CEP」の説明

このサンプルのトポロジでは、同じミドルウェア・ホームにインストールされている2つのOracle製品があります。

- Oracle CEP

- Oracle SOA Suite

表3-2は、このシナリオにおけるOracle CEPで使用できる各種のホーム・ディレクトリを示します。

表3-2 ホーム・ディレクトリと既存のミドルウェア・ホーム

ホーム・ディレクトリのタイプ

ホーム・ディレクトリ

ミドルウェア・ホーム

Oracle Fusion Middlewareのインストール時に選択したディレクトリ

WebLogic Serverホーム

Oracle Fusion Middlewareのインストーラによって決定されるディレクトリ

Oracle製品ホーム脚注 1

ocep_11.1

Oracle共通ホーム

Oracle Fusion Middlewareのインストーラによって決定されるディレクトリ

ドメイン

MIDDLEWARE_HOME/user_projects/domains/ocep_domain

脚注 1 単にOracleホームとも呼ばれます。

3.1.5 インストール・モード

Oracle CEPインストーラは次のモードで使用します。

- 3.1.5.1項「グラフィカル・モード」

- 3.1.5.2項「コンソール・モード」

- 3.1.5.3項「サイレント・モード」

3.1.5.1 グラフィカル・モード

グラフィカル・モード・インストールは、対話型のGUIを使用してソフトウェアをインストールする方法です。WindowsシステムとUNIXシステムの両方で実行できます。3.2項「グラフィカル・モードでのOracle CEPのインストール」を参照してください。

注意:

グラフィカル・モードのインストールを実行するには、ソフトウェアをインストールするマシンに付属のコンソールで、JavaベースのGUIがサポートされている必要があります。Windowsシステムでは、すべてのコンソールでJavaベースのGUIがサポートされますが、UNIXシステムでは、一部のコンソールでJavaベースのGUIがサポートされません。グラフィカル表示がサポートされていないシステムでは、グラフィカル・モードでインストール・プログラムを起動しようとすると、自動的にコンソール・モード・インストールが開始されます。

3.1.5.2 コンソール・モード

コンソール・モード・インストールは、対話的なテキスト・ベースの表示で、コマンド・ラインからソフトウェアをインストールする方法です。WindowsシステムおよびUNIXシステムのどちらでも使用できます。3.3項「コンソール・モードでのOracle CEPのインストール」を参照してください。

3.1.5.3 サイレント・モード

サイレント・モード・インストールでは、非対話的な方法でソフトウェアをインストールします。インストール・オプションを選択するには、XMLプロパティ・ファイルを使用する必要があります。サイレント・モード・インストールには2とおりの方法があります。つまり、スクリプトの一部として、またはコマンド・ラインから実行できます。サイレント・モード・インストールは、インストールの構成を一度だけ設定し、以降はその構成を使用して多くのマシンにインストールを複製する方法です。3.4項「サイレント・モードでのOracle CEPのインストール」を参照してください。

3.2 グラフィカル・モードでのOracle CEPのインストール

この節では、Oracle CEPインストーラのグラフィカル・モードでインストールする方法を説明します。

詳細は、3.1項「インストールの概要」を参照してください。

Oracle CEPをグラフィカル・モードでインストールするには:

1. Oracle CEPをインストールするWindowsまたはUNIXのコンピュータにログインします。
必ず、Oracle CEPインストールの主な管理者となるユーザーとしてコンピュータにログインしてください。

2. Oracle CEPをインストールするプラットフォームの製品配布ファイルをダウンロードします。

3. 次の表からプラットフォームに適したコマンドを使用して、グラフィカル・モードでインストール・プログラムを起動します。

プラットフォーム

手順

Windows

Windowsエクスプローラを使用し、ダウンロード・ディレクトリにある適切なインストール・プログラムをダブルクリックします。

LinuxまたはSolaris

コマンド・ウィンドウを開き、ダウンロード・ディレクトリに移動して、次のコマンドを入力します。

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

これらのコマンドで、filenameはプラットフォーム固有のインストール・プログラムの名前です(詳細は、http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.htmlを参照)。

インストール・ログを作成する場合は、-log=full_path_to_log_fileオプションを使用します。例:

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

インストール・プログラムのロードが完了すると、標準の「Welcome」ウィンドウが表示されます。

4. 「次へ」をクリックします。

5. ミドルウェア・ホーム・ディレクトリの選択ウィンドウで、既存のOracleミドルウェア・ホーム・ディレクトリを指定するか、新しいディレクトリを作成します。

1. 既存のOracleミドルウェア・ホーム・ディレクトリにインストールするには、次のようにします。

- 「既存のミドルウェア・ホームを使用する」を選択します。

- 右側のリストから、既存のOracleミドルウェア・ホーム・ディレクトリを選択します。

2. 新規のOracleミドルウェア・ホーム・ディレクトリにインストールするには、次のようにします。

- 「新しいミドルウェア・ホームを作成する」を選択します。

- 「参照」ボタンをクリックして、コンピュータを参照して既存のディレクトリを選択するか、「リセット」をクリックして、ディレクトリをデフォルトのC:\Oracle\Middlewareにリセットします。

- 「開く」をクリックします。

Oracleミドルウェア・ホーム・ディレクトリは、c:\oracle_cepなど、Oracle CEPのメイン・インストール・ディレクトリです。Oracleミドルウェア・ホーム・ディレクトリは、開発環境や製品環境ごとの適性に応じて、コンピュータ内に1つまたは複数存在できます。

詳細は、3.1.4項「Oracle Fusion Middlewareのディレクトリ構造と概念」を参照してください。

6. 「次へ」をクリックします。

7. 「インストール・タイプの選択」ウィンドウで、次のいずれかのオプションを選択できます。

1. サンプル以外のすべてのOracle CEPコンポーネントをインストールし、Oracle CEPに付属のOracle JRockit JVMを使用するには:

- 「標準」を選択します。

- 「次へ」をクリックします。

- ステップ10に進みます。

インストーラ・プログラムは、Oracleミドルウェア・ホーム・ディレクトリに、今回のOracle CEPリリースに必要なJRockitのバージョンが存在するかチェックします。

- 必要なJRockitインストールが見つかると、新しいJRockitはインストールされません。

- 適切なJRockitインストールが見つからない場合、インストーラに含まれるバージョンがOracleミドルウェア・ホームのディレクトリにインストールされます。

2. デフォルトのocep_domainドメイン(デフォルトのパスワード)およびサンプルを含め、すべてのOracle CEPコンポーネントをインストールし、すでにインストール済のSunまたはプラットフォーム独自のJVMを選択するには、次のようにします。

- 「カスタム」を選択します。

- 「製品とコンポーネントの選択」ウィンドウで、インストールするコンポーネント(製品サンプルなど)をチェックします。

- 「次へ」をクリックします。

注意:

デフォルトでは、完全インストールにデフォルトのocep_domainドメイン(デフォルトのパスワード)および製品サンプルは含まれません。サンプルをインストールする(推奨)には、「カスタム」オプションを選択します。

Sun JVMまたはプラットフォーム固有JVMを使用する場合は、「カスタム」オプションを選択する必要があります。

インストーラ・プログラムでは、使用するJDKを選択し、Oracle CEP付属のOracle JRockit JVMをインストールするかどうかを決定できます。

8. 「JDKの選択」ウィンドウで、Oracle CEPサーバーのためのJDKを選択します。

「参照」ボタンを使用して、以前にインストールしたSunまたはプラットフォーム固有JDKを選択します。

Oracle CEP付属のOracle JRockit JVMをインストーラでインストールしない場合は、この項目のチェックを外します。

9. 「次へ」をクリックします。

10. 製品インストール・ディレクトリの選択ウィンドウで、Oracle CEPのOracle製品ホーム・ディレクトリのデフォルトの名前(ocep_11.1)を変更できます。

このディレクトリは任意の名前に変更できますが、わかりやすさと標準化のために、デフォルトの名前を使用することをお薦めします。たとえば、このドキュメントでは、Oracle製品ホーム・ディレクトリがocep_11.1であることを前提としています。

詳細は、3.1.4項「Oracle Fusion Middlewareのディレクトリ構造と概念」を参照してください。

11. 「次へ」をクリックします。

12. Windowsにインストールする場合、管理者権限を持つユーザーとしてログインすると、「Choose Shortcut Location」ウィンドウが表示され、スタート・メニュー・フォルダを表示する場所を選択できます。次の表に、選択可能なオプションを示します。

次を選択した場合...

次のことが起こります...

すべてのユーザー

推奨。マシンに登録されているすべてのユーザーが、インストールしたソフトウェアにアクセスできます。このオプションを選択すると、管理者権限を持たないユーザーがこのインストールで構成ウィザードを使用してドメインを作成しても、「スタート」メニューにそのドメインのショートカットは作成されません。この場合、ユーザーは必要に応じてローカルのスタート・メニュー・フォルダに手動でショートカットを作成できます。

ローカル・ユーザー

このマシンに登録されている他のユーザーは、このインストールの「スタート」メニューのエントリにアクセスできません。

管理者権限を持たないユーザーとしてログインした場合、「スタート」メニューのエントリがユーザーのローカルのスタート・メニュー・フォルダに作成されます。

13. 「次へ」をクリックします。

14. 「インストールの概要」ウィンドウが表示され、インストールしようとしている製品およびコンポーネントとおおよそのサイズ(MB)が表示されます。このウィンドウではインストール内容を確認するだけです。コンポーネントがインストールされるように変更するには、「前へ」ボタンを使用して適切なウィンドウに戻ります。

15. 「次へ」をクリックします。
インストーラ・プログラムにより、Oracle CEPがインストールされます。製品が正常にインストールされたことを示す「Installation Complete」ウィンドウが表示されます。

16. 「完了」をクリックしてプログラムを終了します。

17. 3.6項「インストール後の手順」で、インストール後の手順を確認してください。

3.3 コンソール・モードでのOracle CEPのインストール

この節では、Oracle CEPインストーラのコンソール・モードでインストールする方法を説明します。

コンソール・モード・インストールは、対話的なテキスト・ベースの表示で、コマンド・ラインを使用してソフトウェアをインストールする方法です。WindowsおよびUNIXシステムの両方で使用できます。

コンソール・モードでインストールする場合、各セクションでのプロンプトに応答して選択肢の番号を入力するか、[Enter]を押してデフォルトを受け入れます。インストール・プロセスを終了するには、プロンプトでexit(または省略形のx)と入力します。選択内容を確認または変更する場合は、プロンプトでprevious(または省略形のp)と入力します。次のウィンドウに進むには、next(または省略形のn)と入力します。

注意:

次の手順では、Windowsの規則(パス名のバックスラッシュなど)を使用しています(たとえばC:\oracle_cep\ocep_11.1)。UNIXシステムでパス名を入力する場合は、UNIXの規則を使用します。たとえば、/oracle_cep/ocep_11.1のようにパス名にフォワード・スラッシュを使用します。

詳細は、3.1項「インストールの概要」を参照してください。

Oracle CEPをグラフィカル・モードでインストールするには:

1. Oracle CEPをインストールするWindowsまたはLinuxのコンピュータにログインします。
必ず、Oracle CEPインストールの主な管理者となるユーザーとしてコンピュータにログインしてください。

2. Oracle CEPをインストールするプラットフォームの製品配布ファイルをダウンロードします。

3. 使用するプラットフォームに適した次の表のコマンドを使用して、コンソール・モードでインストール・プログラムを起動します。

プラットフォーム

手順

Windows

コマンド・ウィンドウを開き、ダウンロード・ディレクトリに移動して、次のコマンドを入力します。

prompt> filename -mode=console

これらのコマンドで、filenameはプラットフォーム固有のインストール・プログラムの名前です(詳細は、http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.htmlを参照)。

インストール・ログを作成する場合は、-log=full_path_to_log_fileオプションを使用します。例:

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

Linux

コマンド・ウィンドウを開き、ダウンロード・ディレクトリに移動して、次のコマンドを入力します。

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

これらのコマンドで、filenameはプラットフォーム固有のインストール・プログラムの名前です(詳細は、http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.htmlを参照)。

インストール・ログを作成する場合は、-log=full_path_to_log_fileオプションを使用します。例:

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

4. ウェルカム・プロンプトで、「next」(短縮して「n」)と入力するか、または[Enter]を押してインストール・プロセスを続行します。

5. ミドルウェア・ホーム・ディレクトリの選択ウィンドウで、既存のOracleミドルウェア・ホーム・ディレクトリを指定するか、新しいディレクトリを作成します。

1. 既存のOracleミドルウェア・ホーム・ディレクトリにインストールするには、次のようにします。

- 既存のOracleミドルウェア・ホームのディレクトリの番号を入力します。

2. 新規のOracleミドルウェア・ホーム・ディレクトリにインストールするには、次のようにします。

- Oracleミドルウェア・ホームのディレクトリを新規に作成するには、1を入力します。

- インストール・プログラムによって、新規にOracleミドルウェア・ホームを作成するために必要な手順が示されます。
C:\oracle_cep2のように、Oracleミドルウェア・ホームのディレクトリをフル・パスで正確に入力します。

注意:

パスの終わりにはファイル・セパレータ文字は付けません。つまり、C:\mydir\ではなく、C:\mydirと入力します。

存在しないディレクトリを指定した場合は、そのディレクトリが作成されます。

Oracleミドルウェア・ホーム・ディレクトリは、c:\oracle_cepなど、Oracle CEPのメイン・インストール・ディレクトリです。Oracleミドルウェア・ホーム・ディレクトリは、開発環境や製品環境ごとの適性に応じて、コンピュータ内に1つまたは複数存在できます。

詳細は、3.1.4項「Oracle Fusion Middlewareのディレクトリ構造と概念」を参照してください。

6. Oracleミドルウェア・ホームのディレクトリの選択内容を確認し、next(またはn)を入力します。

7. 「インストール・タイプの選択」ウィンドウで、次のいずれかのオプションを選択できます。

1. サンプル以外のすべてのOracle CEPコンポーネントをインストールし、Oracle CEPに付属のOracle JRockit JVMを使用するには:

- 1を入力して、標準インストールを選択します。

- ステップ9に進みます。

インストーラ・プログラムは、Oracleミドルウェア・ホーム・ディレクトリに、今回のOracle CEPリリースに必要なJRockitのバージョンが存在するかチェックします。

- 必要なJRockitインストールが見つかると、新しいJRockitはインストールされません。

- 適切なJRockitインストールが見つからない場合、インストーラに含まれるバージョンがOracleミドルウェア・ホームのディレクトリにインストールされます。

2. デフォルトのocep_domainドメイン(デフォルトのパスワード)およびサンプルを含め、すべてのOracle CEPコンポーネントをインストールし、すでにインストール済のSunまたはプラットフォーム独自のJVMを選択するには、次のようにします。

- 2を入力して、カスタム・インストールを選択します。

- インストールするコンポーネントの選択ウィンドウで、カッコ内の番号を入力して、インストールするコンポーネント(サンプルなど)を切り替えます。リストの選択内容を切り替えるには、番号を入力します。オプションの横にチェック・マークが表示されているとき、そのオプションが選択されています。オプションを選択解除するには、もう一度その番号を入力するとチェック・マークが消えます。

- コンポーネントを選択したら、next(またはn)と入力します。

注意:

デフォルトでは、完全インストールにデフォルトのocep_domainドメイン(デフォルトのパスワード)および製品サンプルは含まれません。サンプルをインストールする(推奨)には、「カスタム」オプションを選択します。

Sun JVMまたはプラットフォーム固有JVMを使用する場合は、「カスタム」オプションを選択する必要があります。

インストーラ・プログラムでは、使用するJDKを選択し、Oracle CEP付属のOracle JRockit JVMをインストールするかどうかを決定できます。

8. 「JDKの選択」ウィンドウで、Oracle CEPサーバーのためのJDKを選択します。

- ローカルJDKを追加するには、「ローカルJdkを追加」オプション(1)を選択します。
インストール・プログラムによって、ローカルJDKを追加するために必要な手順が示されます。

JDKディレクトリのフル・パスを入力してください。例:

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

さらにJDKを追加するには、再び1を選択します。

- 「JDKの選択」ウィンドウで、カッコ内の番号を入力して、必要なJDKを切り替えます。リストの選択内容を切り替えるには、番号を入力します。オプションの横にチェック・マークが表示されているとき、そのオプションが選択されています。オプションを選択解除するには、もう一度その番号を入力するとチェック・マークが消えます。
Oracle CEP付属のOracle JRockit JVMをインストーラでインストールしない場合は、この項目のチェックを外します。

- ローカルJDKを選択したら、next(またはn)と入力します。

9. 製品インストール・ディレクトリの選択ウィンドウで、Oracle CEPのOracle製品ホーム・ディレクトリのデフォルトの名前(ocep_11.1)を変更できます。

このディレクトリは任意の名前に変更できますが、わかりやすさと標準化のために、デフォルトの名前を使用することをお薦めします。たとえば、このドキュメントでは、Oracle製品ホーム・ディレクトリがocep_11.1であることを前提としています。

詳細は、3.1.4項「Oracle Fusion Middlewareのディレクトリ構造と概念」を参照してください。

指定し終わったらnext(またはn)と入力します。

10. Windowsにインストールする場合、管理者権限を持つユーザーとしてログインすると、「Choose Shortcut Location」ウィンドウが表示され、スタート・メニュー・フォルダを表示する場所を選択できます。次の表に、選択可能なオプションを示します。

次を選択した場合...

次のことが起こります...

1 すべてのユーザー

推奨。マシンに登録されているすべてのユーザーが、インストールしたソフトウェアにアクセスできます。このオプションを選択すると、管理者権限を持たないユーザーがこのインストールで構成ウィザードを使用してドメインを作成しても、「スタート」メニューにそのドメインのショートカットは作成されません。この場合、ユーザーは必要に応じてローカルのスタート・メニュー・フォルダに手動でショートカットを作成できます。

2 ローカル・ユーザー

このマシンに登録されている他のユーザーは、このインストールの「スタート」メニューのエントリにアクセスできません。

管理者権限を持たないユーザーとしてログインした場合、「スタート」メニューのエントリがユーザーのローカルのスタート・メニュー・フォルダに作成されます。

該当する番号を入力します。

11. 指定し終わったらnext(またはn)と入力します。

12. 「インストールの概要」ウィンドウが表示され、インストールしようとしている製品およびコンポーネントとおおよそのサイズ(MB)が表示されます。このウィンドウではインストール内容を確認するだけです。コンポーネントがインストールされるように変更するには、Previousと入力して適切なウィンドウに戻ります。

13. next(またはn)を入力します。
インストーラ・プログラムにより、Oracle CEPがインストールされます。製品が正常にインストールされたことを示す「Installation Complete」ウィンドウが表示されます。

14. exitと入力してプログラムを終了します。

15. 3.6項「インストール後の手順」で、インストール後の手順を確認してください。

3.4 サイレント・モードでのOracle CEPのインストール

この節では、Oracle CEPインストーラのサイレント・モードでインストールする方法を説明します。

サイレント・モード・インストールでは、非対話的な方法でソフトウェアをインストールします。インストール・オプションを選択するには、XMLプロパティ・ファイルを使用する必要があります。

詳細は、3.1項「インストールの概要」を参照してください。

Oracle CEPをサイレント・モードでインストールするには:

1. Oracle CEPをインストールするWindowsまたはUNIXのコンピュータにログインします。
必ず、Oracle CEPインストールの主な管理者となるユーザーとしてコンピュータにログインしてください。

2. Oracle CEPをインストールするプラットフォームの製品配布ファイルをダウンロードします。

3. 構成設定を定義するsilent.xmlファイルを作成します。通常、これは対話型インストール・プロセスでユーザーによって入力されます。
3.4.1項「サイレント・モード・インストール用のsilent.xmlファイルの作成」を参照してください。

注意:

silent.xmlファイルのエントリが不適切な場合は、インストール・エラーが発生することがあります。原因を特定しやすいように、インストール・プログラムを開始するときにログ・ファイルを作成することをお薦めします。

4. 使用するプラットフォームに適した次の表のコマンドを使用して、サイレント・モードでインストール・プログラムを起動します。

プラットフォーム

手順

Windows

コマンド・ウィンドウを開き、ダウンロード・ディレクトリに移動して、次のコマンドを入力します。

prompt> filename -mode=silent -silent_xml=path_to_xml_file

このコマンドで、filenameはご使用のプラットフォーム固有のインストール・プログラムの名前(詳細はhttp://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.htmlを参照)、path_to_xml_fileは前の手順で作成したsilent.xmlテンプレート・ファイルのフル・パス名です。

インストール・ログを作成する場合は、-log=full_path_to_log_fileオプションを使用します。例:

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

LinuxまたはSolaris

コマンド・ウィンドウを開き、ダウンロード・ディレクトリに移動して、次のコマンドを入力します。

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

これらのコマンドで、filenameはご使用のプラットフォーム固有のインストール・プログラムの名前(詳細はhttp://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.htmlを参照)、path_to_xml_fileは前の手順で作成したsilent.xmlテンプレート・ファイルのフル・パス名です。

インストール・ログを作成する場合は、-log=full_path_to_log_fileオプションを使用します。例:

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

Oracleインストーラ・ウィンドウが表示され、ファイルを抽出中であることが示されます。その他のプロンプトやテキストは表示されません。

インストールが完了すると、Oracleインストーラ・ウィンドウが閉じます。

サイレント・インストールの成功または失敗の詳細は、3.4.3項「コマンド・ウィンドウでの終了コードの戻り値」を参照してください。

5. 3.6項「インストール後の手順」で、インストール後の手順を確認してください。

3.4.1 サイレント・モード・インストール用のsilent.xmlファイルの作成

サイレント・モードでOracle CEPをインストールする場合は、XMLファイル(silent.xml)を使用して、インストール・プログラムで実装するインストール・オプションを決定します。

サイレントモード・インストール用のsilent.xmlファイルを作成するには:

1. 任意のテキスト・エディタを使用して、Oracle CEPをサイレント・モードでインストールするコンピュータにsilent.xmlという空のファイルを作成します。

2. 例3-1に示すサンプルのXMLファイルの内容を、独自のsilent.xmlファイルにコピーします。

例3-1 サイレント・モード・インストール用のsilent.xmlファイルのサンプル

<?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. 作成したsilent.xmlファイルで、構成を反映するように表3-3に示すキーワードの値を編集します。
たとえば、ORACLE_CEP_HOMEディレクトリ(e:\oracle_cep)にインストールする場合、対応する<data-value>要素を次のように更新します。

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

表3-3 silent.xmlファイルの値

このデータ値名に対して...

次の値を入力...

BEAHOME脚注 1

選択したOracleミドルウェア・ホーム・ディレクトリのフル・パス名。

詳細は、3.1.4項「Oracle Fusion Middlewareのディレクトリ構造と概念」を参照してください。

USER_INSTALL_DIR

選択したOracle CEPのOracle製品ホーム・ディレクトリのフル・パス名。

詳細は、3.1.4項「Oracle Fusion Middlewareのディレクトリ構造と概念」を参照してください。

INSTALL_SHORTCUT_IN_ALL_USERS_FOLDER

Windowsのみ。指定:

- All Usersフォルダにショートカットを作成するには、この値をtrueまたはyesに設定します。

- falseまたはnoを設定した場合、ローカル・ユーザーのフォルダにショートカットを作成します。

All Usersフォルダに「スタート」メニューのショートカットを作成するには、インストールを実行しているユーザーに管理者権限が必要です。

指定しない場合、このパラメータのデフォルト値はtrueです。

COMPONENT_PATHS

システムにインストールするOracle CEPのコンポーネントおよびサブコンポーネントを指定します。次の値を使用します。

- Oracle Complex Event Processing

- Oracle Complex Event Processing/Event Server

- Oracle Complex Event Processing/Event Server Samples

これらの値の入力の詳細は、3.4.2項「コンポーネント選択のガイドライン」を参照してください。

silent.xmlファイルにCOMPONENT_PATHSデータ値名を含めなかった場合は、完全なOracle CEP製品がインストールされます。

LOCAL_JVMS

サポート対象のインストール済JVMを選択するオプション。

注意: LOCAL_JVMSトークンの存在は、任意のデフォルト・セレクションを無効にし、このトークンにアサインされた値のみをユーザー・セレクションとして設定します。トークンの値はパイプ(|)で分けられたJavaHomesです。

脚注 1 パスの終わりにはファイル・セパレータ文字は付けません。つまり、C:\mydirectory\ではなく、C:\mydirectoryと入力します。

注意:

サイレント・インストールでは、LOCAL_JVMSデータ値はサポートされません。ローカルJVMを定義するには、3.2項「グラフィカル・モードでのOracle CEPのインストール」の説明に従って、グラフィカル・モード・インストールを使用する必要があります。

4. ファイルを任意のディレクトリに保存します。

3.4.2 コンポーネント選択のガイドライン

データ値名COMPONENT_PATHSに値を指定する場合は、次のガイドラインに従います。

- インストールする製品コンポーネントを指定すると、完全インストールのデフォルトでインストールされるすべてのサブコンポーネントもインストールされます。たとえば、次のエントリはOracle CEPとサンプルの両方をインストールします。

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

- 複数のコンポーネントまたはサブコンポーネントをインストールする場合は、コンポーネントを縦棒(|)で区切ります。縦棒の前後にスペースを入れないでください。

- サブコンポーネントを指定する場合は、エントリごとにコンポーネントとサブコンポーネントの組合せを指定する必要があります。たとえば、Oracle CEPおよびサンプルを明示的にインストールする場合、ファイルに次の行を入力します。

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

注意:

このリリースのOracle CEPにはサーバー本体とサンプルのみが含まれています。そのため、上記の例は最初の箇条書きの例と同等です。

3.4.3 コマンド・ウィンドウでの終了コードの戻り値

サイレント・モードで実行した場合は、インストール・プログラムによってインストールが成功したか失敗したかを示す終了コードが生成されます。表3-4に、この終了コードを示します。

表3-4 終了コード

コード

説明

0

インストールは正常に完了しました

-1

インストールは致命的なエラーにより失敗しました

-2

インストールは内部的なXML解析エラーのために失敗しました

例3-2は、サイレント・モードでインストール・プログラムを呼び出し、スクリプトを実行したコマンド・ウィンドウに終了コードをエコーするWindowsコマンド・ファイルのサンプルを示しています。

例3-2 サイレント・モードの終了コードを表示するWindowsコマンド・ファイルのサンプル

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 Oracle CEPパッチのインストール

Oracle CEPのメンテナンスおよびセキュリティの更新はMy Oracle Supportからダウンロードできます。詳細は、『Oracle Smart Update Oracle WebLogic Serverへのパッチ適用』を参照してください。

3.6 インストール後の手順

Oracle CEPのインストール後、以下の手順を実行します。

- IBM AIX(64ビット)上のIBM JVMで使用できるようにOracle CEPをインストールした場合は、各Oracle CEPドメイン・ディレクトリで、3.6.1項「IBM JDKのためのOracle CEPの構成」に従って変更を行います。

- 製品サンプルを実行してみます。製品サンプルとその実行方法の詳細は、第2章「Oracle CEPのサンプル」を参照してください。

- Oracle CEP IDE for Eclipseのインストールは、3.7項「Oracle CEP IDE for Eclipseのインストール」で説明します。

- オプションで、ユーザー独自のOracle CEPドメインを作成できます。
参照:

- 『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロンサーバー・ドメインの作成に関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のOracle CEPマルチサーバー・ドメインの作成に関する項

注意:

デフォルトのオプションでOracle CEPをインストールした場合は、独自のOracle CEPドメインを作成する必要があります。詳細は、3.1.3項「デフォルトのOracle CEPドメインocep_domainとサンプル」を参照してください。

- Oracle CEPアプリケーションを作成し、ドメインにデプロイします。
プログラミング・モデルの説明、アプリケーションを構成する様々なコンポーネントの詳細、およびコンポーネントの連動のしくみは、『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーション作成の概要に関する項を参照してください。

3.6.1 IBM JDKのためのOracle CEPの構成

IBM JDKで使用するためにOracle CEPをインストールした場合は、オペレーティング・システムおよびプロセッサ・アーキテクチャによって異なりますが、IBM AIXのネットワーク・オプションとOracle CEPの各ドメイン・ディレクトリのsetDomainEnvスクリプトに変更を加える必要があります。ここでは次の項目について説明します。

- 3.6.1.1項「IBM AIX(64ビット)上のIBM JVMのためにOracle CEPを構成する方法」

3.6.1.1 IBM AIX(64ビット)上のIBM JVMのためにOracle CEPを構成する方法

IBM AIX(64ビット)上のIBM JDKで使用するためにOracle CEPをインストールした場合は、IBM AIXのネットワーク・オプションとOracle CEPの各ドメイン・ディレクトリのsetDomainEnvスクリプトに変更を加える必要があります。

IBM AIX(64ビット)上のIBM JVMのためにOracle CEPを構成するには:

1. 次のコマンドを実行し(スーパー・ユーザー権限すなわちsudoを使用)、AIXのネットワーク・オプションを変更します。

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

2. ドメイン・ディレクトリに移動します。
たとえば、MIDDLEWARE_HOME\user_projects\domains\ocep_domain\defaultserverです。

3. setDomainEnv.shスクリプトを編集して、次の行を追加します。

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

3.7 Oracle CEP IDE for Eclipseのインストール

Oracle CEP IDE for Eclipseは、Oracle CEPのアプリケーションを開発、デプロイおよびデバッグできるよう設計されているEclipse IDE用のプラグインのセットです。

詳細については、次を参照してください:

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』の最新のOracle CEP IDE for Eclipseのインストールに関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPで配布されるOracle CEP IDE for Eclipseのインストールに関する項

3.8 Oracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレード

Oracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレードは2つのステップで実行します。まずアプリケーションをアップグレードし、次にアプリケーションのデプロイ先となるドメインをアップグレードします。

表3-5に、サポートされるアップグレードの流れで実行する必要がある手順を示します。

表3-5 アップグレードの流れ

アップグレード元のリリース

リリース10.3

リリース11gR1(11.1.1)

2.0

1. 3.8.1項「WebLogic Event Server 2.0ドメインのOracle CEP 10.3へのアップグレード」

2. 3.8.3項「Oracle CEP 10.3で実行するためのWebLogic Event Server 2.0アプリケーションのアップグレード」

1. 3.8.1項「WebLogic Event Server 2.0ドメインのOracle CEP 10.3へのアップグレード」

2. 3.8.2項「Oracle CEP 10.3ドメインのOracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレード」

3. 3.8.3項「Oracle CEP 10.3で実行するためのWebLogic Event Server 2.0アプリケーションのアップグレード」

4. 3.8.4項「Oracle CEP 11gリリース1 (11.1.1.6.2)で実行するためのOracle CEP 10.3アプリケーションのアップグレード」

10.3

該当なし。

1. 3.8.2項「Oracle CEP 10.3ドメインのOracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレード」

2. 3.8.4項「Oracle CEP 11gリリース1 (11.1.1.6.2)で実行するためのOracle CEP 10.3アプリケーションのアップグレード」

詳細は、3.8.5項「下位互換性について」を参照してください。

3.8.1 WebLogic Event Server 2.0ドメインのOracle CEP 10.3へのアップグレード

ここでは、Oracle CEP 10.3で正常に実行できるようにWebLogic Event Server 2.0ドメインをアップグレードするために実行する手順を説明します。便宜上、既存のWebLogic Event Server 2.0ドメインは/bea/user_projects/domains/mydomain20ディレクトリにあるとします。

WebLogic Event Server 2.0ドメインをOracle CEP 10.3にアップグレードするには:

1. 構成ウィザードを使用して一時的なOracle CEP 10.3ドメインを作成します。この手順の後半のステップで、新しいOracle CEP 10.3ドメイン内のファイルを使用または参照する必要があります。新しいドメインを使用するのが最適な方法です。このドメインは後で必要に応じて削除できます。
この手順では、新しいOracle CEP 10.3ドメインをmydomain30とし、そのドメインにdefaultserverという単一のサーバーがあるとします。サーバー・ファイルは/oracle_cep/user_projects/domains/mydomain30/defaultserverディレクトリにあるとします。

『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロンサーバー・ドメインの作成に関する項を参照してください。

2. WebLogic Event Server 2.0サーバーが現在実行中の場合は、停止します。

3. 必要に応じてドメインを復元できるように、WebLogic Event Server 2.0ドメインのバックアップ・コピーを作成します。

4. WebLogic Event Server 2.0ドメインにある次の2つのファイルをOracle CEP 10.3ドメインの同等のファイルで置き換えます。

- lib/XACMLAuthorizerInit.ldift

- lib/XACMLRoleMapperInit.ldift

WebLogic Event Server 2.0のファイルはドメイン・ディレクトリ(この例では/bea/user_projects/domains/mydomain20)を基準にして相対的な場所にあり、Oracle CEP 10.3のファイルはドメイン・ディレクトリの下のサーバー・ディレクトリ(この例では/oracle_cep/user_projects/domains/mydomain30/defaultserver)を基準にして相対的な場所にあります。

5. 任意のテキスト・エディタを使用して、WebLogic Event Server 2.0ドメインのatnstore.txtファイルを開きます。このファイルは、メイン・ドメイン・ディレクトリのconfigサブディレクトリにあります。このファイルに新しいOracle 10.3グループを追加します。

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

6. WebLogic Event Server 2.0ドメインにある次のファイルとディレクトリ(存在する場合)を削除します。

- FileBasedDefaultCredentialMappermy-realmInit.initialized

- FileBasedXACMLAuthorizermy-realmInit.initialized

- FileBasedXACMLRoleMappermy-realmInit.initialized

- rm

- cm

- atz

7. WebLogic Event Server 2.0ドメインのstartwlevs.cmd(Windows)またはstartwlevs.sh(UNIX)コマンド・スクリプトを更新し、新しいOracle 10.3バイナリを指すようにします。

8. WebLogic Event Server 2.0ドメインのstopwlevs.cmd(Windows)またはstopwlevs.sh(UNIX)コマンド・スクリプトを更新し、新しいOracle 10.3バイナリを指すようにします。

9. Oracle 10.3バイナリを使用して2.0ドメインでサーバーを起動します。
『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のスタンドアロンサーバー・ドメインでのOracle CEPサーバーの起動および停止に関する項を参照してください。

10. このアップグレード手順で、新しいユーザーを作成してグループに割り当てた場合は特に、2.0ドメインのセキュリティ構成が変更される可能性があります。その場合は、Visualizerを使用してセキュリティを再構成します。
参照:

- 『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のセキュリティ・タスクに関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のOracle CEPのセキュリティの構成に関する項

3.8.2 Oracle CEP 10.3ドメインのOracle CEP 11gリリース1 (11.1.1.6.2)へのアップグレード

ここでは、Oracle CEP 11g リリース1(11.1.1)で正常に実行できるようにOracle CEP 10.3ドメインをアップグレードするために実行する手順を説明します。便宜上、既存のOracle CEP 10.3ドメインは/bea/user_projects/domains/mydomain103ディレクトリにあるとします。

Oracle CEP 10.3ドメインからOracle CEP 11gのリリース1(11.1.1.6.2)にアップグレードするには、次の手順を実行します。

1. 構成ウィザードを使用して一時的なOracle CEP 11gリリース1 (11.1.1.6.2)ドメインを作成します。この手順の後半のステップで、新しいOracle CEP 11gリリース1 (11.1.1.6.2)ドメイン内のファイルを使用または参照する必要があります。新しいドメインを使用するのが最適な方法です。このドメインは後で必要に応じて削除できます。
この手順では、新しいOracle CEP 11g リリース1(11.1.1)ドメインをmydomain11とし、そのドメインにdefaultserverという単一のサーバーがあるとします。サーバー・ファイルは/oracle_cep/user_projects/domains/mydomain11/defaultserverディレクトリにあるとします。

『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のOracle CEPスタンドアロンサーバー・ドメインの作成に関する項を参照してください。

2. WebLogic Event Server 10.3サーバーが現在実行中の場合は、停止します。

3. 必要に応じてドメインを復元できるように、WebLogic Event Server 10.3ドメインのバックアップ・コピーを作成します。

4. WebLogic Event Server 10.3ドメインにある次の2つのファイルをOracle CEP 11g リリース1(11.1.1)ドメインの同等のファイルで置き換えます。

- lib/XACMLAuthorizerInit.ldift

- lib/XACMLRoleMapperInit.ldift

WebLogic Event Server 10.3のファイルはドメイン・ディレクトリ(この例では/bea/user_projects/domains/mydomain30)を基準にして相対的な場所にあり、Oracle CEP 11g リリース1(11.1.1)のファイルはドメイン・ディレクトリの下のサーバー・ディレクトリ(この例では{/oracle_cep/user_projects/domains/mydomain11/defaultserver)を基準にして相対的な場所にあります。

5. 任意のテキスト・エディタを使用して、WebLogic Event Server 10.3ドメインのatnstore.txtファイルを開きます。このファイルは、メイン・ドメイン・ディレクトリのconfigサブディレクトリにあります。このファイルに新しいOracle 11gリリース1 (11.1.1.6.2)グループを追加します。

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

6. WebLogic Event Server 10.3ドメインにある次のファイルとディレクトリ(存在する場合)を削除します。

- FileBasedDefaultCredentialMappermy-realmInit.initialized

- FileBasedXACMLAuthorizermy-realmInit.initialized

- FileBasedXACMLRoleMappermy-realmInit.initialized

- rm

- cm

- atz

7. WebLogic Event Server 10.3ドメインのstartwlevs.cmd (Windows)またはstartwlevs.sh (UNIX)コマンド・スクリプトを更新し、新しいOracle 11gリリース1 (11.1.1.6.2)バイナリを指すようにします。

8. WebLogic Event Server 10.3ドメインのstopwlevs.cmd (Windows)またはstopwlevs.sh (UNIX)コマンド・スクリプトを更新し、新しいOracle 11gリリース1 (11.1.1.6.2)バイナリを指すようにします。

9. Oracle 11gリリース1 (11.1.1.6.2)のバイナリを使用して10.3ドメインのサーバーを起動します。
『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のスタンドアロンサーバー・ドメインでのOracle CEPサーバーの起動および停止に関する項を参照してください。

10. このアップグレード手順で、新しいユーザーを作成してグループに割り当てた場合は特に、10.3ドメインのセキュリティ構成が変更される可能性があります。その場合は、Visualizerを使用してセキュリティを再構成します。
参照:

- 『Oracle Fusion Middleware Oracle Complex Event Processing Visualizerユーザーズ・ガイド』のセキュリティ・タスクに関する項

- 『Oracle Fusion Middleware Oracle Complex Event Processing管理者ガイド』のOracle CEPのセキュリティの構成に関する項

3.8.3 Oracle CEP 10.3で実行するためのWebLogic Event Server 2.0アプリケーションのアップグレード

この節では、WebLogic Event Serverバージョン2.0で開発したアプリケーションをOracle CEP 10.3で実行できるようにアップグレードするために必要な手順を説明します。

Oracle CEP 10.3で実行するようにWebLogic Event Server 2.0アプリケーションをアップグレードするには、つぎの手順を実行します。

1. MANIFEST.MFファイルを更新して、SpringフレームワークおよびOracle CEPパッケージの新しいバージョンと新しい必須のパッケージがインポートされるようにします。具体的には次のとおりです。

- インポートされたすべてのSpringフレームワーク・パッケージのバージョンを2.5.5に更新します。例:

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

- インポートされたOracle CEPパッケージのバージョンを3.0.0.0に更新します。例:

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

- 次のパッケージが Import-Package ヘッダーに含まれていない場合は、追加します。

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. SpringまたはSpring Dynamic Modules for OSGI (Spring DM)の機能をアプリケーションで使用する場合、Springアプリケーションのコンテキスト・ファイルでの機能の宣言が変更されている可能性があります。これに該当する場合は、Oracle CEPアプリケーションのEPNアセンブリ・ファイル内の宣言を更新する必要があります。

注意:

この変更はWebLogic Event Server 2.0とOracle CEP 10.3の間で行われるSpringフレームワークのアップグレード(2.0から2.5へ)に起因するものであり、Oracle CEPのアップグレードに直接起因するものではありません。

変更については、該当する2.5 XSDスキーマを参照してください。

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

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

次に、必要になる可能性がある一般的な変更の一部を示します。変更はこれらに限定されません。

- <osgi:service-property>タグにプロパティを指定するとき、古い<prop>ではなく、key属性とvalue属性を含む<entry>タグを使用します。
たとえば、次の2.0タグを変更します:

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

先:

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

- instance-propertyのvalueまたはref属性は常に明示的な値に設定する必要があります。デフォルト値の暗黙的な使用を示す空の文字列は設定できなくなりました。
たとえば、次の2.0タグを変更します:

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

先:

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

3. IDEを使用して2.0アダプタとビジネスPOJO実装のJavaコードを再コンパイルします。コンパイル時エラーが発生した場合は、新しいOracle CEP APIについて記載されている最新の10.3 Javadoc(http://download.oracle.com/docs/cd/E13157_01/wlevs/docs30/javadocs/wlevs/index.html)を調べて、ソース・コードを適切に変更してください。

4. 2.0アプリケーションのアダプタがloadgenプロバイダを例3-3のように使用している場合、EPNアセンブリ・ファイルでStockTickイベント・タイプを例3-4のように登録する必要があります。

例3-3 loadgenプロバイダを使用するアダプタ

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

例3-4 StockTickイベントの登録

<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. これらの変更を行った後で、アプリケーションを再アセンブルしてOracle CEP 10.3にデプロイします。
『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーションのアセンブルおよびデプロイに関する項を参照してください。

デプロイメント中にパッケージを検出できないことを示す例外が発生した場合は、該当のパッケージをMANIFEST.MFファイルのImport-Packageヘッダーに追加してから、アプリケーションを再アセンブルし、再デプロイします。アプリケーションが正常にデプロイされるまで、この方法でパッケージの追加を続けてください。

3.8.4 Oracle CEP 11gリリース1 (11.1.1.6.2)で実行するためのOracle CEP 10.3アプリケーションのアップグレード

ここでは、Oracle CEP 10.3で開発したアプリケーションをOracle CEP 11gリリース1 (11.1.1.6.2)で実行できるようにアップグレードする手順を説明します。

Oracle CEP 10.3アプリケーションをOracle CEP 11gのリリース1(11.1.1.6.2)で実行するためにアップグレードするには、次の手順を実行します。

1. MANIFEST.MFファイルを更新して、SpringフレームワークおよびOracle CEPパッケージの新しいバージョンと新しい必須のパッケージがインポートされるようにします。
または、更新を必要としないバージョニングなしのパッケージを指定できます。また、マイナー・バージョンの更新を回避するためにメジャー・バージョンを指定することもできます(「2.5.6」ではなく「2.5」を使用)。

具体的には次のとおりです。

- インポートされたすべてのSpringフレームワーク・パッケージのバージョンを2.5.6に更新します。例:

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

- インポートされたすべてのSpring-DMフレームワーク・パッケージのバージョンを1.2.0に更新します。例:

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

- インポートされたOracle CEPパッケージのバージョンを11.1.1.4_0に更新します。例:

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

- 次のパッケージがImport-Packageヘッダーに含まれていない場合は、追加します(必要になる可能性があるすべてのヘッダーのリストは、サンプル・ソースを参照してください)。

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. SpringまたはSpring Dynamic Modules for OSGI (Spring DM)の機能をアプリケーションで使用する場合、Springアプリケーションのコンテキスト・ファイルでの機能の宣言が変更されている可能性があります。これに該当する場合は、Oracle CEPアプリケーションのEPNアセンブリ・ファイル内の宣言を更新する必要があります。

注意:

この変更はOracle CEP 10.3とOracle CEP 11.1の間で行われるSpring-DMフレームワークのアップグレード(1.1から1.2へ)に起因するものであり、Oracle CEPのアップグレードに直接起因するものではありません。

変更については、該当する2.5 XSDスキーマを参照してください。

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

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

特に、<wlevs:factory/>タグを使用するように、Spring-DM宣言済アダプタ・ファクトリを変換します。たとえば、10.3 EPNアセンブリ・ファイルに例3-5に示すserviceが含まれる場合、例3-6に示すようにこのserviceをwlevs:factoryで置き換えます。

例3-5 Spring-DM宣言済アダプタ・ファクトリ

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

例3-6 wlevs:factory

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

3. IDEを使用して10.3アダプタのJavaコードとビジネスPOJOの実装を再コンパイルします。コンパイル・エラーが発生した場合は、新しいOracle CEP APIについて説明した最新の11g リリース1(11.1.1)Javadoc(『Oracle Fusion Middleware Java API Reference for Oracle Complex Event Processing』を参照)を確認し、ソース・コードに適切な変更を加えてください。
次のように、非推奨となったJava APIおよびOracle CEPスキーマの変更を検討してください。

- 『Oracle Fusion Middlewareリリース・ノート』の非推奨のAPIおよびスキーマに関する項

- 『Oracle Fusion Middlewareリリース・ノート』のアダプタの変更に関する項

4. これらの変更を行った後で、アプリケーションを再アセンブルしてOracle CEP 11g リリース1(11.1.1)にデプロイします。
『Oracle Fusion Middleware Oracle Complex Event Processing開発者ガイド for Eclipse』のOracle CEPアプリケーションのアセンブルおよびデプロイに関する項を参照してください。

デプロイメント中にパッケージを検出できないことを示す例外が発生した場合は、該当のパッケージをMANIFEST.MFファイルのImport-Packageヘッダーに追加してから、アプリケーションを再アセンブルし、再デプロイします。アプリケーションが正常にデプロイされるまで、この方法でパッケージの追加を続けてください。

3.8.5 下位互換性について

管理フレームワークにおける次の変更点には下位互換性がありません。

- 次のクラスが非推奨になり、すべての操作のシグネチャから削除されました。

- com.bea.wlevs.management.ManagementException

- com.bea.wlevs.management.ManagementRuntimeException

- com.bea.wlevs.management.MbeanOperationsException

- 次のメソッドがすべてのMBeanから削除されました。isRegistered()、preRegister()、postRegister()、getMBeanInfo()

- モニター関連のメソッドがStageMBeanから削除され、com.bea.wlevs.monitor.management.MonitorRuntimeMBeanに置き換えられました。

- com.bea.wlevs.management.boot.BootMBeanが削除されました。

- com.bea.wlevs.management.configuration.ConfigSessionBeanが削除されました。

- AppDeploymentMBeanのObjectNameが変更され、DomainMBeanが親として含まれるようになりました。

- クラスcom.bea.wlevs.server.management.mbean.ServerRuntimeMBeanがcom.bea.wlevs.management.runtime.ServerRuntimeMBeanに変更されました。

- 既存のcom.bea.wlevs.management_*以外に、com.bea.wlevs.management.api_*およびcom.bea.wlevs.management.spi_*という2つのモジュールが追加されました。

- サービスcom.bea.wlevs.spi.ManagementServiceが、バンドルcom.bea.wlevs.spi_*からcom.bea.wlevs.management.spi_*に移されました。

用語集

アダプタ

着信イベント・ソースとの直接のインタフェースになるEPNの要素です。アダプタは着信プロトコルを認識し、イベント・データを標準化フォームに変換して、POJOによって問合せを実行できるようにします。アダプタは、標準化したイベント・データをストリームに転送します。

集計関数

集計関数は、単独のタプルではなく一連のタプルに基づく1つの集計結果を返します。

関数および単一行関数も参照してください。

CEP

Complex Event Processing。

チャネル

チャネルは、アダプタとプロセッサの間、プロセッサとイベントBeanの間など、他のタイプのコンポーネント間でイベントが流れる物理的な経路を表します。チャネルのモデルにはストリームまたはリレーションがあります。

条件

Oracle CQLの条件は、1つ以上の式と論理(Boolean)演算子を指定し、値としてTRUE、FALSEまたはUNKNOWNを返します。

定数値

固定のデータ値。リテラルと同義です。

CQL

Oracle Continuous Query Language。EPLを置き換えます。

データ・フィード

イベント・ソースと同義です。

宛先

Oracle CQLの宛先は、Enterprise Link BAM Adapter、JMSキュー、トピック、ファイルなど、問合せ結果が使用されるところです。

決定論的ガベージ・コレクション

メモリー・ヒープのガベージ・コレクションのための短い、予測可能な休止時間 - これは、使われないオブジェクトをヒープから削除し、新しいオブジェクトのために領域を解放するプロセスです。

DStream

削除されたタプルを表す、リレーションからストリームへの演算子です。

EDA

イベント駆動型アーキテクチャ。

EPL

Oracle Event Processing Language。CQLによって置き換えられます。

EPN

Oracleイベント処理ネットワーク。EPNは、アダプタ、ストリーム、POJOおよびビジネス・ロジックPOJOが任意に接続したものであり、Oracle CEPがイベントを処理するために使用します。

イベントBean

特別なイベントが検出されたときに実行されるビジネス・ロジックを含むPOJO。イベントBeanはイベント・シンクです。

イベント・ルール

CQLまたはEPLで表される問合せです。イベントのフィルタ処理および集計のためにPOJOによって実行されます。

イベント・シンク

プロセッサなど、イベントを使用するコンポーネント。

イベント・ソースも参照してください。

イベント・ソース

センサー、ニュース配信サービス、株式相場速報など、イベントを提供するコンポーネント。

データ・フィードおよびイベント・シンクも参照してください。

式

Oracle CQLの式は、1つ以上の値と演算子、およびOracle CQL関数(値として評価される)の組合せです。通常、式のデータ型はそのコンポーネントのデータ型とみなされます。

条件および関数も参照してください。

書式モデル

文字列に格納される日付時刻データまたは数値cデータの書式を指定する文字リテラルです。

関数

Oracle CQL関数は、データ項目を処理して結果を返すという点で演算子に似ています。関数が演算子と異なるのは引数の形式です。この形式のため、関数は0、1、2およびそれ以上の引数を処理できます。

条件、集計関数および単一行関数も参照してください。

増分処理

スケーラビリティとパフォーマンスを改善するためのユーザー定義集計関数の設計パターンです。新しいイベントの受信時の(再)計算コストが、それまでに受信したイベントの合計数ではなく、新しいイベントの数に比例するようになります。

ユーザー定義集計関数が増分処理に対応する場合は、supports incremental processing句をregister function文に指定して、Oracle CEP Service Engineが処理済イベント・データの再スキャンを実行するかわりに新しいイベント・データのみを提供するように指示します。

IStream

挿入されたタプルを表す、リレーションからストリームへの演算子です。

結合

2つ以上のストリーム、ビューまたはリレーションの行を結合する問合せ。

待機時間

ある指定された地点から別の地点にデータが移動するのにかかる時間の表現。

リテラル

固定のデータ値。定数値と同義です。

モノトニック

減少することなく連続して増加する値、または増加することなく連続して減少する値のシーケンスです。このシーケンスには、同じ値が連続して現れることもあります。

現在ウィンドウ

時間に基づくスライディング・ウィンドウの特別なケース。パラメータとして時間間隔Tを取るストリームSは、S [Range T]と指定されます。現在ウィンドウは、S [Now](省略形はS [Range 0])と指定されます。T = 0のとき、時刻tのリレーションは、タイムスタンプtの要素Sから取得されるタプルで構成されます。

スライディング・ウィンドウも参照してください。

演算子

Oracle CQLの演算子は、データ項目を処理して結果を返します。構文では、演算子はオペランドの前後または2つのオペランドの間に指定します。

OSGi

Java用の動的モジュール・システム。サービス指向かつコンポーネントベースの環境と、標準化されたソフトウェア・ライフサイクル管理を提供します。Oracle CEPのアプリケーションは、OSGiバンドルとしてパッケージ化されてデプロイされます。詳細は、http://www.osgi.org/を参照してください。

分割ウィンドウ

分割されたスライディング・ウィンドウ。タプルNの正の整数とストリームの属性のサブセット{A1,... Ak}をパラメータとして取るストリームSは、S[Partition By A1 ... Ak Rows N]と指定されます。オプションで、S[Partition By A1 ... Ak Rows N Range T]と指定することもできます。

スライディング・ウィンドウも参照してください。

POJO

Plain Old Java Object。サードパーティ・インタフェースの実装やサードパーティ・クラスの拡張が必要ないJavaクラスです。Oracle CEPでは、POJOを使用してビジネス・ロジックを表すことができます。

プロセッサ

EPN内の要素。標準化されたイベント・データをストリームから取得し、問合せ(CQLまたはEPLで表される)を使用して処理します。場合によっては、新しいイベントを生成して出力ストリームに送ります。

問合せ

問合せは、1つ以上のストリームまたはビューからデータを取得する処理です。このリファレンスでは、最上位のSELECT文を問合せと呼びます。

リアルタイム

ユーザーにとって十分に即時的であると感じられる程度で、コンピュータによる外部プロセスの追跡を可能にする(たとえば、常に変化する天候を視覚化して提示するなど)コンピュータの応答レベル。

リレーション

リレーションとは、時間で変化するタプルのバッグです。この「時間」は時間ドメインの一瞬を指します。各瞬間において、リレーションは制限されたセットです。また、リレーションの変化する状態を表すように、挿入、削除、または更新を含む、タイムスタンプを持つタプルのシーケンスとして表すこともできます。更新は、タイムスタンプの昇順でシステムに到着する必要があります。ストリームと同様、リレーションにはすべてのタプルが準拠する固定スキーマがあります。

RStream

リレーションからストリームへの演算子。入力リレーションの現在の状態全体を維持し、各時間ステップごとにすべてのタプルを挿入として出力します。

単一行関数

単一行関数は、問い合せたストリームまたはビューのすべての行について単一行の結果を返します。

関数および集計関数も参照してください。

スライディング・ウィンドウ

SQL99から導出されたウィンドウ仕様に基づく、ストリームからリレーションへの演算子。

現在ウィンドウ、分割ウィンドウ、無制限ウィンドウ(タプルベース)および無限ウィンドウ(時間ベース)も参照してください。

ソース

Oracle CQLのソースは、Enterprise Link BAM Adapter、JMSキュー、トピック、ファイルなど、Oracle CQL問合せの実行対象のデータが生成されるところです。

Spring Framework

Java用の軽量オープン・ソース・アプリケーション・フレームワークです。Oracle CEPサーバーはSpring Frameworkを使用してOracle CEPアプリケーションをホストします。詳細は、http://www.springframework.org/を参照してください。

ストリーム

ストリームとはタイムスタンプを持つタプルのシーケンスです。同じタイムスタンプを持つ複数のタプルがある場合があります。入力ストリームのタプルは、タイムスタンプの昇順にシステムに到着する必要があります。ストリームには名前付き属性のセットで構成される関連付けられたスキーマがあり、ストリームのすべてのタプルはスキーマに準拠しています。

ストリームは、タプルとタイムスタンプのペアのバッグ(複数セット)です。タイムスタンプを持つタプルの「挿入」シーケンスとして表すことができます。

Oracle CEPでは、ストリームはチャネル・コンポーネントとしてモデル化されます。

タプルおよびチャネルも参照してください。

スループット

Oracle CQLのソースは、Enterprise Link BAM Adapter、JMSキュー、トピック、ファイルなど、Oracle CQL問合せの実行対象のデータが生成されるところです。

タプル

「ストリームのタプル」という用語はストリーム要素のデータ部分(タイムスタンプ・データは除く)の順序付きリストを表します(<s,t>のs)。たとえば、株価表示データ・ストリームは次のように表されます。各ストリーム要素は、<timestamp value>、<stock symbol>および<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
...

ストリーム要素<timestampN+1>  ORCL,62では、タプルはORCL,62です。

ストリームも参照してください。

無限ウィンドウ(時間ベース)

時間に基づくスライディング・ウィンドウの特別なケース。パラメータとして時間間隔Tを取るストリームSは、S [Range T]と指定されます。無限ウィンドウは、S [Range Unbounded](省略形はS [Range infinity])と指定されます。T = infinityのとき、時刻tのリレーションは、tまでのSのすべての要素から取得されるタプルで構成されます。

スライディング・ウィンドウも参照してください。

無限ウィンドウ(タプルベース)

タプルに基づくライディング・ウィンドウの特別なケース。パラメータとしてタプル数Nを取るストリームSは、S [Rows N]と指定されます。無限ウィンドウは、S [Rows Unbounded](省略形はS [Rows infinity])と指定されます。これはS [Range Unbounded]と等価です。T = infinityのとき、時刻tのリレーションは、tまでのSのすべての要素から取得されるタプルで構成されます。

スライディング・ウィンドウも参照してください。

ビュー

Oracle CQLのビューは、ストリームまたはリレーションに関する代替の選択を表します。Oracle CQLでは、副問合せのかわりにビューを使用します。

索引

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

記号

*

最大パターン修飾子(0以上の回数), 2.7.4.1

*?

最小パターン修飾子(0以上の回数), 2.7.4.1

+

最大パターン修飾子(1以上の回数), 2.7.4.1

+?

最小パターン修飾子(1以上の回数), 2.7.4.1

?

最大パターン修飾子(0回または1回), 2.7.4.1

??

最小パターン修飾子(0回または1回), 2.7.4.1

A

アダプタ, 1.2

Ant

CQLサンプルのターゲット, 2.7.3

イベントの記録および再生サンプルのターゲット, 2.11.3

FXサンプルのターゲット, 2.9.3

HelloWorldサンプルのターゲット, 2.6.3

インストール, 3.1

Oracle Spatialサンプルのターゲット, 2.8.3

シグナル生成サンプルのターゲット, 2.10.3

B

Bean, 1.2

C

チャネル, 1.2

CQLのサンプル

概要, 2.7

Antターゲット, 2.7.3

ビルド, 2.7.2

デプロイ, 2.7.2

実行中, 2.7.1

D

データ・カートリッジのサンプル

Oracle Spatial

概要, 2.8

Antターゲット, 2.8.3

ビルド, 2.8.2

コンポーネント構成ファイル, 2.8.6

デプロイ, 2.8.2

EPNアセンブリ・ファイル, 2.8.5

実装, 2.8.4

実行中, 2.8.1

開発環境, 2.5

E

EDA

分離コンポーネント, 1.2

イベント・シンク, 1.2

イベント・ソース, 1.2

イベント・ストリーム, 1.2

例, 1.2

ルール駆動, 1.2

環境, 2.5 EPN

概要, 1.3

FXサンプルのアセンブリ・ファイル, 2.9.5

HelloWorldサンプルのアセンブリ・ファイル, 2.6.5

Oracle Spatialサンプルのアセンブリ・ファイル, 2.8.5

シグナル生成サンプルのアセンブリ・ファイル, 2.10.5

トポロジ, 1.3

イベントBean, 1.2 イベント処理ネットワーク。EPNを参照 イベントの記録と再生のサンプル

概要, 2.11

Antターゲット, 2.11.3

ビルド, 2.11.2

デプロイ, 2.11.2

実装, 2.11.4

実行中, 2.11.1

イベント・シンク, 1.2 イベント・ソース, 1.2 イベント・ストリーム, 1.2 イベント駆動型アーキテクチャ。EDAを参照

F

FXのサンプル

概要, 2.9

Antターゲット, 2.9.3

ビルド, 2.9.2

コンポーネント構成ファイル, 2.9.6

デプロイ, 2.9.2

EPNアセンブリ・ファイル, 2.9.5

実装, 2.9.4

実行中, 2.9.1

H

HelloWorldのサンプル

概要, 2.6

Antターゲット, 2.6.3

ビルド, 2.6.2

コンポーネント構成ファイル, 2.6.6

デプロイ, 2.6.2

EPNアセンブリ・ファイル, 2.6.5

実装, 2.6.4

実行中, 2.6.1

I

インストール

Ant, 3.1

デフォルトのドメイン, 3.1.3

ファイル名, 1.6

インストール・プログラム, 1.6

インストーラ, 1.6

JRockit, 3.1

JVM, 3.1.2

ミドルウェア・ホーム, 3.1.4

モード

コンソール, 3.1.5.2

グラフィカル, 3.1.5.1

サイレント, 3.1.5.3

Oracle CEP IDE for Eclipse, 3.7 Oracle Fusion Middlewareのディレクトリ, 3.1.4 パッチ, 3.5 インストール後の作業, 3.6 インストール前の作業, 3.1 サンプル, 2.2, 3.1.3

J

JRockit

インストール, 3.1

JVM

概要, 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句, 2.7.4.1

MEASURES句, 2.7.4.1

ミドルウェア・ホーム, 3.1.4

O

Oracle CEP IDE for Eclipse

概要, 3.7

インストール, 3.7

Oracle CEP Visualizer, 2.3 Oracle Spatialのサンプル

概要, 2.8

Antターゲット, 2.8.3

ビルド, 2.8.2

コンポーネント構成ファイル, 2.8.6

デプロイ, 2.8.2

EPNアセンブリ・ファイル, 2.8.5

実装, 2.8.4

実行中, 2.8.1

P

パッチ, 3.5

プラットフォーム, 1.6

プロセッサ, 1.2

S

サンプル

概要, 2.1

Antターゲット

CQL, 2.7.3

イベントの記録と再生, 2.11.3

FX, 2.9.3

HelloWorld, 2.6.3

Oracle Spatial, 2.8.3

シグナル生成, 2.10.3

ビルド

CQL, 2.7.2

イベントの記録と再生, 2.11.2

FX, 2.9.2

HelloWorld, 2.6.2

Oracle Spatial, 2.8.2

シグナル生成, 2.10.2

コンポーネント構成ファイル

FX, 2.9.6

HelloWorld, 2.6.6

Oracle Spatial, 2.8.6

シグナル生成, 2.10.6

デプロイ

CQL, 2.7.2

イベントの記録と再生, 2.11.2

FX, 2.9.2

HelloWorld, 2.6.2

Oracle Spatial, 2.8.2

シグナル生成, 2.10.2

開発環境, 2.5 EPNアセンブリ・ファイル

FX, 2.9.5

HelloWorld, 2.6.5

Oracle Spatial, 2.8.5

シグナル生成, 2.10.5

実装

イベントの記録と再生, 2.11.4

FX, 2.9.4

HelloWorld, 2.6.4

Oracle Spatial, 2.8.4

シグナル生成, 2.10.4

インストール, 2.2 Oracle CEP Visualizer, 2.3 パフォーマンス, 2.4 すぐに実行できる, 2.1.1 実行

CQL, 2.7.1

イベントの記録と再生, 2.11.1

FX, 2.9.1

HelloWorld, 2.6.1

Oracle Spatial, 2.8.1

シグナル生成, 2.10.1

ソース, 2.1.2 シグナル生成のサンプル

概要, 2.10

Antターゲット, 2.10.3

ビルド, 2.10.2

コンポーネント構成ファイル, 2.10.6

デプロイ, 2.10.2

EPNアセンブリ・ファイル, 2.10.5

実装, 2.10.4

実行中, 2.10.1

サポート対象のプラットフォーム, 1.6

T

ツール

Oracle CEP IDE for Eclipse

概要, 1.7

インストール, 3.7

Oracle CEP Visualizer

概要, 1.8

トポロジ, 1.3

U

ユーザー・コード, 1.2, 1.2

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