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

前
 
次
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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
    

21.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にデータ・フィードが送信されます。

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

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

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

test.csvDataFile

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

String

はい

test.port

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

Integer

はい

test.secs

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

デフォルト値は30です。

Integer

いいえ

test.rate

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

デフォルト値は1です。

Integer

いいえ

test.startRate

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

デフォルト値は1です。

Integer

いいえ

test.rampUpSecs

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

デフォルト値は0です。

Integer

いいえ


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

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

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

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

例21-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アダプタと使用するイベント・タイプ」を参照してください。

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

このイベント・タイプは21.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になります。

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