この章では、Oracle Event Processingアプリケーションをテストするために、付属のロード・ジェネレータおよびcsvgenアダプタを使用する方法について説明します。
この章の内容は次のとおりです。
ロード・ジェネレータは、データ・フィードをシミュレートするためにOracle Event Processingで提供される単純なユーティリティです。このユーティリティは、実世界のデータ・フィードに接続する必要がないため、アプリケーションのOracle CQLまたはEPLルールをテストする際に役立ちます。
ロード・ジェネレータは、サンプルのデータ・フィード情報が含まれたASCIIファイルを読込み、構成されたポートに各データ項目を送信します。ロード・ジェネレータではサンプル・データ・ファイルの項目が順番に読み込まれ、チャネルに挿入されます。末尾まで達したらデータ・ファイルの先頭に戻ることを繰り返し、これによってファイル内のデータ項目数に関係なく、連続するデータ・ストリームを使用できることが保証されます。送信データの速度、開始時点の速度、最終的な速度、最終的な速度に達するまでの時間を構成できます。
アプリケーションでは、着信データを読み込む際に、独自のアダプタのかわりにOracle Event Processingで提供されるcsvgenアダプタを使用する必要があります。これは、csvgenアダプタがload generatorで生成されたデータ・パケットを復号化するよう特別にコーディングされているためです。
アプリケーションを再デプロイした場合は、ロード・ジェネレータも再起動する必要があります。
テストおよびデバッグの詳細は、6.4項「Oracle Event Processingサーバー上で実行されているOracle Event Processingアプリケーションのデバッグ」を参照してください
このプロシージャでは、ロード・ジェネレータ・ユーティリティの構成方法と実行方法について説明します。
ロード・ジェネレータ・ユーティリティを構成および実行するには:
必要に応じて、load generatorの特定の実行用の構成プロパティが含まれたプロパティ・ファイルを作成します。これらのプロパティでは、シミュレート・データが含まれたファイルの場所、ジェネレータがデータを供給するポートなどが指定されます。
Oracle Event Processingにはデフォルトのプロパティ値が適切である場合に使用できる、デフォルトのプロパティ・ファイルが用意されています。
21.3項「ロード・ジェネレータのプロパティ・ファイルの作成」を参照してください。
実際のデータ・フィード値が含まれたファイルを作成します。
21.4項「データ・フィード・ファイルの作成」を参照してください。
ロード・ジェネレータで生成されたデータ・フィードが正常に読み込まれるようにcsvgenアダプタを構成します。Oracle Event Processingアプリケーションを記述したEPNアセンブリ・ファイルでアダプタを構成します。
21.5項「アプリケーションのcsvgenアダプタの構成」を参照してください。
イベント・タイプを作成するためのビルダー・ファクトリを必ず構成します。イベント・タイプのビルダー・ファクトリを指定するタスクは通常はオプションですが、load generatorを使用する場合には必須です。
詳細は、9.3.1.5項「イベント・タイプ・ビルダー・クラスによるイベント・タイプ・インストールの制御」を参照してください。
コマンド・ウィンドウを開き、3.2項「開発環境の設定」の説明に従って、環境を設定します。
ORACLE_CEP_HOME\ocep_11.1\utils\load-generatorディレクトリに移動します。ORACLE_CEP_HOMEは、d:\oracle_cep.などのOracle Event Processingのメイン・インストール・ディレクトリです。
ステップ1で作成したプロパティ・ファイルを指定してロード・ジェネレータを実行し、シミュレートされたデータ・フィードを開始します。たとえば、プロパティ・ファイル名がc:\loadgen\myDataFeed.propの場合は、次のコマンドを実行します。
prompt> runloadgen.cmd c:\loadgen\myDataFeed.prop
load generatorでは構成にASCIIプロパティ・ファイルが使用されます。プロパティには、サンプルのデータ・フィード値が含まれたファイルの場所、ユーティリティがデータ・フィードを送信するポートなどがあります。
Oracle Event Processingには、ORACLE_CEP_HOME\ocep_11.1\utils\load-generatorディレクトリにcsvgen.propというデフォルトのプロパティ・ファイルがあります。ORACLE_CEP_HOMEは、d:\oracle_cepなどのOracle Event Processingのメイン・インストール・ディレクトリです。
ファイルの形式は単純で、プロパティと値の各ペアが各行に置かれます。次の例は、デフォルトの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.packetType、test.mode、test.senders、test.latencyStatsおよびtest.statIntervalの各プロパティを厳密に前述のとおりに含める必要があります。 |
前述のプロパティ・ファイルの例では、サンプル・データを含むファイルはtest.csvであり、プロパティ・ファイルと同じディレクトリにあります。ロード・ジェネレータによってポート9001にデータ・フィードが送信されます。
次の表に、プロパティ・ファイルで設定できる追加のプロパティを示します。
表21-1 ロード・ジェネレータのプロパティ
| プロパティ | 説明 | データ型 | 必須? |
|---|---|---|---|
|
|
データ・フィード値が含まれたファイルを指定します。 |
|
はい |
|
|
load generatorがデータ・フィードを送信するポート番号。 それぞれの入力アダプタは、 |
|
はい |
|
|
load generatorの秒単位の実行時間。 デフォルト値は30です。 |
|
いいえ |
|
|
最終データ速度(毎秒のメッセージ数単位)。 デフォルト値は1です。 |
|
いいえ |
|
|
初期データ速度(毎秒のメッセージ数単位)。 デフォルト値は1です。 |
|
いいえ |
|
|
デフォルト値は0です。 |
|
いいえ |
ロード・ジェネレータ・データ・フィード・ファイルは、Oracle Event Processingアプリケーションに登録されたイベント・タイプに対応するサンプルのデータ・フィード値を含みます。
例21-1はEmployeeEventを示し、例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
ロード・ジェネレータのデータ・フィード・ファイルの形式は簡単です。
特定のデータ・フィードの各項目を各行に配置します。
データ・フィード項目の各フィールドをカンマで区切ります。
コンマは文字列フィールドの一部として含みません。
フィールド値の一部としてスペースが含まれているのでない限り、カンマの前後に余分なスペースを含めないでください。
整数、long、doubleおよびfloatなどの、データ・フィード・ファイルの文字列データおよび数値データのみを含みます。
デフォルトでは、文字列フィールドの最大長は256文字です。
長い文字列を指定するには、例21-1で示すbirthplaceプロパティのように、event-typeにcharプロパティのlength属性を設定します。
詳細は、9.2.3.1項「csvgenアダプタとともに使用するイベント・タイプの制約」を参照してください。
ロード・ジェネレータ・ユーティリティを使用する場合、Oracle Event Processingで提供されるcsvgenアダプタは、ロード・ジェネレータで生成されたデータ・パケットを読み込むように特別にコーディングされているため、アプリケーションではこのアダプタを使用する必要があります。
すべてのアダプタと同じように、アプリケーションのEPNアセンブリ・ファイルのwlevs:adapter要素を使用して、csvgenアダプタを登録します。独自のアダプタのかわりにcsvgenアダプタをプロバイダとして指定するために、provide属性をcsvgenに設定します。また、次の子タグを指定する必要があります。
name属性portとvalue属性のconfigured_portがあるwlevs:instance-property要素。configured_portはロード・ジェネレータ・プロパティ・ファイルのtest.portプロパティに対応します。21.3項「ロード・ジェネレータのプロパティ・ファイルの作成」を参照してください。
name属性のeventTypeNameおよびvalue属性のevent_type_nameのあるwlevs:instance-property要素。event_type_nameはload-generatedフィードの項目を表すイベント・タイプ名に対応します。
name属性のeventPropertyNamesおよびvalue属性のordered_list_of_propertiesのあるwlevs:instance-property要素。ordered_list_of_propertiesは、ロード・ジェネレータで送信されて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になります。
イベント・タイプの詳細は、第9章「イベント・タイプの定義および使用」を参照してください。