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