ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Event Processing開発者ガイド
11gリリース1 (11.1.1.7) for Eclipse
B61654-06
  目次へ移動
目次

前
 
次
 

2 Oracle Event Processingサンプル

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

この章の内容は次のとおりです。

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

Oracle Event Processingには、次のサンプルがあります。

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

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

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

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

2.1.2 サンプル・ソース

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

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

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

Typicalオプションを使用してOracle Event Processingを以前にインストールした場合、サンプルをインストールし、Oracle Event Processingインストール・プロセスを再実行し、同じOracle Event Processingホーム・ディレクトリを指定することもできます。インストール・プロセスの後の手順を使用して、サンプルのみを次にインストールできます。

2.3 サンプルでのOracle Event Processing Visualizerの使用

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ユーザーズ・ガイド』を参照してください。

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

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

2.5 HelloWorldのサンプル

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

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

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

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

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

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

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

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

  1. コマンド・ウィンドウを開き、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
    
  2. サーバー起動スクリプトで環境が正しく設定されていることを確認します。

    詳細は、第3章「Oracle Event Processingアプリケーションの開発の開始」を参照してください。

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

    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.5.2 ソース・ディレクトリからビルドおよびデプロイするHelloWorldのサンプル

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

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

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

  1. helloworldのOracle Event Processingインスタンスがまだ実行されていない場合は、2.5.1項「helloworldドメインから実行するHelloWorldのサンプル」の手順に従ってサーバーを起動します。

    再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

  2. 新しいコマンド・ウィンドウを開き、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. 3.2項「開発環境の設定」に従って開発環境を設定します。

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

    prompt> ant all
    
  5. 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のサンプルが再デプロイされ、正しく実行されていることを示しています。

2.5.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 Event Processingにデプロイします。

    詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.5.4 HelloWorldのサンプルの実装

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のサンプル」を参照してください。

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

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

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

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

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

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


注意:

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


