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

前
 
次
 

25 ロード・ジェネレータおよびcsvgenアダプタを使用したアプリケーションのテスト

この章では、Oracle Complex Event Processing (Oracle CEP)アプリケーションをテストするために、付属のロード・ジェネレータおよびcsvgenアダプタを使用する方法について説明します。

25.1 ロード・ジェネレータおよびcsvgenアダプタを使用したアプリケーションのテストの概要

ロード・ジェネレータは、データ・フィードをシミュレートするためにOracle CEPで提供される単純なユーティリティです。このユーティリティは、実世界のデータ・フィードに接続する必要がないため、アプリケーションのOracle CQLまたはEPLルールをテストする際に役立ちます。

ロード・ジェネレータは、サンプルのデータ・フィード情報が含まれたASCIIファイルを読込み、構成されたポートに各データ項目を送信します。ロード・ジェネレータではサンプル・データ・ファイルの項目が順番に読み込まれ、チャネルに挿入されます。末尾まで達したらデータ・ファイルの先頭に戻ることを繰り返し、これによってファイル内のデータ項目数に関係なく、連続するデータ・ストリームを使用できることが保証されます。送信データの速度、開始時点の速度、最終的な速度、最終的な速度に達するまでの時間を構成できます。

アプリケーションでは、着信データを読み込む際に、独自のアダプタの代わりにOracle CEPで提供されるcsvgenアダプタを使用する必要があります。これは、csvgenアダプタがload generatorで生成されたデータ・パケットを復号化するよう特別にコーディングされているためです。

アプリケーションを再デプロイした場合は、ロード・ジェネレータも再起動する必要があります。

テストおよびデバッグの詳細は、5.4項「Oracle CEPサーバー上で実行されているOracle CEPアプリケーションのデバッグ」を参照してください。

25.2 ロード・ジェネレータ・ユーティリティの構成と実行

このプロシージャでは、ロード・ジェネレータ・ユーティリティの構成方法と実行方法について説明します。

ロード・ジェネレータ・ユーティリティを構成および実行するには:

  1. 必要に応じて、load generatorの特定の実行用の構成プロパティが含まれたプロパティ・ファイルを作成します。これらのプロパティでは、シミュレート・データが含まれたファイルの場所、ジェネレータがデータを供給するポートなどが指定されます。

    Oracle CEPにはデフォルトのプロパティ値が適切である場合に使用できる、デフォルトのプロパティ・ファイルが用意されています。

    25.3項「ロード・ジェネレータ・プロパティ・ファイルの作成」を参照してください。

  2. 実際のデータ・フィード値が含まれたファイルを作成します。

    25.4項「データ・フィード・ファイルの作成」を参照してください。

  3. ロード・ジェネレータで生成されたデータ・フィードが正常に読み込まれるようにcsvgenアダプタを構成します。Oracle CEPアプリケーションを記述するEPNアセンブリ・ファイルでアダプタを構成します。

    25.5項「アプリケーションのcsvgenアダプタの構成」を参照してください。

  4. イベント・タイプを作成するためのビルダー・ファクトリを必ず構成します。イベント・タイプのビルダー・ファクトリを指定するタスクは通常はオプションですが、load generatorを使用する場合には必須です。

    詳細は、第2章「イベント・タイプ・ビルダー・ファクトリの使用」を参照してください。

  5. 『Oracle Fusion Middleware Oracle Complex Event Processingスタート・ガイド』の開発環境の設定に関する項の説明に従って、コマンド・ウィンドウを開き、環境を設定します。

  6. ORACLE_CEP_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。ORACLE_CEP_HOMEは、d:\oracle_cep.などのOracle CEPのメイン・インストール・ディレクトリです。

  7. ステップ1で作成したプロパティ・ファイルを指定してロード・ジェネレータを実行し、シミュレートされたデータ・フィードを開始します。たとえば、プロパティ・ファイル名がc:\loadgen\myDataFeed.propの場合は、次のコマンドを実行します。

    prompt> runloadgen.cmd c:\loadgen\myDataFeed.prop
    

25.3 ロード・ジェネレータのプロパティ・ファイルの作成

load generatorでは構成にASCIIプロパティ・ファイルが使用されます。プロパティには、サンプルのデータ・フィード値が含まれたファイルの場所、ユーティリティがデータ・フィードを送信するポートなどがあります。

Oracle CEPで提供されるデフォルトのプロパティ・ファイルcsvgen.propは、ORACLE_CEP_HOME\ocep_11.1\utils\load-generatorディレクトリにあります。ORACLE_CEP_HOMEは、d:\oracle_cepなどのOracle CEPメイン・インストール・ディレクトリです。

ファイルの形式は単純で、プロパティと値の各ペアが各行に置かれます。次の例は、デフォルトのcsvgen.propファイルです。このファイルを独自のプロパティ・ファイルのテンプレートとして使用することをお薦めします。

  test.csvDataFile=test.csv
  test.port=9001
  test.packetType=CSV
  test.mode=client
  test.senders=1
  test.latencyStats=false
  test.statInterval=2000

注意:

