Oracle® Fusion Middleware Oracle Event Processing開発者ガイド 11gリリース1 (11.1.1.7) for Eclipse B61654-06 |
|
前 |
次 |
この章では、Oracle Event Processingに付属するサンプル・コードを紹介し、簡単な"Hello World"からOracle Continuous Query Language (Oracle CQL)のアプリケーションまでのコードの設定および使用方法だけでなく、空間や業界に特化したシナリオの場合も同様に説明します。
この章の内容は次のとおりです。
Oracle Event Processingには、次のサンプルがあります。
HelloWorld: 標準的なOracle Event Processingの基本スケルトン。
Oracle Continuous Query Language (CQL): Oracle Event Processing Visualizer問合せウィザードを使用して、イベント・ストリームを処理する様々なOracle CQL問合せを作成する方法を示すサンプル。
Oracle Spatial: Oracle Spatialの使用方法を示すサンプルで、Oracle CQL問合せで全地球測位システム(GPS)のイベント・ストリームを処理してバスのGPS位置を追跡し、バスが事前に定義されたバス停の位置に到着するとアラートを生成します。
外国為替取引(FX): 複数のコンポーネントを含む完全なサンプル。
シグナル生成: 市場取引およびトレンド検出をシミュレートするサンプル。
イベントの記録と再生: 永続イベント・ストアを使用してイベントの記録と再生を構成する方法を示すサンプル。
これらのサンプルは次の2つの形式で提供されます。
サンプルではAntを開発ツールとして使用しています。Antの詳細とコンピュータへのインストール方法は、http://ant.apache.org/
を参照してください。
アセンブルしたアプリケーションをデプロイするための、そのまま使用できるサンプル・ドメインが事前に構成されています。わかりやすくするために、サンプルごとに固有のドメインが用意されています。各ドメインはスタンドアロンのサーバー・ドメインです。サーバー・ファイルは、ドメイン・ディレクトリのdefaultserver
サブディレクトリに格納されます。アプリケーションをデプロイするには、単にドメインのデフォルト・サーバーを起動します。
サンプルのHelloWorldドメインは\MIDDLEWARE_HOME
\ocep_11.1\samples\domains\helloworld_domain
にあります。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
詳細は、2.5.1項「helloworldドメインから実行するHelloWorldのサンプル」を参照してください。
サンプルのCQLドメインはMIDDLEWARE_HOME
\ocep_11.1\samples\domains\cql_domain
にあります。
詳細は、2.6.1項「CQLのサンプルの実行」を参照してください。
サンプルのOracle SpatialドメインはMIDDLEWARE_HOME
\ocep_11.1\samples\domains\spatial_domain
にあります。
詳細は、2.7.1項「Oracle Spatialサンプルの実行」を参照してください。
サンプルの外国為替取引ドメインはMIDDLEWARE_HOME
\ocep_11.1\samples\domains\fx_domain
にあります。
詳細は、2.8.1項「外国為替取引のサンプルの実行」を参照してください。
サンプルのシグナル生成ドメインはMIDDLEWARE_HOME
\ocep_11.1\samples\domains\signalgeneration_domain
にあります。
詳細は、2.9.1項「シグナル生成のサンプルの実行」を参照してください。
サンプルの記録と再生のドメインはMIDDLEWARE_HOME
\ocep_11.1\samples\domains\recplay_domain
にあります。
詳細は、2.10.1項「イベントの記録/再生のサンプルの実行」を参照してください。
各サンプルのJavaソースと構成XMLソースは、サンプルの開発環境を示す個別のソース・ディレクトリで提供されます。
HelloWorldソース・ディレクトリは\MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\helloworld
にあります。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
詳細は、2.5.4項「HelloWorldのサンプルの実装」を参照してください。
CQLのソース・ディレクトリはMIDDLEWARE_HOME
\ocep_11.1\\samples\source\applications\cql
にあります。
詳細は、2.6.4項「CQLのサンプルの実装」を参照してください。
Oracle Spatialのソース・ディレクトリはMIDDLEWARE_HOME
\ocep_11.1\\samples\source\applications\spatial
にあります。
詳細は、2.7.4項「Oracle Spatialサンプルの実装」を参照してください。
外国為替取引のソース・ディレクトリはMIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\fx
にあります。
詳細は、2.8.4項「外国為替取引のサンプルの実装」を参照してください。
シグナル生成のソース・ディレクトリは、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\signalgeneration
にあります。
詳細は、2.9.4項「シグナル生成のサンプルの実装」を参照してください。
記録と再生のソース・ディレクトリはMIDDLEWARE_HOME
\ocep_11.1\\samples\source\applications\recplay
にあります。
詳細は、2.10.4項「記録と再生のサンプルの実装」を参照してください。
デフォルトのocep_domain
ドメイン(デフォルトのパスワード)およびサンプルを含め、すべてのOracle Event Processingコンポーネントをインストールするには、「カスタム」
オプションを使用する必要があります。「標準」
オプションには、デフォルトのocep_domain
およびサンプルは含まれません。
Typical
オプションを使用してOracle Event Processingを以前にインストールした場合、サンプルをインストールし、Oracle Event Processingインストール・プロセスを再実行し、同じOracle Event Processingホーム・ディレクトリを指定することもできます。インストール・プロセスの後の手順を使用して、サンプルのみを次にインストールできます。
Oracle Event Processing VisualizerはWeb 2.0アプリケーションで、Oracle Event Processingからデータを消費し、それを実用的かつ直感的な方式でシステム管理やオペレータに表示し、特定のタスクについては、構成を変更するためにOracle Event Processingへ戻されるデータを受け入れます。
Visualizer自身は各サーバー・インスタンスに自動的にデプロイされるOracle Event Processingアプリケーションです。サンプルでそれを使用するには、次の各サンプルに示されている手順に従ってサーバーを起動済であることを確認し、ブラウザで次のURLを起動します。
http://host:9002/wlevs
host
は、Oracle Event Processingをホストするコンピュータ名です。ブラウザを実行しているのと同じコンピュータである場合は、localhost
とすることができます。
HelloWorldアプリケーションではセキュリティが無効になるため、ログイン画面でユーザー名とパスワードを入力せずに「ログオン」をクリックできます。ただし、FXおよびシグナル生成のサンプルでは、セキュリティが有効になるため、次の情報を使用してログインします。
User Id: wlevs Password: wlevs
Oracle Event Processing Visualizerの詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』を参照してください。
サンプルおよびOracle Event Processingアプリケーション全般について、実行時のスループットを向上させ待機時間を短縮させるには、次の処理をお薦めします。
Oracle JRockit Real Timeに含まれるJRockit JDKを使用して、該当するドメインのOracle Event Processingインスタンスの起動コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.cmd -dgc
デフォルトでは、確定的ガベージ・コレクタはサンプルに対して無効になっています。
Oracle JRockit Real Timeの詳細は、http://www.oracle.com/technology/products/jrockit/jrrt/index.html
を参照してください。
メモリー容量の大きいコンピュータでOracle Event Processingを実行している場合は、コンピュータの容量に合わせてロード・ジェネレータとサーバーのヒープ・サイズを適切に設定する必要があります。十分なメモリー容量のコンピュータでは、サーバーのヒープ・サイズを1GB、ロード・ジェネレータのヒープ・サイズを512MB - 1GBとすることをお薦めします。
Oracle Event Processingアプリケーションの作成方法を示すこの最初のサンプルは、よく知られているHelloWorldです。
図2-1に、HelloWorldサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。
このサンプルには次のコンポーネントが含まれています。
helloworldAdapter
- 「Hello World」というメッセージを毎秒生成するコンポーネント。実世界のシナリオでは、このコンポーネントは通常、ソース(金融機関から送られてくるデータなど)からデータ・ストリームを読み込み、読み込んだデータ・ストリームをイベント・プロセッサで処理できるイベント・ストリームに変換します。HelloWorldアプリケーションには、HelloWorldAdapter
のインスタンスを作成するHelloWorldAdapterFactory
も含まれています。
helloworldInputChannel
- アダプタで生成されたイベント(この場合、「Hello World」のメッセージ)をイベント・プロセッサに送信するコンポーネント。
helloworldProcessor
- 単純に、helloworldAdapter
コンポーネントから受け取ったメッセージをビジネス・ロジックを含むPOJOに転送するコンポーネント。実世界のシナリオでは、このコンポーネントは通常、ストリームから受け取ったイベントに対して追加の処理やより多くの処理を実行します。例として、Oracle CQLを使用して、プロパティ値に基づいてイベントのサブセットを選択する処理や、イベントをグループ化する処理があります。
helloworldOutputChannel
- イベント・プロセッサで処理されたイベントを、ユーザー定義のビジネス・ロジックを含むPOJOに送るコンポーネント。
helloworldBean
- 出力チャネルを経由してプロセッサからひとまとまりのメッセージを受け取るたびに、単純にメッセージを出力するPOJOコンポーネント。実世界のシナリオでは、このコンポーネントにはアプリケーションのビジネス・ロジックが含まれます。例として、プロセッサから受け取ったイベントに関するレポートを実行するロジックや、適切な電子メールまたはアラートを送信するロジックがあります。
HelloWorldアプリケーションはhelloworld
ドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle Event Processingのインスタンスを起動します。
HelloWorldのサンプルをhelloworldドメインから実行するには:
コマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\domains\helloworld_domain\defaultserver
にあるhelloworldドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\domains\helloworld_domain\defaultserver
サーバー起動スクリプトで環境が正しく設定されていることを確認します。
詳細は、第3章「Oracle Event Processingアプリケーションの開発の開始」を参照してください。
適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle Event Processingを起動します。
Windowsの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.cmd -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.cmd
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のサンプルが正しく実行されていることを示しています。
HelloWorldサンプルのソース・ディレクトリには、Javaソースと、HelloWorldアプリケーションを構成する他の必須リソース(構成XMLファイルなど)が含まれます。build.xml
Antファイルには、アプリケーションをビルドしてhelloworldドメインにデプロイするためのターゲットが含まれています。
詳細は、2.5.3項「Hello WorldをビルドするAntターゲットの説明」を参照してください。
ソース・ディレクトリからHelloWorldのサンプルをビルドしてデプロイするには:
helloworldのOracle Event Processingインスタンスがまだ実行されていない場合は、2.5.1項「helloworldドメインから実行するHelloWorldのサンプル」の手順に従ってサーバーを起動します。
再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。
新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\helloworld
にあるHelloWorldソース・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです。
例:
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\source\applications\helloworld
3.2項「開発環境の設定」に従って開発環境を設定します。
all
Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。
prompt> ant all
deploy
Antターゲットを実行してアプリケーションJARファイルをOracle Event Processingにデプロイします。
prompt> ant -Daction=update deploy
注意: このターゲットは、ドメイン・ディレクトリにある既存のhelloworldアプリケーションJARファイルを上書きします。 |
出力先に約1秒ごとに次のメッセージが出力されます。
Message: HelloWorld - the current time is: 3:56:57 PM
このメッセージは、HelloWorldのサンプルが再デプロイされ、正しく実行されていることを示しています。
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 Event Processingにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。
HelloWorldのサンプルの実装は、通常は3.1項「Oracle Event Processingアプリケーションの作成」に従って行われます。
標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。
HelloWorldのサンプルは、比較的単純な内容であるため、Oracle Event Processingアプリケーションを作成する一般的な手順で説明されるすべてのコンポーネントと構成ファイルが使用されるわけではありません。
サンプルのすべてのファイルは、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\helloworld
ディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。
HelloWorldのサンプルで使用するファイルは次のとおりです。
アプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。EPNアセンブリ・ファイルは標準のSpringコンテキスト・ファイルを拡張します。また、このファイルはアプリケーションで使用されるイベント・タイプを登録します。このXMLファイルをOracle Event Processingアプリケーションに組み込む必要があります。
サンプルでは、このファイルはcom.bea.wlevs.example.helloworld-context.xml
という名前で、META-INF/spring
ディレクトリにあります。
helloworldAdapter
コンポーネントのJavaソース・ファイル。
サンプルでは、このファイルはHelloWorldAdapter.java
という名前で、src/com/bea/wlevs/adapter/example/helloworld
ディレクトリにあります。
このファイルの詳細な説明と、アダプタJavaファイルの一般的なプログラミング方法については、第15章「カスタム・アダプタを使用した外部コンポーネントの統合」を参照してください。
HelloWorldEvent
イベント・タイプを記述したJavaソース・ファイル。
サンプルでは、このファイルはHelloWorldEvent.java
という名前で、src/com/bea/wlevs/event/example/helloworld
ディレクトリにあります。
このファイルの詳細な説明と、イベント・タイプのプログラミングの概要については、第9章「イベント・タイプの定義および使用」を参照してください。
helloworldProcessor
およびhelloworldOutputChannel
コンポーネントを構成するXMLファイル。このファイルの重要な部分は、HelloWorldアプリケーションで処理するイベント・セットを選択するためのEPLルール・セットです。プロセッサ構成ファイルをOracle Event Processingアプリケーションに組み込む必要があります。アダプタとチャネルの構成は省略可能です。
サンプルでは、このファイルはconfig.xml
という名前で、META-INF/wlevs
ディレクトリにあります。
アプリケーションのhelloworldBean
コンポーネント(ビジネス・ロジックを含むPOJO)を実装するJavaファイル。
サンプルでは、このファイルはHelloWorldBean.java
という名前で、src/com/bea/wlevs/example/helloworld
ディレクトリにあります。
このファイルの詳細な説明と、イベント・シンクのプログラミングの概要については、第16章「Javaでのイベントの処理」を参照してください。
Oracle Event ProcessingにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MF
ファイル。
サンプルでは、MANIFEST.MF
ファイルがMETA-INF
ディレクトリにあります。
このファイルの作成方法およびOracle Event ProcessingにデプロイするOSGiバンドルの作成方法の詳細は、23.1項「アプリケーションのアセンブリおよびデプロイメントの概要」を参照してください。
HelloWorldのサンプルでは、OSGiバンドルのコンパイル、アセンブリ、およびデプロイにbuild.xml
Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xml
ファイルの詳細は、2.5.2項「ソース・ディレクトリからビルドおよびデプロイするHelloWorldのサンプル」を参照してください。
CQLのサンプルは、Oracle Event Processing Visualizerの問合せウィザードを使用して様々な種類のOracle CQL問合せを作成する方法を示します。
図2-2に、CQLサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。
このアプリケーションのEPNには3つの異なるイベント・パスが含まれます。
欠落イベント: このイベント・パスは、チャネルorderChannel
に接続するアダプタorderCVSAdapter
で構成されています。orderChannel
からプロセッサorderProcessor
、チャネルalertChannel
、アダプタalertOutput
の順に接続しています。
このイベント・パスは、顧客注文ワークフローの欠落イベントを検出するために使用されます。
cqlProc
プロセッサが実行する問合せの作成方法の詳細は、2.6.4.1項「欠落イベントの問合せの作成」を参照してください。
移動平均: このイベント・パスは、順に接続されているチャネルstockChannel
、プロセッサstockProcessor
、チャネルmovingAvgChannel
、アダプタmovingOutput
で構成されます。
このイベント・パスは、数が1000を超える在庫の移動平均を計算するために使用されます。
cqlProc
プロセッサが実行する問合せの作成方法の詳細は、2.6.4.2項「移動平均の問合せの作成」を参照してください。
キャッシュ: このイベント・パスは、順に接続されているアダプタadapter
、チャネルS1
、Oracle CQLプロセッサcacheProcessor
、チャネルS2
、Bean Bean
で構成されます。キャッシュstockCache
もあり、Oracle CQLプロセッサcacheProcessor
に接続しています。また、Bean Loader
もあります。
このイベント・パスは、Oracle CQL問合せのキャッシュの情報にアクセスするために使用されます。
注意: EPNの様々なコンポーネントの詳細は、このマニュアルの他のサンプルを参照してください。 |
最適なデモンストレーションの目的のためには、複数のCPUまたは3GHzのデュアル・コアIntelと最低限2GBのRAMを搭載した強力なコンピュータでこのサンプルを実行することをお薦めします。
CQLアプリケーションはcql_domain
ドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle Event Processingのインスタンスを起動します。
CQLのサンプルを実行するには:
コマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\domains\cql_domain\defaultserver
にあるCQLドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\domains\cql_domain\defaultserver
第3章「開発環境の設定」に従って開発環境を設定します。
適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle Event Processingを起動します。
Windowsの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.cmd -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.cmd
UNIXの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.sh -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.sh
これで、CQLアプリケーションでデータ・フィードからデータを受信する準備ができました。
欠落イベントの問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、第3章「Oracle Event Processingアプリケーションの開発の開始」の説明に従って環境を設定します。
MIDDLEWARE_HOME
\ocep_11.1\utils\load-generator
ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
orderData.prop
プロパティ・ファイルを使用してロード・ジェネレータを実行します。
Windowsの場合:
prompt> runloadgen.cmd orderData.prop
UNIXの場合:
prompt> runloadgen.sh orderData.prop
移動平均の問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、第3章「Oracle Event Processingアプリケーションの開発の開始」の説明に従って環境を設定します。
MIDDLEWARE_HOME
\ocep_11.1\utils\load-generator
ディレクトリに移動します。MIDDLEWARE_HOMEはOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
stockData.prop
プロパティ・ファイルを使用してロード・ジェネレータを実行します。
Windowsの場合:
prompt> runloadgen.cmd stockData.prop
UNIXの場合:
prompt> runloadgen.sh stockData.prop
キャッシュの問合せのデータ・フィードをシミュレートするには、ただサンプルを実行します。
ロード・データがAdaptor.java
によって生成され、キャッシュ・データがLoader.java
によって生成されます。Oracle Event Processing Visualizer Query Planの統計を有効にすると、データが流れていることを確認できます。
CQLサンプルのソース・ディレクトリには、Javaソースと、CQLアプリケーションを構成する他の必須リソース(構成XMLファイルなど)が含まれます。build.xml
Antファイルには、アプリケーションをビルドしてcql_domain
ドメインにデプロイするためのターゲットが含まれています(2.5.3項「Hello WorldをビルドするAntターゲットの説明」を参照)。
ソース・ディレクトリからCQLのサンプルをビルドしてデプロイするには:
CQLのOracle Event Processingインスタンスがまだ実行されていない場合は、2.6.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。
再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。
新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\cql
にあるCQLソース・ディレクトリに移動します。MIDDLEWARE_HOMEはOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\source\applications\cql
3.2項「開発環境の設定」に従って開発環境を設定します。
all
Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。
prompt> ant all
deploy
Antターゲットを実行してアプリケーションJARファイルをOracle Event Processingにデプロイします。
prompt> ant -Dusername=wlevs -Dpassword=wlevs -Daction=update deploy
注意: このターゲットは、ドメイン・ディレクトリにある既存のCQLアプリケーションJARファイルを上書きします。 |
CQLアプリケーションで必要なロード・ジェネレータが実行されていない場合は、2.6.1項「CQLのサンプルの実行」の説明に従って起動します。
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 Event Processingにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。
ここでは、CQLのサンプルで使用される問合せの作成方法を説明します。
ここでは、Oracle Event Processing Visualizer問合せウィザードを使用して、cqlProc
プロセッサが欠落イベントを検出するために実行するOracle CQLのパターン一致問合せを作成する方法を説明します。
顧客注文ワークフロー・イベントがOracle Event Processingシステムに流れる顧客注文ワークフローについて考えてみます。
有効なシナリオでは、表2-1に示す順序でイベントが出現します。
ただし、表2-2に示すように承認イベントなしで注文が出荷されるとエラーになります。
承認イベントの欠落を検出してアラート・イベントを生成する問合せを作成してテストします。
欠落イベントの問合せを作成するには:
CQLのOracle Event Processingインスタンスがまだ実行されていない場合は、2.6.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。
Oracle Event Processing Visualizerを使用するには、サーバーが実行中である必要があります。
ブラウザで以下のURLを起動します。
http://host:port/wlevs
hostは、Oracle Event Processingが実行中のコンピュータ名を指します。portは、サーバーに構成されているJetty NetIOポートを指します(デフォルト値9002
)。
図2-3に示すように「ログオン」画面が表示されます。
図2-3 Oracle Event Processing Visualizerの「ログオン」画面
「ログオン」画面で、「ユーザーID」にwlevs
、「パスワード」にwlevs
を入力し、「ログイン」をクリックします。
図2-4に示すようにOracle Event Processing Visualizerダッシュボードが表示されます。
Oracle Event Processing Visualizerのユーザー・インタフェースの詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』のOracle Event Processing Visualizerユーザー・インタフェースの概要に関する項を参照してください。
右側のペインで、「WLEventServerDomain」→「NonClusteredServer」→「アプリケーション」を展開します。
cqlノードを選択します。
図2-5に示すようにCQLアプリケーション画面が表示されます。
「イベント処理ネットワーク」タブを選択します。
図2-6に示すように「イベント処理ネットワーク」画面が表示されます。
Oracle CQLプロセッサorderProcessorのアイコンをダブルクリックします。
図2-7に示すようにOracle CQLプロセッサ画面が表示されます。
「問合せウィザード」タブを選択します。
図2-8に示すように「問合せウィザード」画面が表示されます。
Oracle CQL問合せウィザードを使用すると、テンプレートまたは個々のOracle CQL構文からOracle CQL問合せを作成できます。
この手順では、テンプレートからOracle CQL問合せを作成します。
詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』の問合せウィザードを使用したOracle CQLプロセッサのルール作成に関する項を参照してください。
「テンプレート」タブを選択します。
図2-9に示すように「テンプレート」タブが表示されます。
図2-9に示すように、「パターン一致」テンプレートを「テンプレート」タブでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
SSourceのアイコンをダブルクリックします。
図2-10に示すようにSSourceの構成ダイアログが表示されます。
問合せのソースはorderChannel
ストリームです。
SSourceを次のように構成します。
「タイプ」として「ストリーム」を選択します。
「ソースの選択」プルダウン・メニューでorderChannelを選択します。
「保存」をクリックします。
「問合せの保存」をクリックします。
「パターン」アイコンをダブルクリックします。
図2-11に示すようにパターンの構成ダイアログが表示されます。
「パターン」タブを使用して、欠落イベントの発生と一致するパターン式を定義します。この式は、後の手順で「定義」タブに指定する名前付き条件を使用して作成します。
「パターン式」フィールドに次の式を入力します。
CustOrder NoApproval*? Shipment
このパターンでは、表2-3に示すOracle CQLのパターン量指定子が使用されます。パターン量指定子を使用して、パターン一致が許可される範囲を指定します。1文字のパターン量指定子は最大(最長マッチ)を指定し、まず最大の数量との一致を試行します。2文字のパターン量指定子は最小(最短マッチ)を指定し、まず最小の数量との一致を試行します。
詳細は、次を参照してください:
『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のPATTERN条件に関する項
『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のMATCH_RECOGNIZE条件に関する項
「パーティション基準」プルダウン・メニューからorderidを選択し、プラス記号ボタンをクリックしてこのプロパティをPARTITION BY
句に追加します。
これで、Oracle Event Processingが各注文について欠落イベントの問合せを検証するようになります。
別名フィールドにOrdersと入力します。
これで、パターンの別名(Orders
)が割り当てられ、後から問合せで使用するときに便利です。
「定義」タブをクリックします。
図2-12に示すように「定義」タブが表示されます。
ここで、表2-4に示すようにパターン句に指定する各条件を定義します。
「オブジェクト名」フィールドにCustOrderと入力します。
「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-13を参照)。
「変数」リストでeventTypeをダブルクリックします。
「オペランド」リストで=をダブルクリックします。
=オペランドの後に値'C'
を入力します。
「保存」をクリックします。
プラス記号ボタンをクリックします。
図2-14に示すように条件定義がオブジェクト・リストに追加されます。
「オブジェクト名」フィールドにNoApprovalと入力します。
「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-15を参照)。
「変数」リストでeventTypeをダブルクリックします。
「オペランド」リストで=をダブルクリックします。
=オペランドの後に値'A'
を入力します。
式をカッコで囲みます。
式の先頭のカッコの外側にカーソルを置きます。
「オペランド」リストでNOTをダブルクリックします。
「保存」をクリックします。
プラス記号ボタンをクリックします。
条件定義がオブジェクト・リストに追加されます。
「オブジェクト名」フィールドにShipmentと入力します。
「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-16を参照)。
「変数」リストでeventTypeをダブルクリックします。
「オペランド」リストで=をダブルクリックします。
=オペランドの後に値'S'
を入力します。
「保存」をクリックします。
プラス記号ボタンをクリックします。
図2-17に示すように「定義」タブが表示されます。
「メジャー」タブをクリックします。
図2-18に示すように「メジャー」タブが表示されます。
「メジャー」タブを使用して、MATCH_RECOGNIZE
条件に式を定義し、DEFINE
句の条件と一致するストリーム要素を問合せのselect文に指定する引数にバインドします。
「メジャー」タブを使用して次のように指定します。
CustOrder.orderid AS orderid
CustOrder.amount AS amount
詳細は、次を参照してください:
『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のMEASURES句に関する項
『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のMATCH_RECOGNIZE条件に関する項
「オブジェクト名」フィールドにorderidと入力します。
「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-19を参照)。
「変数」リストでCustOrder.orderidをダブルクリックします。
「保存」をクリックします。
プラス記号ボタンをクリックします。
「オブジェクト名」フィールドにamountと入力します。
「式ビルダー」ボタンをクリックし、次のように式ビルダーを構成します(図2-20を参照)。
「変数」リストでCustOrder.amountをダブルクリックします。
「保存」をクリックします。
プラス記号ボタンをクリックします。
図2-21に示すように「メジャー」タブが表示されます。
「保存」をクリックします。
選択アイコンをダブルクリックします。
図2-22に示すように選択の構成画面が表示されます。
「プロジェクト」タブを次のように構成します。
イベント・タイプの選択または入力プルダウン・メニューからAlertEventを選択します。
「ソースの選択」プルダウン・メニューでOrdersを選択します。
「プロパティ」リストのorderidをダブルクリックし、別名の選択または入力プルダウン・メニューからorderidを選択します。
プラス記号ボタンをクリックして、このプロパティを「生成されたCQL文」に追加します。
「プロパティ」リストのamountをダブルクリックし、別名の選択または入力プルダウン・メニューからamountを選択します。
プラス記号ボタンをクリックして、このプロパティを「生成されたCQL文」に追加します。
「プロジェクト式」フィールドをクリックして値"Error - Missing Approval"
を入力し、別名の選択または入力プルダウン・メニューからalertTypeを選択します。
プラス記号ボタンをクリックして、このプロパティを「生成されたCQL文」に追加します。
図2-23に示すように「プロジェクト」タブが表示されます。
「保存」をクリックします。
「問合せの保存」をクリックします。
「出力」アイコンをダブルクリックします。
図2-24に示すように出力の構成ダイアログが表示されます。
出力を次のように構成します。
「問合せ」を選択します。
「問合せ名」としてTrackingと入力します。
「ルールのインジェクト」をクリックします。
図2-25に示すように、ルールのインジェクトの「確認」ダイアログが表示されます。
「OK」をクリックします。
問合せウィザードによってルールがcqlProc
プロセッサに追加されます。
「保存」をクリックします。
「CQLルール」タブをクリックします。
図2-26に示すように「CQLルール」タブが表示されます。
「問合せ」ラジオ・ボタンをクリックします。
Tracking
問合せが存在していることを確認します。
欠落イベントの問合せをテストするには:
欠落イベントの問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、第3章「Oracle Event Processingアプリケーションの開発の開始」の説明に従って環境を設定します。
MIDDLEWARE_HOME
\ocep_11.1\utils\load-generator
ディレクトリに移動します。MIDDLEWARE_HOMEはOracle Event Processingをインストールした際に作成したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
orderData.prop
プロパティ・ファイルを使用してロード・ジェネレータを実行します。
Windowsの場合:
prompt> runloadgen.cmd orderData.prop
UNIXの場合:
prompt> runloadgen.sh orderData.prop
Oracle Event Processing Visualizerで上のペインの「ストリームの表示」ボタンをクリックします。
図2-27に示すように「ストリーム・ビジュアライザ」画面が表示されます。
「クライアントの初期化」をクリックします。
「登録」タブをクリックします。
オーダー警告ラジオ・ボタンを選択します。
「サブスクライブ」をクリックします。
欠落イベントが検出されると、Oracle Event Processingによって「受信メッセージ」領域が更新され、生成されたAlertEvents
が表示されます。
ここでは、Oracle Event Processing Visualizer問合せウィザードを使用して、stockProc
プロセッサが実行するOracle CQLの移動平均問合せを作成する方法を説明します。
これは2段階で行います。
まず、移動平均問合せのソースとして使用するビュー(Oracle CQLにおける副問合せ)を作成します。
「移動平均問合せのビュー・ソースの作成」を参照してください。
次に、ソース・ビューを使用する移動平均問合せを作成します。
「ビュー・ソースを使用する移動平均問合せの作成」を参照してください。
最後に、移動平均問合せをテストします。
「移動平均問合せのテスト」を参照してください。
移動平均問合せのビュー・ソースを作成するには:
CQLのOracle Event Processingインスタンスがまだ実行されていない場合は、2.6.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。
Oracle Event Processing Visualizerを使用するには、サーバーが実行中である必要があります。
ブラウザで以下のURLを起動します。
http://host:port/wlevs
hostは、Oracle Event Processingが実行中のコンピュータ名を指します。portは、サーバーに構成されているJetty NetIOポートを指します(デフォルト値9002
)。
図2-28に示すように「ログオン」画面が表示されます。
図2-28 Oracle Event Processing Visualizerの「ログオン」画面
「ログオン」画面で、「ユーザーID」にwlevs
、「パスワード」にwlevs
を入力し、「ログイン」をクリックします。
図2-29に示すようにOracle Event Processing Visualizerダッシュボードが表示されます。
図2-29 Oracle Event Processing Visualizerダッシュボード
Oracle Event Processing Visualizerのユーザー・インタフェースの詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』のOracle Event Processing Visualizerユーザー・インタフェースの概要に関する項を参照してください。
右側のペインで、「WLEventServerDomain」→「NonClusteredServer」→「アプリケーション」を展開します。
cqlノードを選択します。
図2-30に示すようにCQLアプリケーション画面が表示されます。
「イベント処理ネットワーク」タブを選択します。
図2-31に示すように「イベント処理ネットワーク」画面が表示されます。
Oracle CQLプロセッサstockProcessorのアイコンをダブルクリックします。
図2-32に示すようにOracle CQLプロセッサ画面が表示されます。
「問合せウィザード」タブを選択します。
図2-33に示すように「問合せウィザード」画面が表示されます。
Oracle CQL問合せウィザードを使用すると、テンプレートまたは個々のOracle CQL構文からOracle CQL問合せを作成できます。
この手順では、個々のOracle CQL構文からOracle CQLのビューおよび問合せを作成します。
詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』の問合せウィザードを使用したOracle CQLプロセッサのルール作成に関する項を参照してください。
図2-34に示すように、SSourceアイコン(ストリーム・ソース)を「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
SSourceのアイコンをダブルクリックします。
SSourceの構成画面が表示されます。
ビューのソースはstockChannel
ストリームになります。このストリームから、数が1000を超える在庫イベントを選択します。これが移動平均問合せのソースになります。
SSourceを次のように構成します(図2-35)。
「タイプ」として「ストリーム」を選択します。
ビューのソースはstockChannel
ストリームになります。
「ソースの選択」プルダウン・メニューでstockChannelを選択します。
別名StockVolGt1000
を「AS」フィールドに入力します。
「保存」をクリックします。
「問合せの保存」をクリックします。
プロンプトが表示されたら、「問合せID」フィールドにStockVolGt1000と入力します。
「保存」をクリックします。
次は、Oracle CQLフィルタを追加します。
図2-36に示すように、「フィルタ」アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
SSourceアイコンをクリックしてウィンドウアイコンまでドラッグし、図2-37に示すようにOracle CQL構文を接続します。
「フィルタ」アイコンをダブルクリックします。
図2-38に示すようにフィルタの構成ダイアログが表示されます。
「式ビルダー」ボタンをクリックします。
「式ビルダー」ダイアログが表示されます。
式ビルダーを次のように構成します(図2-39)。
「イベント・タイプの選択」プルダウン・メニューからStockVolGt100を選択し、この式で使用できる変数を定義します。
volume変数をダブルクリックして、「式ビルダー」フィールドに追加します。
「オペランド」リストの>をダブルクリックして、「式ビルダー」フィールドに追加します。
>オペランドの後に値1000を入力します。
「保存」をクリックします。
「フィルタの追加」をクリックします。
図2-40に示すように、問合せウィザードによって「生成されたCQL文」にこの式が追加されます。
「保存」をクリックします。
「問合せの保存」をクリックします。
次は、select文を追加します。
図2-41に示すように、選択アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
「フィルタ」アイコンをクリックして選択アイコンにドラッグし、Oracle CQL構文を接続します。
選択アイコンをダブルクリックします。
選択の構成画面が表示されます。
price
、symbol
およびvolume
をStockVolGt1000
ストリームから選択します。
選択を次のように構成します。
「ソースの選択」プルダウン・メニューでStockVolGt1000を選択します。
priceプロパティを選択し、プラス記号ボタンをクリックします。
問合せウィザードによって、プロパティが「生成されたCQL文」に追加されます。
symbolプロパティとvolumeプロパティについても繰り返します。
図2-42に示すように選択の構成ダイアログが表示されます。
「保存」をクリックします。
「問合せの保存」をクリックします。
最後に出力を追加します。
図2-43に示すように、「出力」アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
選択アイコンをクリックして「出力」アイコンにドラッグし、Oracle CQL構文を接続します。
「出力」アイコンをダブルクリックします。
出力の構成画面が表示されます。
出力を次のように構成します(図2-44)。
「ビュー」を選択します。
「ビュー名」にStockVolGt1000
を構成します。
「スキーマの表示」フィールドの内容を削除します。
Oracle Event Processingサーバーによってビュー・スキーマが定義されます。
「ルールのインジェクト」をクリックします。
図2-45に示すように、ルールのインジェクトの「確認」ダイアログが表示されます。
「OK」をクリックします。
問合せウィザードによってルールがcqlProc
プロセッサに追加されます。
「保存」をクリックします。
「CQLルール」タブをクリックします。
図2-46に示すように「CQLルール」タブが表示されます。
「ビュー」ラジオ・ボタンをクリックします。
StockVolGt1000
ビューが存在していることを確認します。
ソース・ビューを使用する移動平均問合せを作成するには:
CQLのOracle Event Processingインスタンスがまだ実行されていない場合は、2.6.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。
Oracle Event Processing Visualizerを使用するには、サーバーが実行中である必要があります。
ブラウザで以下のURLを起動します。
http://host:port/wlevs
hostは、Oracle Event Processingが実行中のコンピュータ名を指します。portは、サーバーに構成されているJetty NetIOポートを指します(デフォルト値9002
)。
図2-47に示すように「ログオン」画面が表示されます。
図2-47 Oracle Event Processing Visualizerの「ログオン」画面
「ログオン」画面で、「ユーザーID」にwlevs
、「パスワード」にwlevs
を入力し、「ログイン」をクリックします。
図2-48に示すようにOracle Event Processing Visualizerダッシュボードが表示されます。
図2-48 Oracle Event Processing Visualizerダッシュボード
Oracle Event Processing Visualizerのユーザー・インタフェースの詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』のOracle Event Processing Visualizerユーザー・インタフェースの概要に関する項を参照してください。
左側のペインで、「WLEventServerDomain」→「NonClusteredServer」→「アプリケーション」を展開します。
cqlノードを選択します。
図2-49に示すようにCQLアプリケーション画面が表示されます。
「イベント処理ネットワーク」タブを選択します。
図2-50に示すように「イベント処理ネットワーク」画面が表示されます。
Oracle CQLプロセッサstockProcessorのアイコンをダブルクリックします。
図2-51に示すようにOracle CQLプロセッサ画面が表示されます。
「問合せウィザード」タブを選択します。
図2-52に示すように「問合せウィザード」画面が表示されます。最近このプロセッサに対する問合せを作成または編集している場合は、その問合せが問合せウィザードのキャンバスに表示される可能性があります。それ以外の場合、キャンバスは空白になります。
Oracle CQL問合せウィザードを使用すると、テンプレートまたは個々のOracle CQL構文からOracle CQL問合せを作成できます。
この手順では、個々のOracle CQL構文からOracle CQLのビューおよび問合せを作成します。
詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』の問合せウィザードを使用したOracle CQLプロセッサのルール作成に関する項を参照してください。
図2-53に示すように、SSourceアイコン(ストリーム・ソース)を「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
SSourceのアイコンをダブルクリックします。
SSourceの構成画面が表示されます。
SSourceダイアログを次のように構成します(図2-54)。
「タイプ」として「ビュー」を選択します。
「ソースの選択」プルダウン・メニューでStockVolGt1000ビューを選択します。
「保存」をクリックします。
「問合せの保存」をクリックします。
図2-55に示すように、ウィンドウアイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
SSourceアイコンをクリックしてウィンドウアイコンにドラッグし、Oracle CQL構文を接続します。
ウィンドウアイコンをダブルクリックします。
SSourceの構成画面が表示されます。
symbol
をパーティションとして、最後の2つのイベントに対するスライディング・ウィンドウを作成します。
ウィンドウ・ダイアログを次のように構成します(図2-56)。
「ソース・プロパティ・リスト」でsymbolを選択して、パーティション・リストに追加します。
「タイプ」として「パーティション」を選択します。
「行ベース」を選択し、「行ベース」フィールドに2を入力します。
「ウィンドウの追加」をクリックします。
図2-56に示すように、問合せウィザードによって「生成されたCQL文」にこのスライディング・ウィンドウが追加されます。
「保存」をクリックします。
「問合せの保存」をクリックします。
図2-57に示すように、選択アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
ウィンドウ・アイコンをクリックして選択アイコンにドラッグし、Oracle CQL構文を接続します。
選択アイコンをダブルクリックします。
選択の構成画面が表示されます。
「ソースの選択」プルダウン・メニューでStockVolGt1000を選択します。
これは、前に作成した移動平均問合せのビューのソースです(「移動平均問合せのビュー・ソースを作成するには:」を参照してください)。
ターゲット・イベント・タイププルダウン・メニューからMovingAvgEventを選択します。
これは、移動平均問合せによって生成される出力イベントです。ソース・イベントからこの出力イベントにプロパティをマップします。
「ソースのプロパティ」リストからsymbolを選択します。
図2-58に示すように、選択したソース・プロパティが「プロジェクト式」に追加されます。
このケースでは、ソース・プロパティsymbol
を出力イベント・プロパティsymbol
にそのままマップします。
「AS」フィールドの横のプルダウン・メニューをクリックし、symbolを選択します。
プラス記号ボタンをクリックします。
図2-59に示すように、このソース・プロパティが「生成されたCQL文」のプロジェクト式に追加されます。
図2-59 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティsymbol
「ソースのプロパティ」リストからpriceを選択します。
図2-60に示すように、選択したソース・プロパティが「プロジェクト式」に追加されます。
このケースでは、ソース・プロパティprice
を処理した後で出力イベントにマップします。
「式ビルダー」ボタンをクリックします。
「式ビルダー」ダイアログが表示されます。
「関数タイプの選択」プルダウン・メニューで「集計関数」を選択します。
Oracle CQLで提供される集計関数のリストが表示されます。AVG関数を使用します。
「式ビルダー」フィールドでStockVolGt1000.priceを選択します。
AVG関数をダブルクリックします。
図2-61に示すように、「式ビルダー」フィールドで選択した部分がAVG()
関数によって囲まれます。
「保存」をクリックします。
図2-62に示すように、式が「プロジェクト式」フィールドに追加されます。
「AS」フィールドの横のプルダウン・メニューをクリックし、movingAvgPriceを選択します。
プラス記号ボタンをクリックします。
図2-63に示すように、このソース・プロパティが「生成されたCQL文」のプロジェクト式に追加されます。
図2-63 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティprice
「検証」をクリックします。
図2-64に示すように検証エラー・ダイアログが表示されます。
パーティションを使用しているため、GROUP BY
句を指定する必要があります。
「グループ」タブを選択します。
「グループ」タブが表示されます。
「グループ」タブを次のように構成します(図2-65)。
「ソースの選択」プルダウン・メニューでStockVolGt1000を選択します。
「プロパティ」リストからsymbolを選択します。
プラス記号ボタンをクリックします。
図2-65に示すようにsymbol
プロパティがGROUP BY
句に追加されます。
「保存」をクリックします。
「問合せの保存」をクリックします。
次は、問合せを出力に結び付けます。
図2-66に示すように、「出力」アイコンを「CQL構文」パレットでクリックし、問合せウィザードのキャンバスの任意の場所にドラッグ・アンド・ドロップします。
選択アイコンをクリックして「出力」アイコンにドラッグし、Oracle CQL構文を接続します。
「出力」アイコンをダブルクリックします。
出力の構成画面が表示されます。
出力を次のように構成します(図2-67)。
「問合せ」を選択します。
「問合せ名」としてMovingAverageと入力します。
「ルールのインジェクト」をクリックします。
図2-68に示すように、ルールのインジェクトの「確認」ダイアログが表示されます。
「OK」をクリックします。
問合せウィザードによってルールがcqlProc
プロセッサに追加されます。
「保存」をクリックします。
「CQLルール」タブをクリックします。
図2-69に示すように「CQLルール」タブが表示されます。
「問合せ」ラジオ・ボタンをクリックします。
MovingAverage
問合せが存在していることを確認します。
移動平均問合せをテストするには:
移動平均の問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、3.2項「開発環境の設定」の説明に従って環境を設定します。
MIDDLEWARE_HOME
\ocep_11.1\utils\load-generator
ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
stockData.prop
プロパティ・ファイルを使用してロード・ジェネレータを実行します。
Windowsの場合:
prompt> runloadgen.cmd stockData.prop
UNIXの場合:
prompt> runloadgen.sh stockData.prop
Oracle Event Processing Visualizerで上のペインの「ストリームの表示」ボタンをクリックします。
図2-70に示すように「ストリーム・ビジュアライザ」画面が表示されます。
「クライアントの初期化」をクリックします。
「クライアントの初期化」フィールドに/stockmoving
と入力します。
「サブスクライブ」をクリックします。
移動平均問合せによってイベントが出力されると、Oracle Event Processingによって「受信メッセージ」領域が更新され、生成されたイベントが表示されます。
このサンプルは、Oracle Spatialの使用方法を示すもので、Oracle CQL問合せで全地球測位システム(GPS)のイベント・ストリームを処理してバスのGPS位置を追跡し、バスが事前に定義されたバス停の位置に到着するとアラートを生成します。
図2-71に、Oracle Spatialサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。
このサンプルには次のコンポーネントが含まれています。
BusPositionGen
- バス位置のGPSイベントの入力ストリームをシミュレートするコンポーネント。Oracle Event Processingの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 Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(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 Spatialアプリケーションはspatial_domain
ドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle Event Processingのインスタンスを起動します。
Oracle Spatialサンプルをspatial_domainドメインから実行するには:
コマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\domains\spatial_domain\defaultserver
にあるOracle Spatialサンプルのドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle iddleware\ocep_11.1\samples\domains\spatial_domain\defaultserver
サーバー起動スクリプトで環境が正しく設定されていることを確認します。
詳細は、第3章「Oracle Event Processingアプリケーションの開発の開始」を参照してください。
適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle Event Processingを起動します。
Windowsの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.cmd -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.cmd
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サンプルが正しく実行されていることを示しています。
Oracle Spatialサンプルが実行しているのと同じホストで、ブラウザを起動してhttp://localhost:9002/bus/main.htmlに移動します。
注意: あるホストでこのサンプルを実行し、別のホストからブラウズすることはできません。これは、このサンプルが使用するGoogle API Keyの制約です。Oracle Event Processingの制約ではありません。 |
Oracle SpatialサンプルのWebページが、図2-72のように表示されます。
バス停到着タブをクリックすると、図2-73に示すようにバス停の到着データが表示されます。
Oracle Event Processingロード・ジェネレータを実行して、サンプル・データを生成します。
Windowsの場合:
コマンド・プロンプトを開いて、MIDDLEWARE_HOME
/ocep_11.1/utils/load-generator
にナビゲートします。
runloadgen.cmd bus_positions.prop
UNIXの場合:
ターミナル・ウィンドウを開いて、MIDDLEWARE_HOME
/ocep_11.1/utils/load-generator
にナビゲートします。
runloadgen.sh bus_positions.prop
図2-74に示すように、バスの運行状況とアラートをブラウザで確認します。
Oracle Spatialサンプルのソース・ディレクトリには、Javaソースと、Oracle Spatialアプリケーションを構成する他の必須リソース(構成XMLファイルなど)が含まれます。build.xml
Antファイルには、アプリケーションをビルドしてspatial_domain
ドメインにデプロイするためのターゲットが含まれています。
詳細は、2.5.3項「Hello WorldをビルドするAntターゲットの説明」を参照してください。
ソース・ディレクトリからOracle Spatialサンプルをビルドしてデプロイするには:
spatial_domain
のOracle Event Processingインスタンスがまだ実行されていない場合は、2.7.1項「Oracle Spatialサンプルの実行」の手順に従ってサーバーを起動します。
再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。
新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\spatial
にあるOracle Spatialソース・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです。
例:
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\source\applications\spatial
3.2項「開発環境の設定」に従って開発環境を設定します。
all
Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。
prompt> ant all
deploy
Antターゲットを実行してアプリケーションJARファイルをOracle Event Processingにデプロイします。
prompt> ant -Daction=update deploy
注意: このターゲットは、ドメイン・ディレクトリにある既存のOracle SpatialのアプリケーションJARファイルを上書きします。 |
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 Event Processingにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。
Oracle Spatialのサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Event Processing開発者ガイドfor Eclipse』のOracle Event Processingアプリケーションの標準的な作成手順に関する項に従って行われます。
標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。
Oracle Spatialサンプルのすべてのファイルは、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\spatial
ディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。
Oracle Spatialサンプルで使用されるファイルは次のとおりです。
アプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。このXMLファイルをOracle Event Processingアプリケーションに組み込む必要があります。
サンプルでは、このファイルはcontext.xml
という名前で、META-INF/spring
ディレクトリにあります。
アプリケーションのプロセッサ・コンポーネントなど、EPNの様々なコンポーネントを構成するコンポーネント構成ファイル。
サンプルでは、このファイルはconfig.xml
という名前で、META-INF/wlevs
ディレクトリにあります。
次のコンポーネントを実装するJavaファイル
BusStopAdapter
: MIDDLEWARE_HOME
\ocep_11.1\samples\domains\spatial_domain\defaultserver\applications\spatial_sample\bus_stops.csv
に基づいてバス停の位置を生成するカスタム・アダプタ・コンポーネント。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
OutputBean
:挿入、削除および更新の各イベントのメッセージを記録するPOJOイベントBeanコンポーネント。BusStopArrivalChannel
で提供されるリレーションの視覚化に役立ちます。
OrdsHelper
: JGeometry
からDouble
値のList
として縦座標を返すメソッドgetOrds
を提供するヘルパー・クラス。
これらのJavaファイルは、source\applications\spatial\src\com\oracle\cep\sample\spatial
ディレクトリにあります。
このPOJOで参照されているOracle Event Processing APIの詳細は、Oracle Fusion Middleware Oracle Event Processing Java APIリファレンスを参照してください。
Oracle Event ProcessingにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MF
ファイル。
サンプルでは、MANIFEST.MF
ファイルがMETA-INF
ディレクトリにあります。
このファイルの作成方法およびOracle Event ProcessingにデプロイするOSGiバンドルの作成方法の詳細は、23.1項「アプリケーションのアセンブリおよびデプロイメントの概要」を参照してください。
Oracle Spatialサンプルでは、OSGiバンドルのコンパイル、アセンブリ、およびデプロイにbuild.xml
Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xml
ファイルの詳細は、2.7.2項「ソース・ディレクトリからビルドおよびデプロイするOracle Spatialサンプル」を参照してください。
外国為替取引のサンプル(簡単にFXと呼びます)は、複数のデータ・フィードから読み込んだ情報を処理するために複数のプロセッサを使用しているので、HelloWorldのサンプルよりも複雑です。FXのサンプルでは、Oracle Event Processingロード・ジェネレータ・ユーティリティを使用してデータ・フィードをシミュレートします。
図2-75に、FXサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。
このシナリオでは、ロード・ジェネレータを使用してシミュレートした3つのデータ・フィードにより、世界各地から定数の値のペアが送信されます。値のペアは通貨を組み合せたもので、たとえばUSDEURは米ドルと欧州ユーロの組合せを表します。値のペアと共に2つの通貨間の為替レートも送信されます。fxMarketAmer
、fxMarketAsia
およびfxMarketEuro
の各アダプタはフィードからデータを受信し、受信したデータをイベントに変換して、対応するFilterAmer
、FilterAsia
およびFilterEuro
の各プロセッサに渡します。各プロセッサは、初期期限切れチェックを実行し、発生からの経過時間が1秒を超えているイベントがないことを確認します。さらに境界チェックを実行し、2つの通貨間の為替レートが現在の境界の範囲内にあることを確認します。プロセッサは、特定のチャネルから特定の通貨のペアのみを選択します。たとえば、シミュレートされた米国のデータ・フィードからはUSDEURを選択し、USDAUD(オーストラリア・ドル)などの他のすべてのペアを拒否します。
各データ・フィード・プロバイダからのデータがこの初期準備フェーズを通過すると、FindCrossRate
という別のプロセッサが、すべてのプロバイダのすべてのイベントを結合し、最大レートと最小レートの中間点を計算して、トレーダが指定したスプレッドを適用します。最後に、プロセッサはビジネス・コードを含むPOJOにレートを転送します。このサンプルでは、POJOは単純にレートをクライアントにパブリッシュします。
Oracle Event Processingモニターは、直前のステップのイベント待機時間が特定のしきい値を超えていないか(たとえば、30秒という時間内に更新されたレートがないか)、また同じ通貨のペアで2つの連続的なレート間の偏差が大きすぎないかを監視するように構成されています。最後に、通貨の各ペアの直前のレートがOracle Event Processing httpパブリッシュ/サブスクライブ・サーバーに転送されます。
最適なデモンストレーションの目的のためには、複数のCPUまたは3GHzのデュアル・コアIntelと最低限2GBのRAMを搭載した強力なコンピュータでこのサンプルを実行することをお薦めします。
外国為替取引(FX)アプリケーションはfx_domain
ドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle Event Processingのインスタンスを起動します。
外国為替取引のサンプルを実行するには:
コマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\domains\fx_domain\defaultserver
にあるFXドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle iddleware\ocep_11.1\samples\domains\fx_domain\defaultserver
3.2項「開発環境の設定」に従って開発環境を設定します。
適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle Event Processingを起動します。
Windowsの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.cmd -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.cmd
UNIXの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.sh -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.sh
これで、FXアプリケーションでデータ・フィードからデータを受信する準備ができました。
米国のデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、3項「Oracle Event Processingアプリケーションの開発の開始」の説明に従って環境を設定します。
MIDDLEWARE_HOME
\ocep_11.1\utils\load-generator
ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
fxAmer.prop
プロパティ・ファイルを使用してロード・ジェネレータを実行します。
Windowsの場合:
prompt> runloadgen.cmd fxAmer.prop
UNIXの場合:
prompt> runloadgen.sh fxAmer.prop
fxAsia.prop
プロパティ・ファイルを使用して手順4 - 6を繰り返し、アジアのデータ・フィードをシミュレートします。
Windowsの場合:
prompt> runloadgen.cmd fxAsia.prop
UNIXの場合:
prompt> runloadgen.sh fxAsia.prop
fxEuro.prop
プロパティ・ファイルを使用して手順4 - 6を繰り返し、ヨーロッパのデータ・フィードをシミュレートします。
Windowsの場合:
prompt> runloadgen.cmd fxEuro.prop
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>
これらのメッセージは、外国為替取引のサンプルが正しく実行されていることを示しています。出力では、米ドル対日本円および米ドル対英国ポンドのクロス・レートが示されています。
外国為替取引(FX)サンプルのソース・ディレクトリには、Javaソースと、FXアプリケーションを構成する他の必須リソース(構成XMLファイルなど)が含まれます。build.xml
Antファイルには、アプリケーションをビルドしてfx_domainドメインにデプロイするためのターゲットが含まれています(2.5.3項「Hello WorldをビルドするAntターゲットの説明」を参照)。
ソース・ディレクトリから外国為替取引のサンプルをビルドおよびデプロイするには:
FXのOracle Event Processingインスタンスがまだ実行されていない場合は、2.8.1項「外国為替取引のサンプルの実行」の手順に従ってサーバーを起動します。
再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。
新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\fx
にあるFXソース・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingインストール・ディレクトリをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\source\applications\fx
3.2項「開発環境の設定」に従って開発環境を設定します。
all
Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。
prompt> ant all
deploy
Antターゲットを実行してアプリケーションJARファイルをOracle Event Processingにデプロイします。
prompt> ant -Dusername=wlevs -Dpassword=wlevs -Daction=update deploy
注意: このターゲットは、ドメイン・ディレクトリにある既存のFXアプリケーションJARファイルを上書きします。 |
FXアプリケーションで必要なロード・ジェネレータが実行されていない場合は、2.8.1項「外国為替取引のサンプルの実行」の説明に従って起動します。
サーバー・ステータス・メッセージがスクロールされた後、出力先に次のメッセージが出力されます。
{crossRate=USDJPY, internalPrice=119.09934499999781}, {crossRate=USDGBP, internalPrice=0.5031949999999915}, {crossRate=USDJPY, internalPrice=117.73945624999783}
このメッセージは、FXのサンプルが再デプロイされ、正しく実行されていることを示しています。
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 Event Processingにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。
外国為替取引(FX)のサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Event Processing開発者ガイドfor Eclipse』のOracle Event Processingアプリケーションの標準的な作成手順に関する項に従って行われます。
標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。
FXサンプルのすべてのファイルは、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\fx
ディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middleware
など)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。
FXのサンプルで使用するファイルは次のとおりです。
アプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。このXMLファイルをOracle Event Processingアプリケーションに組み込む必要があります。
サンプルでは、このファイルはcom.oracle.cep.sample.fx.context.xml
という名前で、META-INF/spring
ディレクトリにあります。
アプリケーションのプロセッサ・コンポーネントを構成する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
ディレクトリにあります。
PublishSummaryResults
httpパブリッシュ/サブスクライブ・アダプタを構成するXMLファイル。サンプルでは、このファイルはPubSubAdapterConfiguration.xml
という名前で、META-INF/wlevs
ディレクトリにあります。
アプリケーションのOutputBean
コンポーネント(ビジネス・ロジックを含むPOJO)を実装するJavaファイル。このPOJOは、受信したイベント(onEvent
メソッドでプログラミングされたもの)を画面に出力します。また、イベント・タイプ・リポジトリにForeignExchangeEvent
イベント・タイプを登録します。
サンプルでは、このファイルはOutputBean.java
という名前で、src/com/oracle/cep/sample/fx
ディレクトリにあります。
このPOJOで参照されているOracle Event Processing APIの詳細は、Oracle Fusion Middleware Oracle Event Processing Java APIリファレンスを参照してください。
Oracle Event ProcessingにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MF
ファイル。
サンプルでは、MANIFEST.MF
ファイルがMETA-INF
ディレクトリにあります。
このファイルの作成方法およびOracle Event ProcessingにデプロイするOSGiバンドルの作成方法の詳細は、23.1項「アプリケーションのアセンブリおよびデプロイメントの概要」を参照してください。
FXのサンプルでは、OSGiバンドルのコンパイル、アセンブル、およびデプロイにbuild.xml
Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xml
ファイルの詳細は、2.8.2項「ソース・ディレクトリからビルドおよびデプロイする外国為替取引のサンプル」を参照してください。
シグナル生成のサンプル・アプリケーションは、シミュレートされたマーケット・データを受信し、証券の価格変動が2%を超えたかどうかを検証します。このアプリケーションは、特定の銘柄の連続的な株価を追跡することにより、パターンの発生も検出します。以前を上回る価格が連続3回を超えた場合に、パターンと見なします。
図2-76に、シグナル生成サンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。
このアプリケーションでは、Oracle Event Processingロード・ジェネレータ・ユーティリティを使用してマーケット・データ・フィードをシミュレートします。このサンプルでは、ロード・ジェネレータは毎秒最大10,000個のメッセージを生成します。サンプルには、照合したイベントとレイテンシを表示するHTMLダッシュボードが含まれています。イベントは、銘柄記号、タイム・スタンプ、および価格で構成されます。
このサンプルは非常に短い待機時間を示し、スループットが高い状況では待機時間のジッタは最小限になります。アプリケーションの実行が開始されると、プロセッサは毎秒平均800個のメッセージを照合します。最小限の構成をしたシステムでアプリケーションを実行した場合、このサンプルは非常に短い平均待機時間(平均30 - 300マイクロ秒)と最小待機時間スパイク(数ミリ秒単位)を示します。
サンプルでは、ロード・ジェネレータで生成されたタイム・スタンプとOracle Event Processingのタイム・スタンプ間の差分に基づいてレイテンシ値を計算し、表示しています。有効なレイテンシを計算するには、ロード・ジェネレータを実行するコンピュータとOracle Event Processingを実行するコンピュータの間で、1ミリ秒のような非常に厳密なクロック同期が必要です。このため、ロード・ジェネレータとOracle Event Processingの両方を1台のマルチCPUコンピュータで実行し、共通のクロックを共有することをお薦めします。
サンプルでは、Oracle Event Processingイベント・キャッシング機能の使用方法も示されています。具体的には、EPNの単一のプロセッサからイベントBeanとキャッシュの両方にイベントが送信されます。
このサンプルはOracle CQL問合せの使用方法も示します。
最適なデモンストレーションの目的のためには、複数のCPUまたは3GHzのデュアル・コアIntelと最低限2GBのRAMを搭載した強力なコンピュータでこのサンプルを実行することをお薦めします。
signalgeneration_domain
ドメインには、単一のアプリケーションであるシグナル生成サンプル・アプリケーションが含まれています。シグナル生成アプリケーションを実行するには、ドメインのOracle Event Processingインスタンスを起動するだけです。
シグナル生成のサンプルを実行するには:
コマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\domains\signalgeneration_domain\defaultserver
にあるsignalgeneration_domain
ドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\domains\signalgeneration_domain\defaultserver
3.2項「開発環境の設定」に従って開発環境を設定します。
適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle Event Processingを起動します。
Windowsの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.cmd -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.cmd
UNIXの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.sh -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.sh
次のようなコンソール・メッセージが表示されるまで待機します。
<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 ...
これで、シグナル生成アプリケーションでデータ・フィードからデータを受信する準備ができました。
次は、データ・フィードをシミュレートするために、このサンプル用にプログラミングされたロード・ジェネレータを使用します。
新しいコマンド・ウィンドウを開きます。
MIDDLEWARE_HOME
\ocep_11.1\samples\domains\signalgeneration_domain\defaultserver\utils
ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:Oracle\Middleware
など)。
startDataFeed
コマンドを実行します。
Windowsの場合:
prompt> startDataFeed.cmd
UNIXの場合:
prompt> startDataFeed.sh
ブラウザを起動し、次のHTMLページを開いて、サンプルのダッシュボードを起動します。
http://host
:9002/signalgeneration/dashboard.html
host
は、Oracle Event Processingを実行しているコンピュータの名前に置き換えます。ブラウザと同じコンピュータである場合は、localhost
とすることができます。
ブラウザで、HTMLページの開始をクリックします。
図2-77に示すように、このサンプルに構成されているOracle CQLルールと一致するイベントの表示が開始します。
シグナル生成サンプルのソース・ディレクトリには、Javaソースと、シグナル生成アプリケーションを構成する他の必須のリソース(構成XMLファイル、EPNアセンブリ・ファイル、DOJOクライアントJavaScriptライブラリなど)が含まれます。build.xml
Antファイルには、アプリケーションをビルドしてsignalgeneration_domain
ドメインにデプロイするためのターゲットが含まれています(2.9.3項「シグナル生成をビルドするAntターゲットの説明」を参照)。
ソース・ディレクトリからシグナル生成のサンプルをビルドおよびデプロイするには:
シグナル生成のOracle Event Processingインスタンスがまだ実行されていない場合は、2.9.1項「シグナル生成のサンプルの実行」の手順に従ってサーバーを起動します。再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。
新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\signalgeneration
にあるシグナル生成ソース・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\source\applications\signalgeneration
3.2項「開発環境の設定」に従って開発環境を設定します。
all
Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。
prompt> ant all
deploy
Antターゲットを実行してアプリケーションJARファイルをMIDDLEWARE_HOME
\ocep_11.1\samples\domains\signalgeneration_domain\defaultserver\applications\signalgeneration
ディレクトリにデプロイします。
prompt> ant deploy
注意: このターゲットは、ドメイン・ディレクトリにある既存のシグナル生成アプリケーションJARファイルを上書きします。 |
シグナル生成アプリケーションで必要なロード・ジェネレータが実行されていない場合は、2.9.1項「シグナル生成のサンプルの実行」の説明に従って起動します。
2.9.1項「シグナル生成のサンプルの実行」の説明に従って、サンプルのダッシュボードを起動します。
シグナル生成サンプル・ソースの最上位レベル・ディレクトリにあるbuild.xml
ファイルには、アプリケーションをビルドおよびデプロイするための次のターゲットが含まれています。
clean
- このターゲットは、現在のディレクトリの下にあるdist
およびoutput
作業ディレクトリを削除します。
all
- このターゲットは、アプリケーションをクリーンアップしてコンパイルし、com.bea.wlevs.example.signalgen_11.1.1.4_0.jar
というJARファイルを生成し、生成したJARファイルを現在のディレクトリの下のdist
ディレクトリに格納します。
deploy
- このターゲットはDeployerユーティリティを使用してJARファイルをOracle Event Processingにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。
シグナル生成のサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Event Processing開発者ガイドfor Eclipse』のOracle Event Processingアプリケーションの標準的な作成手順に関する項に従って行われます。
標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。
シグナル生成のすべてのファイルは、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\signalgeneration
ディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(c:\Oracle\Middleware
など)。実際の環境でも、このサンプルのとおりのディレクトリ設定を使用することをお薦めします。ただし、これは必須条件ではありません。
シグナル生成のサンプルで使用されるファイルは次のとおりです。
アプリケーションの各コンポーネントと、すべてのコンポーネントの接続方法を記述したEPNアセンブリ・ファイル。
サンプルでは、このファイルはepn_assembly.xml
という名前で、META-INF/spring
ディレクトリにあります。
アプリケーションのプロセッサ・コンポーネントを構成するXMLファイル。このファイルはconfig.xml
という名前で、META-INF/wlevs
ディレクトリにあります。
config.xml
ファイルはprocessor1
というOracle CQLプロセッサを構成します。特に、証券の価格変動が2%を超えたかどうか、また価格においてトレンドが発生したかどうかを確認するOracle CQLルールを構成します。
アプリケーションのSignalgenOutputBean
コンポーネントすなわちビジネス・ロジックを含むPOJOを実装するJavaファイル。このPOJOは、HttpServlet
およびEventSink
です。このonEvent
メソッドは、PercentTick
およびTrendTick
イベント・インスタンスを使用して、待機時間を計算し、ダッシュボードの情報を表示します。
サンプルでは、このファイルはSignalgenOutputBean.java
という名前で、src/oracle/cep/example/signalgen
ディレクトリにあります。
イベント・シンクのプログラミングに関する一般情報については、16.2項「ソースおよびシンクでのイベントの処理」を参照してください。
Oracle Event ProcessingにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MF
ファイル。
サンプルでは、MANIFEST.MF
ファイルがMETA-INF
ディレクトリにあります。
このファイルの作成方法およびOracle Event ProcessingにデプロイするOSGiバンドルの作成方法の詳細は、23.1項「アプリケーションのアセンブリおよびデプロイメントの概要」を参照してください。
メインのサンプル・ディレクトリにあるdashboard.html
ファイル。このHTMLファイルは、実行中のシグナル生成アプリケーションのイベントと待機時間を表示するサンプル・ダッシュボードです。このHTMLファイルは、http://dojotoolkit.org/
のdojo
ディレクトリにあるDojo JavaScriptライブラリを使用します。
ForeignExchangeBuilderFactory
で参照されているOracle Event Processing APIの詳細は、Oracle Fusion Middleware Oracle Event Processing Java APIリファレンスを参照してください。
シグナル生成のサンプルでは、OSGiバンドルのコンパイル、アセンブリ、およびデプロイにbuild.xml
Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xml
ファイルの詳細は、2.9.2項「ソース・ディレクトリからビルドおよびデプロイするシグナル生成のサンプル」を参照してください。
記録と再生のサンプルは、1つのコンポーネントを構成してイベントをイベント・ストアに記録し、ネットワークの別のコンポーネントを構成してストアにあるイベントを再生する方法を示します。サンプルは、Oracle Event Processingで提供されるデフォルトのBerkeleyデータベースを使用してイベントを格納します。サンプルでは、イベント処理ネットワークのノードとしてパブリッシュ用HTTP pub-subアダプタを構成する方法も示します。
図2-78に、イベントの記録と再生のサンプルのイベント処理ネットワーク(EPN)を示します。EPNには、このアプリケーションを構成するコンポーネントが含まれ、コンポーネントの組合せが示されます。
このアプリケーションのイベント処理ネットワークには次の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 Event Processing HTTPパブリッシュ/サブスクライブ・サーバーの/playbackchannel
というチャネルにパブリッシュするパブリッシュ用HTTPパブリッシュ/サブスクライブ・アダプタ。
recplay_domain
ドメインには、記録と再生のサンプル・アプリケーションという単一のアプリケーションが含まれています。このアプリケーションを実行するには、次の手順の説明に従って、ドメインのOracle Event Processingのインスタンスを最初に起動します。
この後の手順では、Oracle Event Processing Visualizerを使用してsimpleEventSource
およびeventStream
コンポーネントでイベントの記録と再生をそれぞれ開始する方法を示しています。手順の最後では、Oracle Event Processing Visualizerを使用して、playbackHttpPublisher
アダプタによってチャネルにパブリッシュされるイベントのストリームを表示する方法を示しています。
イベントの記録/再生のサンプルを実行するには:
コマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\domains\recplay_domain\defaultserver
にあるrecplay_domain
ドメイン・ディレクトリのデフォルト・サーバー・ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\domains\recplay_domain\defaultserver
3.2項「開発環境の設定」に従って開発環境を設定します。
適切なスクリプトに正しいコマンド・ライン引数を指定して実行し、Oracle Event Processingを起動します。
Windowsの場合:
Oracle JRockit Real Timeに含まれるJRockit JDKを使用している場合は、コマンドに-dgc
パラメータを指定して確定的ガベージ・コレクタを有効にします。
prompt> startwlevs.cmd -dgc
Oracle JRockit Real Timeに含まれるJRockit JDKを使用しない場合
prompt> startwlevs.cmd
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 Event Processingサーバーが正しく起動され、simpleEventSource
コンポーネントがイベントを作成していることを示しています。
ブラウザで以下のURLを起動します。
http://host:port/wlevs
hostは、Oracle Event Processingが実行中のコンピュータ名を指します。portは、サーバーに構成されているJetty NetIOポートを指します(デフォルト値9002
)。
図2-79に示すように「ログオン」画面が表示されます。
図2-79 Oracle Event Processing Visualizerの「ログオン」画面
「ログオン」画面で、「ユーザーID」にwlevs
、「パスワード」にwlevs
を入力し、「ログイン」をクリックします。
図2-80に示すようにOracle Event Processing Visualizerダッシュボードが表示されます。
図2-80 Oracle Event Processing Visualizerダッシュボード
Oracle Event Processing Visualizerのユーザー・インタフェースの詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』のOracle Event Processing Visualizerユーザー・インタフェースの概要に関する項を参照してください。
左側のペインで、WLEventServerDomain→NonClusteredServer→「アプリケーション」→「Recplay」→「ステージ」→simpleEventSourceを選択します。
図2-81に示すように、右側のペインで「記録」タブを選択します。
DataSet Nameフィールドには、例2-1に示すように、simpleEventSource
アダプタ・アプリケーション構成ファイルMIDDLEWARE_HOME
\ocep_11.1\samples\domains\recplay_domain\defaultserver\applications\recplay\config.xml
のdataset-name
要素のrecord-parameters
子要素の値が含まれます。
例2-1 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>
「記録」タブの下の「開始」をクリックします。
図2-82に示すように「アラート」ダイアログが表示されます。
「OK」をクリックします。
現在のステータス・フィールドに記録中と表示されます。
「OK」をクリックするとすぐに、イベントがsimpleEventSource
コンポーネントから出力され始め、構成済のデータベースに格納されます。
「記録の開始」フィールドと「記録の停止」フィールドを使用すると、いつイベントを記録するかを構成できます。
左側のペインでeventStreamを選択します。
図2-83に示すように、右側のペインで「再生」タブを選択します。
タブの下の「開始」をクリックします。
図2-84に示すように「アラート」ダイアログが表示されます。
「OK」をクリックします。
現在のステータス・フィールドに再生中と表示されます。
「OK」をクリックするとすぐに、simpleEventSource
コンポーネントで記録されたイベントがsimpleStream
コンポーネントに再生されます。
Oracle Event Processingサーバーを起動したコマンド・ウィンドウに次のメッセージが表示され、元のイベントと再生イベントの両方がEPNをストリームしていることが通知されます。
SimpleEvent created at: 14:33:11.501 Played back: Original time=14:15:23.141 Playback time=14:33:11.657
再生されるイベントが記録される期間や再生速度などの再生パラメータをさらに構成できます。そのためには、適切なフィールドを更新し、パラメータの変更をクリックします。再生パラメータを変更した後、再生を再開する必要があります。
playbackHttpPublisher
アダプタがチャネルにパブリッシュしているイベントを表示するには、次のステップを実行します:
上のペインでViewstreamを選択します。
図2-85に示すようにViewstreamウィンドウが表示されます。
右側のペインで「クライアントの初期化」をクリックします。
「チャネルのサブスクライブ」テキスト・ボックスに/playbackchannel
と入力します。
「サブスクライブ」をクリックします。
「受信メッセージ」テキスト・ボックスに、再生されたイベントの詳細が表示されます。再生されたイベントは、イベントの作成時刻と再生時刻を示します。
記録と再生のサンプルのソース・ディレクトリには、Javaソースと、アプリケーションを構成する他の必須リソース(構成XMLファイル、EPNアセンブリ・ファイルなど)が含まれます。build.xml
Antファイルには、アプリケーションをビルドしてsignalgeneration_domainドメインにデプロイするためのターゲットが含まれています(2.10.3項「記録と再生をビルドするAntターゲットの説明」を参照)。
ソース・ディレクトリからイベントの記録/再生のサンプルをビルドおよびデプロイするには:
記録/再生のOracle Event Processingインスタンスがまだ実行されていない場合は、2.10.1項「イベントの記録/再生のサンプルの実行」の手順に従ってサーバーを起動します。再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。
新しいコマンド・ウィンドウを開き、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\recplay
にある記録/再生ディレクトリに移動します。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(d:\Oracle\Middleware
など)。
prompt> cd d:\Oracle\Middleware\ocep_11.1\samples\source\applications\recplay
3.2項「開発環境の設定」に従って開発環境を設定します。
all
Antターゲットを実行してアプリケーションをコンパイルし、JARファイルを作成します。
prompt> ant all
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
このメッセージは、記録と再生のサンプルが再デプロイされ、正しく実行されていることを示します。
2.10.1項「イベントの記録/再生のサンプルの実行」の手順(4以降)に従ってOracle Event Processing Visualizerを起動し、イベントの記録と再生を開始します。
記録/再生のソースの最上位レベル・ディレクトリにあるbuild.xml
ファイルには、アプリケーションをビルドおよびデプロイするための次のターゲットが含まれています。
clean
- このターゲットは、現在のディレクトリの下にあるdist
およびoutput
作業ディレクトリを削除します。
all
- このターゲットは、アプリケーションをクリーンアップしてコンパイルし、com.bea.wlevs.example.recplay_11.1.1.4_0.jar
というJARファイルを生成し、生成したJARファイルを現在のディレクトリ下のdist
ディレクトリに格納します。
deploy
- このターゲットはDeployerユーティリティを使用してJARファイルをOracle Event Processingにデプロイします。
詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。
シグナル生成のサンプルの実装は、通常は『Oracle Fusion Middleware Oracle Event Processing開発者ガイドfor Eclipse』のOracle Event Processingアプリケーションの標準的な作成手順に関する項に従って行われます。
標準的な開発プロセスが説明されているタスクごとの手順は、この項を参照してください。
サンプルのすべてのファイルは、MIDDLEWARE_HOME
\ocep_11.1\samples\source\applications\recplay
ディレクトリを基準にして相対的な場所にあります。MIDDLEWARE_HOME
はOracle Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(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ファイルのプログラミング方法の詳細な説明は、15.1項「カスタム・アダプタの概要」を参照してください。
PlayedBackEvent
およびSimpleEvent
イベント・タイプを記述するJavaソース・ファイル。SimpleEvent
イベント・タイプは、最初にアダプタによって生成されたイベントですが、PlayedBackEvent
イベント・タイプは、記録された後に再生されるイベントに対して使用します。PlayedBackEvents
は、SimpleEvent
とほぼ同じですが、イベントが記録された時刻を示す追加フィールドがあります。
サンプルでは、2つのイベントはSimpleEvent.java
およびPlayedBackEvent.java
という名前で、src/com/bea/wlevs/event/example/recplay
ディレクトリにあります。
このファイルの詳細な説明と、イベント・タイプのプログラミングの概要については、9.1項「Oracle Event Processingイベント・タイプの概要」を参照してください。
アプリケーションのrecplayEventSink
イベントBeanを実装するJavaファイルは、simpleEventSource
アダプタからリアル・タイム・イベントと再生イベントの両方を受け取るイベント・シンクです。
サンプルでは、このファイルはRecplayEventSink.java
という名前で、src/com/bea/wlevs/example/recplay
ディレクトリにあります。
イベント・ソースおよびシンクの詳細は、16.2項「ソースおよびシンクでのイベントの処理」を参照してください。
simpleEventSource
アダプタとeventStream
チャネル・コンポーネントを構成するXMLファイル。コンポーネントを指定する<record-parameters>
要素を含むアダプタは、イベントをイベント・ストアに記録します。同様に、チャネルには再生イベントを受け取るように指定する<playback-parameters>
要素が含まれます。
サンプルでは、このファイルはconfig.xml
という名前で、META-INF/wlevs
ディレクトリにあります。
Oracle Event ProcessingにデプロイされるOSGiバンドルのコンテンツを記述したMANIFEST.MF
ファイル。
サンプルでは、MANIFEST.MF
ファイルがMETA-INF
ディレクトリにあります。
このファイルの作成方法およびOracle Event ProcessingにデプロイするOSGiバンドルの作成方法の詳細は、23.1項「アプリケーションのアセンブリおよびデプロイメントの概要」を参照してください。
記録/再生のサンプルでは、OSGiバンドルのコンパイル、アセンブリ、およびデプロイにbuild.xml
Antファイルを使用します。開発環境でもAntを使用する場合、このbuild.xml
ファイルの詳細は、2.10.2項「ソース・ディレクトリからビルドおよびデプロイするイベントの記録/再生のサンプル」を参照してください。