2.6.1 CQLのサンプルの実行

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

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

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

  1. コマンド・ウィンドウを開き、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
    
  2. 第3章「開発環境の設定」に従って開発環境を設定します。

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

    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. 欠落イベントの問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、第3章「Oracle Event Processingアプリケーションの開発の開始」の説明に従って環境を設定します。

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

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

    1. Windowsの場合:

      prompt> runloadgen.cmd orderData.prop
      
    2. UNIXの場合:

      prompt> runloadgen.sh orderData.prop
      
  7. 移動平均の問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、第3章「Oracle Event Processingアプリケーションの開発の開始」の説明に従って環境を設定します。

  8. MIDDLEWARE_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。MIDDLEWARE_HOMEはOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(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 Event Processing Visualizer Query Planの統計を有効にすると、データが流れていることを確認できます。

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

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

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

  1. CQLのOracle Event Processingインスタンスがまだ実行されていない場合は、2.6.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。

    再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

  2. 新しいコマンド・ウィンドウを開き、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. 3.2項「開発環境の設定」に従って開発環境を設定します。

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

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

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

    注意:

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


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

2.6.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 Event Processingにデプロイします。

    詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.6.4 CQLのサンプルの実装

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

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

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

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

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

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

イベント・タイプ 説明

C

顧客の注文

A

承認

S

出荷


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

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

イベント・タイプ 説明

C

顧客の注文

S

出荷


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

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

  1. CQLのOracle Event Processingインスタンスがまだ実行されていない場合は、2.6.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。

    Oracle Event Processing Visualizerを使用するには、サーバーが実行中である必要があります。

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

    http://host:port/wlevs
    

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

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

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

    図2-3の説明が続きます
    「図2-3 Oracle Event Processing Visualizerの「ログオン」画面」の説明

  3. 「ログオン」画面で、「ユーザーID」wlevs「パスワード」wlevsを入力し、「ログイン」をクリックします。

    図2-4に示すようにOracle Event Processing Visualizerダッシュボードが表示されます。

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

    図2-4の説明が続きます
    「図2-4 Oracle Event Processing Visualizerダッシュボード」の説明

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

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

  5. cqlノードを選択します。

    図2-5に示すようにCQLアプリケーション画面が表示されます。

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

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

  6. 「イベント処理ネットワーク」タブを選択します。

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

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

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

  7. Oracle CQLプロセッサorderProcessorのアイコンをダブルクリックします。

    図2-7に示すようにOracle CQLプロセッサ画面が表示されます。

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

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

  8. 「問合せウィザード」タブを選択します。

    図2-8に示すように「問合せウィザード」画面が表示されます。

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

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

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

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

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

  9. 「テンプレート」タブを選択します。

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

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

    図2-9の説明が続きます
    「図2-9 「テンプレート」タブ」の説明

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

  11. SSourceのアイコンをダブルクリックします。

    図2-10に示すようにSSourceの構成ダイアログが表示されます。

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

    図2-10の説明が続きます
    「図2-10 SSourceの構成ダイアログ」の説明

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

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

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

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

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

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

  15. 「パターン」アイコンをダブルクリックします。

    図2-11に示すようにパターンの構成ダイアログが表示されます。

    図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 Event Processing CQL言語リファレンス』のPATTERN条件に関する項

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

  17. 「パーティション基準」プルダウン・メニューからorderidを選択し、プラス記号ボタンをクリックしてこのプロパティをPARTITION BY句に追加します。

    これで、Oracle Event Processingが各注文について欠落イベントの問合せを検証するようになります。

  18. 別名フィールドにOrdersと入力します。

    これで、パターンの別名(Orders)が割り当てられ、後から問合せで使用するときに便利です。

  19. 「定義」タブをクリックします。

    図2-12に示すように「定義」タブが表示されます。

    図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の説明が続きます
    「図2-13 式ビルダー: CustOrder」の説明

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

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

    図2-14に示すように条件定義がオブジェクト・リストに追加されます。

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

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

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

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

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

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

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

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

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

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

    図2-15 式ビルダー: NoApproval

    図2-15の説明が続きます
    「図2-15 式ビルダー: NoApproval」の説明

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

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

    条件定義がオブジェクト・リストに追加されます。

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

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

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

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

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

    図2-16 式ビルダー: Shipment

    図2-16の説明が続きます
    「図2-16 式ビルダー: Shipment」の説明

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

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

    図2-17に示すように「定義」タブが表示されます。

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

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

  32. 「メジャー」タブをクリックします。

    図2-18に示すように「メジャー」タブが表示されます。

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

    図2-18の説明が続きます
    「図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条件に関する項

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

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

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

    図2-19 式ビルダー: orderid

    図2-19の説明が続きます
    「図2-19 式ビルダー: orderid」の説明

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

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

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

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

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

    図2-20 式ビルダー: amount

    図2-20の説明が続きます
    「図2-20 式ビルダー: amount」の説明

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

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

    図2-21に示すように「メジャー」タブが表示されます。

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

    図2-21の説明が続きます
    「図2-21 「メジャー」タブ: 完了」の説明

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

  42. 選択アイコンをダブルクリックします。

    図2-22に示すように選択の構成画面が表示されます。

    図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の説明が続きます
    「図2-23 選択の構成ダイアログ: 「プロジェクト」タブの完了」の説明

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

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

  52. 「出力」アイコンをダブルクリックします。

    図2-24に示すように出力の構成ダイアログが表示されます。

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

    図2-24の説明が続きます
    「図2-24 出力の構成ダイアログ」の説明

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

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

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

  54. 「ルールのインジェクト」をクリックします。

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

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

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

  55. 「OK」をクリックします。

    問合せウィザードによってルールがcqlProcプロセッサに追加されます。

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

  57. 「CQLルール」タブをクリックします。

    図2-26に示すように「CQLルール」タブが表示されます。

  58. 「問合せ」ラジオ・ボタンをクリックします。

    Tracking問合せが存在していることを確認します。

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

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

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

  1. 欠落イベントの問合せのデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、第3章「Oracle Event Processingアプリケーションの開発の開始」の説明に従って環境を設定します。

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

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

    1. Windowsの場合:

      prompt> runloadgen.cmd orderData.prop
      
    2. UNIXの場合:

      prompt> runloadgen.sh orderData.prop
      
  4. Oracle Event Processing Visualizerで上のペインの「ストリームの表示」ボタンをクリックします。

    図2-27に示すように「ストリーム・ビジュアライザ」画面が表示されます。

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

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

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

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

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

  8. 「サブスクライブ」をクリックします。

    欠落イベントが検出されると、Oracle Event Processingによって「受信メッセージ」領域が更新され、生成されたAlertEventsが表示されます。

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

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

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

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

  1. CQLのOracle Event Processingインスタンスがまだ実行されていない場合は、2.6.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。

    Oracle Event Processing Visualizerを使用するには、サーバーが実行中である必要があります。

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

    http://host:port/wlevs
    

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

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

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

    図2-28の説明が続きます
    「図2-28 Oracle Event Processing Visualizerの「ログオン」画面」の説明

  3. 「ログオン」画面で、「ユーザーID」wlevs「パスワード」wlevsを入力し、「ログイン」をクリックします。

    図2-29に示すようにOracle Event Processing Visualizerダッシュボードが表示されます。

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

    図2-29の説明が続きます
    「図2-29 Oracle Event Processing Visualizerダッシュボード」の説明

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

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

  5. cqlノードを選択します。

    図2-30に示すようにCQLアプリケーション画面が表示されます。

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

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

  6. 「イベント処理ネットワーク」タブを選択します。

    図2-31に示すように「イベント処理ネットワーク」画面が表示されます。

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

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

  7. Oracle CQLプロセッサstockProcessorのアイコンをダブルクリックします。

    図2-32に示すようにOracle CQLプロセッサ画面が表示されます。

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

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

  8. 「問合せウィザード」タブを選択します。

    図2-33に示すように「問合せウィザード」画面が表示されます。

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

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

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

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

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

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

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

    図2-34の説明が続きます
    「図2-34 問合せウィザード: SSource」の説明

  10. SSourceのアイコンをダブルクリックします。

    SSourceの構成画面が表示されます。

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

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

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

      ビューのソースはstockChannelストリームになります。

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

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

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

    図2-35の説明が続きます
    「図2-35 SSourceの構成ダイアログ」の説明

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

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

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

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

    次は、Oracle CQLフィルタを追加します。

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

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

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

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

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

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

  18. 「フィルタ」アイコンをダブルクリックします。

    図2-38に示すようにフィルタの構成ダイアログが表示されます。

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

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

  19. 「式ビルダー」ボタンをクリックします。

    「式ビルダー」ダイアログが表示されます。

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

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

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

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

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

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

      図2-39の説明が続きます
      「図2-39 フィルタの式ビルダー」の説明

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

  22. 「フィルタの追加」をクリックします。

    図2-40に示すように、問合せウィザードによって「生成されたCQL文」にこの式が追加されます。

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

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

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

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

    次は、select文を追加します。

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

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

    図2-41の説明が続きます
    「図2-41 問合せウィザード: 選択」の説明

  26. 「フィルタ」アイコンをクリックして選択アイコンにドラッグし、Oracle CQL構文を接続します。

  27. 選択アイコンをダブルクリックします。

    選択の構成画面が表示されます。

    pricesymbolおよびvolumeStockVolGt1000ストリームから選択します。

  28. 選択を次のように構成します。

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

    • priceプロパティを選択し、プラス記号ボタンをクリックします。

      問合せウィザードによって、プロパティが「生成されたCQL文」に追加されます。

    • symbolプロパティとvolumeプロパティについても繰り返します。

    図2-42に示すように選択の構成ダイアログが表示されます。

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

    図2-42の説明が続きます
    「図2-42 選択の構成ダイアログ: プロパティの選択」の説明

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

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

    最後に出力を追加します。

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

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

    図2-43の説明が続きます
    「図2-43 問合せウィザード: 出力」の説明

  32. 選択アイコンをクリックして「出力」アイコンにドラッグし、Oracle CQL構文を接続します。

  33. 「出力」アイコンをダブルクリックします。

    出力の構成画面が表示されます。

  34. 出力を次のように構成します(図2-44)。

    • 「ビュー」を選択します。

    • 「ビュー名」StockVolGt1000を構成します。

    • 「スキーマの表示」フィールドの内容を削除します。

      Oracle Event Processingサーバーによってビュー・スキーマが定義されます。

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

      図2-44の説明が続きます
      「図2-44 出力の構成ダイアログ」の説明

  35. 「ルールのインジェクト」をクリックします。

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

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

    図2-45の説明が続きます
    「図2-45 ルールのインジェクトの「確認」ダイアログ」の説明

  36. 「OK」をクリックします。

    問合せウィザードによってルールがcqlProcプロセッサに追加されます。

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

  38. 「CQLルール」タブをクリックします。

    図2-46に示すように「CQLルール」タブが表示されます。

  39. 「ビュー」ラジオ・ボタンをクリックします。

    StockVolGt1000ビューが存在していることを確認します。

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

    図2-46の説明が続きます
    「図2-46 ビューStockVolGt1000を含む「CQLルール」タブ」の説明

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

  1. CQLのOracle Event Processingインスタンスがまだ実行されていない場合は、2.6.1項「CQLのサンプルの実行」の手順に従ってサーバーを起動します。

    Oracle Event Processing Visualizerを使用するには、サーバーが実行中である必要があります。

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

    http://host:port/wlevs
    

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

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

    図2-47 Oracle Event Processing Visualizerの「ログオン」画面

    図2-47の説明が続きます
    「図2-47 Oracle Event Processing Visualizerの「ログオン」画面」の説明

  3. 「ログオン」画面で、「ユーザーID」wlevs「パスワード」wlevsを入力し、「ログイン」をクリックします。

    図2-48に示すようにOracle Event Processing Visualizerダッシュボードが表示されます。

    図2-48 Oracle Event Processing Visualizerダッシュボード

    図2-48の説明が続きます
    「図2-48 Oracle Event Processing Visualizerダッシュボード」の説明

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

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

  5. cqlノードを選択します。

    図2-49に示すようにCQLアプリケーション画面が表示されます。

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

    図2-49の説明が続きます
    「図2-49 CQLアプリケーション画面: 「全般」タブ」の説明

  6. 「イベント処理ネットワーク」タブを選択します。

    図2-50に示すように「イベント処理ネットワーク」画面が表示されます。

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

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

  7. Oracle CQLプロセッサstockProcessorのアイコンをダブルクリックします。

    図2-51に示すようにOracle CQLプロセッサ画面が表示されます。

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

    図2-51の説明が続きます
    「図2-51 Oracle CQLプロセッサ: 「全般」タブ」の説明

  8. 「問合せウィザード」タブを選択します。

    図2-52に示すように「問合せウィザード」画面が表示されます。最近このプロセッサに対する問合せを作成または編集している場合は、その問合せが問合せウィザードのキャンバスに表示される可能性があります。それ以外の場合、キャンバスは空白になります。

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

    図2-52の説明が続きます
    「図2-52 Oracle CQLプロセッサ: 「問合せウィザード」タブ」の説明

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

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

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

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

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

    図2-53の説明が続きます
    「図2-53 問合せウィザード: 移動平均問合せのSSource」の説明

  10. SSourceのアイコンをダブルクリックします。

    SSourceの構成画面が表示されます。

  11. SSourceダイアログを次のように構成します(図2-54)。

    • 「タイプ」として「ビュー」を選択します。

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

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

    図2-54の説明が続きます
    「図2-54 SSourceの構成ダイアログ: 移動平均問合せ」の説明

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

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

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

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

    図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の説明が続きます
    「図2-56 ウィンドウの構成ダイアログ: ウィンドウの追加後」の説明

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

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

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

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

    図2-57の説明が続きます
    「図2-57 問合せウィザード: 移動平均問合せの選択」の説明

  22. ウィンドウ・アイコンをクリックして選択アイコンにドラッグし、Oracle CQL構文を接続します。

  23. 選択アイコンをダブルクリックします。

    選択の構成画面が表示されます。

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

    これは、前に作成した移動平均問合せのビューのソースです(「移動平均問合せのビュー・ソースを作成するには:」を参照してください)。

  25. ターゲット・イベント・タイププルダウン・メニューからMovingAvgEventを選択します。

    これは、移動平均問合せによって生成される出力イベントです。ソース・イベントからこの出力イベントにプロパティをマップします。

  26. 「ソースのプロパティ」リストからsymbolを選択します。

    図2-58に示すように、選択したソース・プロパティが「プロジェクト式」に追加されます。

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

    図2-58の説明が続きます
    「図2-58 選択の構成ダイアログ: ソース・プロパティsymbolの選択」の説明

    このケースでは、ソース・プロパティsymbolを出力イベント・プロパティsymbolにそのままマップします。

  27. 「AS」フィールドの横のプルダウン・メニューをクリックし、symbolを選択します。

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

    図2-59に示すように、このソース・プロパティが「生成されたCQL文」のプロジェクト式に追加されます。

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

    図2-59の説明が続きます
    「図2-59 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティsymbol」の説明

  29. 「ソースのプロパティ」リストからpriceを選択します。

    図2-60に示すように、選択したソース・プロパティが「プロジェクト式」に追加されます。

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

    図2-60の説明が続きます
    「図2-60 選択の構成ダイアログ: ソース・プロパティpriceの選択」の説明

    このケースでは、ソース・プロパティpriceを処理した後で出力イベントにマップします。

  30. 「式ビルダー」ボタンをクリックします。

    「式ビルダー」ダイアログが表示されます。

  31. 「関数タイプの選択」プルダウン・メニューで「集計関数」を選択します。

    Oracle CQLで提供される集計関数のリストが表示されます。AVG関数を使用します。

  32. 「式ビルダー」フィールドでStockVolGt1000.priceを選択します。

  33. AVG関数をダブルクリックします。

    図2-61に示すように、「式ビルダー」フィールドで選択した部分がAVG()関数によって囲まれます。

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

    図2-61の説明が続きます
    「図2-61 式ビルダー: AVG関数の適用」の説明

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

    図2-62に示すように、式が「プロジェクト式」フィールドに追加されます。

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

    図2-62の説明が続きます
    「図2-62 選択の構成ダイアログ: 式を含む」の説明

  35. 「AS」フィールドの横のプルダウン・メニューをクリックし、movingAvgPriceを選択します。

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

    図2-63に示すように、このソース・プロパティが「生成されたCQL文」のプロジェクト式に追加されます。

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

    図2-63の説明が続きます
    「図2-63 選択の構成ダイアログ: 出力イベント・プロパティにマップされたソース・プロパティprice」の説明

  37. 「検証」をクリックします。

    図2-64に示すように検証エラー・ダイアログが表示されます。

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

    図2-64の説明が続きます
    「図2-64 検証エラー: GROUP BY」の説明

    パーティションを使用しているため、GROUP BY句を指定する必要があります。

  38. 「グループ」タブを選択します。

    「グループ」タブが表示されます。

  39. 「グループ」タブを次のように構成します(図2-65)。

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

    • 「プロパティ」リストからsymbolを選択します。

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

    図2-65に示すようにsymbolプロパティがGROUP BY句に追加されます。

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

    図2-65の説明が続きます
    「図2-65 「グループ」タブ: グループ化プロパティsymbolを含む」の説明

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

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

    次は、問合せを出力に結び付けます。

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

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

    図2-66の説明が続きます
    「図2-66 問合せウィザード: 出力」の説明

  43. 選択アイコンをクリックして「出力」アイコンにドラッグし、Oracle CQL構文を接続します。

  44. 「出力」アイコンをダブルクリックします。

    出力の構成画面が表示されます。

  45. 出力を次のように構成します(図2-67)。

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

    • 「問合せ名」としてMovingAverageと入力します。

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

    図2-67の説明が続きます
    「図2-67 出力の構成ダイアログ」の説明

  46. 「ルールのインジェクト」をクリックします。

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

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

    図2-68の説明が続きます
    「図2-68 ルールのインジェクトの「確認」ダイアログ」の説明

  47. 「OK」をクリックします。

    問合せウィザードによってルールがcqlProcプロセッサに追加されます。

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

  49. 「CQLルール」タブをクリックします。

    図2-69に示すように「CQLルール」タブが表示されます。

  50. 「問合せ」ラジオ・ボタンをクリックします。

    MovingAverage問合せが存在していることを確認します。

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

    図2-69の説明が続きます
    「図2-69 ビューMovingAverageを含む「CQLルール」タブ」の説明

移動平均問合せをテストするには:

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

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

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

    1. Windowsの場合:

      prompt> runloadgen.cmd stockData.prop
      
    2. UNIXの場合:

      prompt> runloadgen.sh stockData.prop
      
  4. Oracle Event Processing Visualizerで上のペインの「ストリームの表示」ボタンをクリックします。

    図2-70に示すように「ストリーム・ビジュアライザ」画面が表示されます。

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

    図2-70の説明が続きます
    「図2-70 ストリーム・ビジュアライザ: 移動平均問合せの出力表示」の説明

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

  6. 「クライアントの初期化」フィールドに/stockmovingと入力します。

  7. 「サブスクライブ」をクリックします。

    移動平均問合せによってイベントが出力されると、Oracle Event Processingによって「受信メッセージ」領域が更新され、生成されたイベントが表示されます。

2.7 Oracle Spatialサンプル

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

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

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

図2-71の説明が続きます
「図2-71 Oracle Spatialサンプルのイベント処理ネットワーク」の説明

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


注意:

データ・カートリッジの詳細は、次を参照してください:

  • 『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のデータ・カートリッジの概要に関する項

  • 『Oracle Fusion Middleware Oracle Event Processing CQL言語リファレンス』のOracle Spatialに関する項


2.7.1 Oracle Spatialサンプルの実行

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

Oracle Spatialサンプルをspatial_domainドメインから実行するには:

  1. コマンド・ウィンドウを開き、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
    
  2. サーバー起動スクリプトで環境が正しく設定されていることを確認します。

    詳細は、第3章「Oracle Event Processingアプリケーションの開発の開始」を参照してください。

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

    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 Event Processingの制約ではありません。


    Oracle SpatialサンプルのWebページが、図2-72のように表示されます。

    図2-72 Oracle SpatialのWebページ

    図2-72の説明が続きます
    「図2-72 Oracle SpatialのWebページ」の説明

    バス停到着タブをクリックすると、図2-73に示すようにバス停の到着データが表示されます。

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

    図2-73の説明が続きます
    「図2-73 Oracle SpatialのWebページ: バス停到着タブ」の説明

  5. Oracle Event Processingロード・ジェネレータを実行して、サンプル・データを生成します。

    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の説明が続きます
    「図2-74 Oracle SpatialのWebページ: バスの追跡」の説明

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

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

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

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

  1. spatial_domainのOracle Event Processingインスタンスがまだ実行されていない場合は、2.7.1項「Oracle Spatialサンプルの実行」の手順に従ってサーバーを起動します。

    再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

  2. 新しいコマンド・ウィンドウを開き、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. 3.2項「開発環境の設定」に従って開発環境を設定します。

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

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

    prompt> ant -Daction=update deploy
    

    注意:

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


2.7.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 Event Processingにデプロイします。

    詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.7.4 Oracle Spatialサンプルの実装

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サンプル」を参照してください。

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

外国為替取引のサンプル(簡単にFXと呼びます)は、複数のデータ・フィードから読み込んだ情報を処理するために複数のプロセッサを使用しているので、HelloWorldのサンプルよりも複雑です。FXのサンプルでは、Oracle Event Processingロード・ジェネレータ・ユーティリティを使用してデータ・フィードをシミュレートします。

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

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

図2-75の説明が続きます
「図2-75 FXサンプルのイベント処理ネットワーク」の説明

このシナリオでは、ロード・ジェネレータを使用してシミュレートした3つのデータ・フィードにより、世界各地から定数の値のペアが送信されます。値のペアは通貨を組み合せたもので、たとえばUSDEURは米ドルと欧州ユーロの組合せを表します。値のペアと共に2つの通貨間の為替レートも送信されます。fxMarketAmerfxMarketAsiaおよびfxMarketEuroの各アダプタはフィードからデータを受信し、受信したデータをイベントに変換して、対応するFilterAmerFilterAsiaおよびFilterEuroの各プロセッサに渡します。各プロセッサは、初期期限切れチェックを実行し、発生からの経過時間が1秒を超えているイベントがないことを確認します。さらに境界チェックを実行し、2つの通貨間の為替レートが現在の境界の範囲内にあることを確認します。プロセッサは、特定のチャネルから特定の通貨のペアのみを選択します。たとえば、シミュレートされた米国のデータ・フィードからはUSDEURを選択し、USDAUD(オーストラリア・ドル)などの他のすべてのペアを拒否します。

各データ・フィード・プロバイダからのデータがこの初期準備フェーズを通過すると、FindCrossRateという別のプロセッサが、すべてのプロバイダのすべてのイベントを結合し、最大レートと最小レートの中間点を計算して、トレーダが指定したスプレッドを適用します。最後に、プロセッサはビジネス・コードを含むPOJOにレートを転送します。このサンプルでは、POJOは単純にレートをクライアントにパブリッシュします。

Oracle Event Processingモニターは、直前のステップのイベント待機時間が特定のしきい値を超えていないか(たとえば、30秒という時間内に更新されたレートがないか)、また同じ通貨のペアで2つの連続的なレート間の偏差が大きすぎないかを監視するように構成されています。最後に、通貨の各ペアの直前のレートがOracle Event Processing httpパブリッシュ/サブスクライブ・サーバーに転送されます。

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

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

外国為替取引(FX)アプリケーションはfx_domainドメインにあらかじめデプロイされています。このアプリケーションを実行するには、ただOracle Event Processingのインスタンスを起動します。

外国為替取引のサンプルを実行するには:

  1. コマンド・ウィンドウを開き、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
    
  2. 3.2項「開発環境の設定」に従って開発環境を設定します。

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

    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. 米国のデータ・フィードをシミュレートするには、新しいコマンド・ウィンドウを開き、3項「Oracle Event Processingアプリケーションの開発の開始」の説明に従って環境を設定します。

  5. MIDDLEWARE_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。MIDDLEWARE_HOMEはOracle Event Processingをインストールした際に指定したミドルウェア・ディレクトリです(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.8.2 ソース・ディレクトリからビルドおよびデプロイする外国為替取引のサンプル

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

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

  1. FXのOracle Event Processingインスタンスがまだ実行されていない場合は、2.8.1項「外国為替取引のサンプルの実行」の手順に従ってサーバーを起動します。

    再ビルドしたアプリケーションを正常にデプロイするには、サーバーが実行中である必要があります。

  2. 新しいコマンド・ウィンドウを開き、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. 3.2項「開発環境の設定」に従って開発環境を設定します。

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

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

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

    注意:

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


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

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

    {crossRate=USDJPY, internalPrice=119.09934499999781}, {crossRate=USDGBP, internalPrice=0.5031949999999915}, {crossRate=USDJPY, internalPrice=117.73945624999783}
    

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

2.8.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 Event Processingにデプロイします。

    詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

2.8.4 FXのサンプルの実装

外国為替取引(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ファイルは、filterAmerfilterAsiafilterEuroおよび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.9 シグナル生成のサンプル

シグナル生成のサンプル・アプリケーションは、シミュレートされたマーケット・データを受信し、証券の価格変動が2%を超えたかどうかを検証します。このアプリケーションは、特定の銘柄の連続的な株価を追跡することにより、パターンの発生も検出します。以前を上回る価格が連続3回を超えた場合に、パターンと見なします。

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

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

図2-76の説明が続きます
「図2-76 シグナル生成サンプルのイベント処理ネットワーク」の説明

このアプリケーションでは、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問合せの使用方法も示します。

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

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

signalgeneration_domainドメインには、単一のアプリケーションであるシグナル生成サンプル・アプリケーションが含まれています。シグナル生成アプリケーションを実行するには、ドメインのOracle Event Processingインスタンスを起動するだけです。

シグナル生成のサンプルを実行するには:

  1. コマンド・ウィンドウを開き、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
    
  2. 3.2項「開発環境の設定」に従って開発環境を設定します。

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

    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 Event Processingをインストールした際に指定したミドルウェア・ホーム・ディレクトリです(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 Event Processingを実行しているコンピュータの名前に置き換えます。ブラウザと同じコンピュータである場合は、localhostとすることができます。

  9. ブラウザで、HTMLページの開始をクリックします。

    図2-77に示すように、このサンプルに構成されているOracle CQLルールと一致するイベントの表示が開始します。

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

    図2-77の説明が続きます
    「図2-77 シグナル生成のダッシュボード」の説明

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

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

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

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

  2. 新しいコマンド・ウィンドウを開き、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. 3.2項「開発環境の設定」に従って開発環境を設定します。

  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.9.1項「シグナル生成のサンプルの実行」の説明に従って起動します。

  7. 2.9.1項「シグナル生成のサンプルの実行」の説明に従って、サンプルのダッシュボードを起動します。

2.9.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 Event Processingにデプロイします。

    詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

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

シグナル生成のサンプルの実装は、通常は『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項「ソース・ディレクトリからビルドおよびデプロイするシグナル生成のサンプル」を参照してください。

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

記録と再生のサンプルは、1つのコンポーネントを構成してイベントをイベント・ストアに記録し、ネットワークの別のコンポーネントを構成してストアにあるイベントを再生する方法を示します。サンプルは、Oracle Event Processingで提供されるデフォルトのBerkeleyデータベースを使用してイベントを格納します。サンプルでは、イベント処理ネットワークのノードとしてパブリッシュ用HTTP pub-subアダプタを構成する方法も示します。

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

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

図2-78の説明が続きます
「図2-78 イベントの記録と再生のサンプルのイベント処理ネットワーク」の説明

このアプリケーションのイベント処理ネットワークには次の4つのコンポーネントが含まれています。

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

recplay_domainドメインには、記録と再生のサンプル・アプリケーションという単一のアプリケーションが含まれています。このアプリケーションを実行するには、次の手順の説明に従って、ドメインのOracle Event Processingのインスタンスを最初に起動します。

この後の手順では、Oracle Event Processing Visualizerを使用してsimpleEventSourceおよびeventStreamコンポーネントでイベントの記録と再生をそれぞれ開始する方法を示しています。手順の最後では、Oracle Event Processing Visualizerを使用して、playbackHttpPublisherアダプタによってチャネルにパブリッシュされるイベントのストリームを表示する方法を示しています。

イベントの記録/再生のサンプルを実行するには:

  1. コマンド・ウィンドウを開き、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
    
  2. 3.2項「開発環境の設定」に従って開発環境を設定します。

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

    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 Event Processingサーバーが正しく起動され、simpleEventSourceコンポーネントがイベントを作成していることを示しています。

  4. ブラウザで以下のURLを起動します。

    http://host:port/wlevs
    

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

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

    図2-79 Oracle Event Processing Visualizerの「ログオン」画面

    図2-79の説明が続きます
    「図2-79 Oracle Event Processing Visualizerの「ログオン」画面」の説明

  5. 「ログオン」画面で、「ユーザーID」wlevs「パスワード」wlevsを入力し、「ログイン」をクリックします。

    図2-80に示すようにOracle Event Processing Visualizerダッシュボードが表示されます。

    図2-80 Oracle Event Processing Visualizerダッシュボード

    図2-80の説明が続きます
    「図2-80 Oracle Event Processing Visualizerダッシュボード」の説明

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

  6. 左側のペインで、WLEventServerDomainNonClusteredServer「アプリケーション」「Recplay」「ステージ」simpleEventSourceを選択します。

  7. 図2-81に示すように、右側のペインで「記録」タブを選択します。

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

    図2-81の説明が続きます
    「図2-81 イベントの「記録」タブ」の説明

    DataSet Nameフィールドには、例2-1に示すように、simpleEventSourceアダプタ・アプリケーション構成ファイルMIDDLEWARE_HOME\ocep_11.1\samples\domains\recplay_domain\defaultserver\applications\recplay\config.xmldataset-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>
    
  8. 「記録」タブの下の「開始」をクリックします。

    図2-82に示すように「アラート」ダイアログが表示されます。

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

    図2-82の説明が続きます
    「図2-82 記録開始の「アラート」ダイアログ」の説明

  9. 「OK」をクリックします。

    現在のステータス・フィールドに記録中と表示されます。

    「OK」をクリックするとすぐに、イベントがsimpleEventSourceコンポーネントから出力され始め、構成済のデータベースに格納されます。

    「記録の開始」フィールドと「記録の停止」フィールドを使用すると、いつイベントを記録するかを構成できます。

  10. 左側のペインでeventStreamを選択します。

  11. 図2-83に示すように、右側のペインで「再生」タブを選択します。

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

    図2-83の説明が続きます
    「図2-83 イベントの「再生」タブ」の説明

  12. タブの下の「開始」をクリックします。

    図2-84に示すように「アラート」ダイアログが表示されます。

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

    図2-84の説明が続きます
    「図2-84 再生開始の「アラート」ダイアログ」の説明

  13. 「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
    

    再生されるイベントが記録される期間や再生速度などの再生パラメータをさらに構成できます。そのためには、適切なフィールドを更新し、パラメータの変更をクリックします。再生パラメータを変更した後、再生を再開する必要があります。

  14. playbackHttpPublisher アダプタがチャネルにパブリッシュしているイベントを表示するには、次のステップを実行します:

    1. 上のペインでViewstreamを選択します。

      図2-85に示すようにViewstreamウィンドウが表示されます。

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

      図2-85の説明が続きます
      「図2-85 ストリーム・ビジュアライザ」の説明

    2. 右側のペインで「クライアントの初期化」をクリックします。

    3. 「チャネルのサブスクライブ」テキスト・ボックスに/playbackchannelと入力します。

    4. 「サブスクライブ」をクリックします。

    「受信メッセージ」テキスト・ボックスに、再生されたイベントの詳細が表示されます。再生されたイベントは、イベントの作成時刻と再生時刻を示します。

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

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

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

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

  2. 新しいコマンド・ウィンドウを開き、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. 3.2項「開発環境の設定」に従って開発環境を設定します。

  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.10.1項「イベントの記録/再生のサンプルの実行」の手順(4以降)に従ってOracle Event Processing Visualizerを起動し、イベントの記録と再生を開始します。

2.10.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 Event Processingにデプロイします。

    詳細は、『Oracle Fusion Middleware Oracle Event Processing管理者ガイド』のDeployerコマンドライン・リファレンスに関する項を参照してください。

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

シグナル生成のサンプルの実装は、通常は『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項「ソース・ディレクトリからビルドおよびデプロイするイベントの記録/再生のサンプル」を参照してください。