独自のプロパティ・ファイルを作成する場合は、test.packetTypetest.modetest.senderstest.latencyStatsおよびtest.statIntervalの各プロパティを厳密に前述のとおりに含める必要があります。


前述のプロパティ・ファイルの例では、サンプル・データを含むファイルはtest.csvであり、プロパティ・ファイルと同じディレクトリにあります。ロード・ジェネレータによってポート9001にデータ・フィードが送信されます。

次の表に、プロパティ・ファイルで設定できる追加のプロパティを示します。

表25-1 ロード・ジェネレータのプロパティ

プロパティ 説明 データ型 必須?

test.csvDataFile

データ・フィード値が含まれたファイルを指定します。

String

はい

test.port

load generatorがデータ・フィードを送信するポート番号。

それぞれの入力アダプタは、25.5項「アプリケーションのcsvgenアダプタの構成」に示すとおり、そのtest.portに関連付けられます。

Integer

はい

test.secs

load generatorの秒単位の実行時間。

デフォルト値は30です。

Integer

いいえ

test.rate

最終データ速度(毎秒のメッセージ数単位)。

デフォルト値は1です。

Integer

いいえ

test.startRate

初期データ速度(毎秒のメッセージ数単位)。

デフォルト値は1です。

Integer

いいえ

test.rampUpSecs

test.startRateからtest.rateに増加するまでの秒数。

デフォルト値は0です。

Integer

いいえ


25.4 データ・フィード・ファイルの作成

ロード・ジェネレータ・データ・フィード・ファイルは、Oracle CEPアプリケーションに登録されたイベント・タイプに対応するサンプルのデータ・フィード値を含みます。

例25-1EmployeeEventを示し、例25-2はこのイベント・タイプに対応するロード・ジェネレータのデータ・フィード・ファイルを示します。

例25-1 EmployeeEventのイベント・タイプ

<wlevs:event-type-repository>
        <wlevs:event-type type-name="EmployeeEvent">
            <wlevs:properties>
                <wlevs:property name="name" type="char" />
                <wlevs:property name="age" type="int" />
                <wlevs:property name="birthplace" type="char" length="512" />
        </wlevs:properties>
    </wlevs:event-type>
...
</wlevs:event-type-repository>

例25-2 EmployeeEventイベント・タイプのデータ・フィード・ファイル

 Lucy,23,Madagascar
 Nick,44,Canada
 Amanda,12,Malaysia
 Juliet,43,Spain
 Horatio,80,Argentina

ロード・ジェネレータのデータ・フィード・ファイルの形式は簡単です。


注意:

ロード・ジェネレータはCSV仕様に完全には準拠していません(http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm)。


詳細は、「csvgenアダプタと使用するイベント・タイプ」を参照してください。

25.5 アプリケーションのcsvgenアダプタの構成

ロード・ジェネレータ・ユーティリティを使用する場合、Oracle CEPで提供されるcsvgenアダプタは、ロード・ジェネレータで生成されたデータ・パケットを読み込むように特別にコーディングされているため、アプリケーションではこのアダプタを使用する必要があります。

すべてのアダプタと同じように、アプリケーションのEPNアセンブリ・ファイルのwlevs:adapter要素を使用して、csvgenアダプタを登録します。独自のアダプタのかわりにcsvgenアダプタをプロバイダとして指定するために、provide属性をcsvgenに設定します。また、次の子タグを指定する必要があります。

アダプタの構成する方法を説明する前に、まず次に示すwlevs:metada要素を使用して、アプリケーションがEPNアセンブリ・ファイルに、PersonTypeと呼ばれるイベント・タイプを登録していると仮定します。

<wlevs:event-type-repository>
        <wlevs:event-type type-name="PersonType">
            <wlevs:properties>
               <wlevs:property name="name" type="char"/>
               <<wlevs:property name="age" type="int"/>
               <<wlevs:property name="birthplace" type="char"/>
            </wlevs:properties>
        </wlevs:event-type>
</wlevs:event-type-repository>

このイベント・タイプは25.4項「データ・フィード・ファイルの作成」で説明しているデータ・フィード・ファイルに対応しています。

このデータを受信するcsvgenアダプタを構成するには、次のwlevs:adapter要素を使用します。

<wlevs:adapter id="csvgenAdapter" provider="csvgen">
   <wlevs:instance-property name="port" value="9001"/>
   <wlevs:instance-property name="eventTypeName" value="PersonType"/>
   <wlevs:instance-property name="eventPropertyNames" value="name,age,birthplace"/>
</wlevs:adapter>

アダプタ構成の例に示す太字部分の値がPersonTypeイベント・タイプの登録にどのように対応しているかに注意してください。

イベント・タイプの登録でwlevs:class要素を使用して独自のJavaBeanを指定した場合、eventPropertyNames値はJavaBeanのプロパティに対応します。たとえば、JavaBeanにgetNameメソッドが含まれている場合、JavaBeanのプロパティの中の1つはnameになります。

イベント・タイプの詳細は、第2章「Oracle CEPイベント・タイプの作成」を参照してください。