![]() ![]() ![]() ![]() |
load generator は、データ フィードをシミュレートするために Oracle Complex Event Processing (略称 Oracle CEP) で提供される単純なユーティリティです。このユーティリティは、実世界のデータ フィードに接続する必要がないためアプリケーションの EPL ルールをテストする際に役立ちます。
load generator は、サンプルのデータ フィード情報が含まれた ASCII ファイルを読み込み、コンフィグレーションされたポートに各データ項目を送信します。load generator ではサンプル データ ファイルの項目が順番に読み込まれ、ストリームに挿入されます。末尾まで達したらデータ ファイルの先頭に戻ることを繰り返し、これによってファイル内のデータ項目数に関係なく、連続するデータ ストリームを使用できることが保証されます。送信データの速度、開始時点の速度、最終的な速度、最終的な速度に達するまでの時間をコンフィグレーションできます。
アプリケーションでは、着信データを読み込む際に、独自のアダプタの代わりに Oracle CEP で提供される csvgen
アダプタを使用する必要があります。これは、csvgen
アダプタが load generator で生成されたデータ パケットを復号化するよう特別にコーディングされているためです。
load generator を使用するには、以下の手順を実行します。
Oracle CEP にはデフォルトのプロパティ値が適切である場合に使用できる、デフォルトのプロパティ ファイルが用意されています。
「Load Generator のプロパティ ファイルの作成」を参照してください。
「データ フィード ファイルの作成」を参照してください。
csvgen
アダプタをコンフィグレーションします。Oracle CEP アプリケーションを記述する EPN アセンブリ ファイルでアダプタをコンフィグレーションします。
「アプリケーションの csvgen アダプタのコンフィグレーション」を参照してください。
詳細については、「イベント タイプの作成」を参照してください。
ORACLE_CEP_HOME
\ocep_10.3\utils\load-generator
ディレクトリに移動します。ORACLE_CEP_HOME
は、d:\oracle_cep
などの Oracle CEP メイン インストール ディレクトリです。c:\loadgen\myDataFeed.prop
の場合は、以下のコマンドを実行します。prompt> runloadgen.cmd c:\loadgen\myDataFeed.prop
アプリケーションを再デプロイした場合は、load generator も再起動する必要があります。
load generator ではコンフィグレーションに ASCII プロパティ ファイルが使用されます。プロパティには、サンプルのデータ フィード値が含まれたファイルの場所、ユーティリティがデータ フィードを送信するポートなどがあります。
Oracle CEP で提供されるデフォルトのプロパティ ファイル csvgen.prop
は ORACLE_CEP_HOME
\ocep_10.3\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
はプロパティ ファイルと同じディレクトリにあります。load generator によってポート 9001
にデータ フィードが送信されます。
次の表に、プロパティ ファイルで設定できる追加のプロパティを示します。
サンプルのデータ フィード値が含まれたファイルは Oracle CEP アプリケーションに登録されたイベント タイプに対応しています。ファイルは単純な形式に従います。
次のサンプル データ フィード ファイルでは、各項目が name
、age
、および birthplace
の各フィールドを持つ人物に対応しています。
Lucy,23,Madagascar
Nick,44,Canada
Amanda,12,Malaysia
Juliet,43,Spain
Horatio,80,Argentina
Oracle CEP で提供される csvgen
アダプタは、load generator で生成されたデータ パケットを読み込むよう特別にコーディングされているため、アプリケーションではこのアダプタを使用する必要があります。
すべてのアダプタと同じように、アプリケーションの EPN アセンブリ ファイルの <wlevs:adapter>
タグを使用して、csvgen
アダプタを登録します。provider="csvgen"
属性を使用して、独自のアダプタの代わりに csvgen
アダプタをプロバイダとして指定します。また、以下の子タグを指定する必要があります。
<wlevs:instance-property name="port" value=
configured_port
>
。configured_port
は、load generator のプロパティ ファイルの test.port
プロパティの値に対応します。「Load Generator のプロパティ ファイルの作成」を参照してください。<wlevs:instance-property name="eventTypeName" value=
event_type_name
>
。event_type_name
は、load generator で生成されるフィードの項目を表すイベント タイプの名前に対応します。<wlevs:instance-property name="eventPropertyNames" value=
ordered_list_of_properties
>
。ordered_list_of_properties
は、load generator で送信され、その後 csvgen
アダプタで受信される順番でプロパティ名をリストします。
アダプタのコンフィグレーションの方法を説明する前に、まず EPN アセンブリ ファイルで <wlevs:metada>
を使用して、アプリケーションにイベント タイプ PersonType
が登録されていると想定します。
<wlevs:event-type-repository>
<wlevs:event-type type-name="PersonType
">
<wlevs:metadata>
<entry key="name
" value="java.lang.String"/>
<entry key="age
" value="java.lang.Integer"/>
<entry key="birthplace
" value="java.lang.String"/>
</wlevs:metadata>
</wlevs:event-type>
</wlevs:event-type-repository>
このイベント タイプは「データ フィード ファイルの作成」で説明しているデータ フィード ファイルに対応しています。
このデータを受信する 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
になります。
![]() ![]() ![]() |