リファレンス ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Oracle CEP アプリケーション アセンブリ タグ リファレンス

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

 


Oracle CEP アプリケーション アセンブリ タグの概要

Oracle Complex Event Processing (略称 Oracle CEP) には多数のアプリケーション アセンブリ タグが用意されており、ユーザはそれらのタグをアプリケーションの EPN アセンブリ ファイル内で使用して、イベント タイプを登録し、イベント処理ネットワークのコンポーネントを宣言します。また、各コンポーネントがどのように相互にリンクしているかを指定します。EPN アセンブリ ファイルは、標準の Spring コンテキスト ファイルの拡張です。

グラフィカルな表現

次の図は、Oracle CEP アプリケーション アセンブリ タグの階層を表しています。

図 2-1 Oracle CEP アプリケーション アセンブリ タグの階層

Oracle CEP アプリケーション アセンブリ タグの階層

図 2-2 Oracle CEP アプリケーション アセンブリ タグの階層 (続き)

Oracle CEP アプリケーション アセンブリ タグの階層 (続き)

Oracle CEP タグを使用した EPN アセンブリ ファイルの例

次に示すサンプルの EPN アセンブリ ファイルは、HelloWorld アプリケーションのものであり、さまざまな Oracle CEP タグの使い方を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:osgi="http://www.springframework.org/schema/osgi"
xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/osgi
http://www.springframework.org/schema/osgi/spring-osgi.xsd
http://www.bea.com/ns/wlevs/spring
http://www.bea.com/ns/wlevs/spring/spring-wlevs.xsd">
    <wlevs:event-type-repository>
<wlevs:event-type type-name="HelloWorldEvent">
<wlevs:class>com.bea.wlevs.event.example.helloworld.HelloWorldEvent</wlevs:class>
</wlevs:event-type>
</wlevs:event-type-repository>
    <wlevs:adapter id="helloworldAdapter" 
class="com.bea.wlevs.adapter.example.helloworld.HelloWorldAdapter" >
<wlevs:instance-property name="message"
value="HelloWorld - the currenttime is:"/>
</wlevs:adapter>
    <wlevs:processor id="helloworldProcessor" />
    <wlevs:stream id="helloworldInstream" >
<wlevs:listener ref="helloworldProcessor"/>
<wlevs:source ref="helloworldAdapter"/>
</wlevs:stream>
    <wlevs:stream id="helloworldOutstream" advertise="true">
<wlevs:listener>
<bean class="com.bea.wlevs.example.helloworld.HelloWorldBean"/>
</wlevs:listener>
<wlevs:source ref="helloworldProcessor"/>
</wlevs:stream>
</beans>

 


wlevs:adapter

このタグを使用して、Spring アプリケーション コンテキストに対してアダプタ コンポーネントを宣言します。

子タグ

wlevs:adapter アプリケーション アセンブリ タグは、以下の子タグをサポートします。

属性

次の表は、wlevs:adapter アプリケーション アセンブリ タグの属性を示しています。

表 2-1 wlevs:adapter アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
id
このコンポーネントのユニークな識別子。
この識別子は、このアダプタの XML コンフィグレーション ファイル内の <name> 要素に対応している必要があります (その要素が存在する場合)。
String
必須
advertise
このサービスを OSGi レジストリに公開します。
有効な値は true および false です。デフォルト値は false です。
Boolean
省略可能
listeners
このコンポーネントをリスンするコンポーネントを指定します。
この属性は、コンポーネントを宣言した要素の id 属性の値に設定します。
String
省略可能
provider
アダプタ サービス プロバイダを指定します。通常、この属性の値は OSGi に登録されたアダプタ ファクトリ サービスへの参照です。
csvgen または loadgen ユーティリティを使用してデータ フィードをシミュレートする場合は、ハードコード化された csvgen または loadgen の値をそれぞれ使用します。たとえば、次のようになります。

provider="csvgen"

組み込みの HTTP パブリッシュ/サブスクライブ アダプタのいずれかを使用する場合は、ハードコード化された次の値を指定します。
  • パブリッシュに使用する組み込みの pub-sub アダプタの場合は、ハードコード化されたhttppub値を次のように指定します。
  • provider="httppub"

  • サブスクライブに使用する組み込みの pub-sub アダプタの場合は、ハードコード化された httpsub 値を次のように指定します。
  • provider="httpsub"

JMS アダプタを使用する場合は、次のいずれかのハードコード化された値を指定します。
  • 着信 JMS アダプタの場合は、jms-inbound 値を次のように指定します。
  • provider="jms-inbound"

  • 発信 JMS アダプタの場合は、jms-outbound 値を次のように指定します。
  • provider="jms-outbound"

provider または class 属性のどちらかを指定する必要がありますが、両方は指定できません。両方を指定すると例外が発生します。
String
省略可能
class
このアダプタを実装する Java クラスを指定します。
provider または class 属性のどちらかを指定する必要がありますが、両方は指定できません。両方を指定すると例外が発生します。
String
省略可能
onevent-method
ライフサイクルの onEvent メソッドに対応したアダプタ実装のメソッドを指定します。
Oracle CEP は、アダプタがイベントを受け取ったときにこのメソッドを呼び出します。
String
省略可能
init-method
ライフサイクルの init メソッドに対応したアダプタ実装のメソッドを指定します。
Oracle CEP は、指定されたすべてのインスタンス プロパティを設定した後、このメソッドを呼び出します。このメソッドを使用すると、アダプタ インスタンスは、すべての Bean プロパティが設定済みであるときに限って可能な初期化を実行し、コンフィグレーションが正しくない場合は例外を送出できます。
String
省略可能
activate-method
ライフサイクルの activate メソッドに対応したアダプタ実装のメソッドを指定します。
Oracle CEP は、アダプタの動的コンフィグレーションが完了した後で、このメソッドを呼び出します。このメソッドを使用すると、アダプタ インスタンスは、すべての動的 Bean プロパティが設定済みであり、かつ EPN が接続済みであるときに限って可能な初期化を実行できます。
String
省略可能
suspend-method
ライフサイクルの suspend メソッドに対応したアダプタ実装のメソッドを指定します。
Oracle CEP は、アプリケーションが中断されたときに、このメソッドを呼び出します。
String
省略可能
destroy-method
ライフサイクルの destroy メソッドに対応したアダプタ実装のメソッドを指定します。
Oracle CEP は、アプリケーションが停止したときに、このメソッドを呼び出します。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:adapter タグの使用方法を示しています。

<wlevs:adapter id="helloworldAdapter" provider="hellomsgs">
<wlevs:instance-property name="message"
value="HelloWorld - the current time is:"/>
</wlevs:adapter>

この例では、アダプタのユニークな識別子は helloworldAdapter です。プロバイダは OSGi サービスです。EPN アセンブリ ファイルにも登録されており、参照は hellomsgs です。アダプタには message という静的なプロパティがあります。これは、アダプタ Java ファイルに setMessage() メソッドがあることを示します。

 


wlevs:cache

このタグを使用して、Spring アプリケーション コンテキストに対してキャッシュを宣言します。

子タグ

wlevs:cache アプリケーション アセンブリ タグは、以下の子タグをサポートします。

属性

次の表は、wlevs:cache アプリケーション アセンブリ タグの属性を示しています。

表 2-2 wlevs:cache アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
id
このコンポーネントのユニークな識別子。
この識別子は、このキャッシュの XML コンフィグレーション ファイル内の <name> 要素に対応している必要があります。
String
必須
name
このキャッシュの代替名を指定します。指定しない場合、キャッシュの名前は id 属性と同じになります。
String
省略可能
key-properties
プロパティの名前のカンマ区切りリストを指定します。これらのプロパティがまとまって、キャッシュ内のオブジェクトのユニーク キー値 (キャッシュ キー) を形成します。キャッシュ キーは単一のプロパティまたは複数のプロパティで構成されます。キャッシュをイベント処理ネットワーク内のリスナとしてコンフィグレーションすると、Oracle CEP は、ユニーク キー値をキーとして使ってキャッシュに到達するイベントを挿入します。
key-class 属性を使用してキー クラスを指定した場合、この属性は省略可能です。key-propertieskey-class のどちらも指定しない場合、Oracle CEP は、イベント オブジェクトをキャッシュに挿入するときにキーと値の両方としてイベント オブジェクトそのものを使用します。
String
省略可能
key-class
キーが複合キーである場合に、キャッシュのキーに使用する Java クラスの名前を指定します。
key-properties 属性を指定しない場合、key-class のすべてのプロパティはキー プロパティであると想定されます。key-propertieskey-class のどちらも指定しない場合、Oracle CEP は、イベント オブジェクトをキャッシュに挿入するときにキーと値の両方としてイベント オブジェクトそのものを使用します。
String
省略可能
value-type
キャッシュに含まれる値の型を指定します。イベント タイプ リポジトリの有効な型の名前である必要があります。
この属性は、キャッシュが EPL クエリで参照されている場合にのみ必須です。クエリ プロセッサはキャッシュ内のイベントのタイプを知る必要があるからです。
String
省略可能
caching-system
このキャッシュが含まれているキャッシング システムを指定します。
この属性の値は、適切な wlevs:caching-system 要素の id 属性に対応します。
String
必須
advertise
このサービスを OSGi レジストリに公開します。
有効な値は true および false です。デフォルト値は false です。
Boolean
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:cache タグの使用方法を示しています。

    <wlevs:cache id="cache-id" name="alternative-cache-name">
<wlevs:caching-system ref="caching-system-id"/>
<wlevs:cache-listener ref="tradeListener" />
</wlevs:cache>

この例では、キャッシュのユニークな識別子は cache-id であり、代替名は alternative-cache-name です。キャッシュが属しているキャッシング システムの idcaching-system-id です。キャッシュにはリスナがあり、キャッシュはイベントをそのリスナに送信します。キャッシュをリスンするコンポーネントの idtradeListener です。

 


wlevs:cache-listener

このタグを使用して、リスンするコンポーネントに対するイベントのソースとしてキャッシュを指定します。リスンするコンポーネントは com.bea.cache.jcache.CacheListener インタフェースを実装する必要があります。

このタグは常に wlevs:cache の子です。

属性

次の表は、wlevs:cache-listener アプリケーション アセンブリ タグの属性を示しています。

表 2-3 wlevs:cache-listener アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
ref
このキャッシュをリスンするコンポーネントを指定します。
この属性は、リスンするコンポーネントの id 属性の値に設定します。リスンするコンポーネントは、アダプタまたは Spring Bean です。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:cache-listener タグの使用方法を示しています。

    <wlevs:caching-system id="caching-system-id"/>
...
<wlevs:cache id="cache-id" name="alternative-cache-name">
<wlevs:caching-system ref="caching-system-id"/>
<wlevs:cache-listener ref="cache-listener-id" />
</wlevs:cache>
...
<bean id="cache-listener-id" class="wlevs.example.MyCacheListener"/>

この例では、cache-listener-id Spring Bean はキャッシュから送られてくるイベントをリスンします。このコンポーネントを実装するクラスである wlevs.example.MyCacheListener は、com.bea.jcache.CacheListener インタフェースを実装する必要があります。wlevs.example.MyCacheListener クラスはユーザ自身がプログラミングする必要があります。

 


wlevs:cache-loader

データをキャッシュにロードするオブジェクトを実装する Spring Bean を指定します。

このタグは常に wlevs:cache の子です。

属性

次の表は、wlevs:cache-loader アプリケーション アセンブリ タグの属性を示しています。

表 2-4 wlevs:cache-loader アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
ref
データをキャッシュにロードするクラスを実装する Spring Bean を指定します。
この属性は、Spring Bean の id 属性の値に設定します。
Spring Bean は com.bea.cache.jcache.CacheLoader インタフェースを実装する必要があります。
String
必須

次の例は、EPN アセンブリ ファイル内での wlevs:cache-loader タグの使用方法を示しています。

    <wlevs:cache id="cache-id" name="alternative-cache-name">
<wlevs:caching-system ref="caching-system-id"/>
<wlevs:cache-loader ref="cache-loader-id" />
</wlevs:cache>
...
<bean id="cache-loader-id" class="wlevs.example.MyCacheLoader"/>

この例では、cache-loader-id Spring Bean (wlevs.example.MyCacheLoader クラスによって実装され、そのクラスが com.bea.cache.jcache.CacheLoader インタフェースを実装する) が、データをキャッシュにロードする Bean です。キャッシュは、<wlevs:cache-loader> 子要素の ref 属性で参照することによって、このローダを指定します。

 


wlevs:cache-source

このプロセッサ コンポーネントにデータを提供するキャッシュを指定します。プロセッサ コンポーネントは、キャッシュを直接参照する EPL クエリに関連付けられます。

wlevs:cache タグの value-type 属性を使用して、キャッシュによって提供されるデータのイベント タイプを宣言します。

このタグは、wlevs:processor タグのみの子です。

属性

次の表は、wlevs:cache-source アプリケーション アセンブリ タグの属性を示しています。

表 2-5 wlevs:cache-source アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
ref
プロセッサ コンポーネントのデータのソースであるキャッシュを指定します。
この属性は、キャッシュの id 属性の値に設定します。
String
必須

次の例は、EPN アセンブリ ファイル内での wlevs:cache-source タグの使用方法を示しています。

   <wlevs:caching-system id="caching-system-id"/>
...
<wlevs:cache id="cache-id"
name="alternative-cache-name"
value-type="Company">
<wlevs:caching-system ref="caching-system-id"/>
</wlevs:cache>
  <wlevs:stream id="stream-id"/>
  <wlevs:processor id="processor-id">
<wlevs:cache-source ref="cache-id">
<wlevs:source ref="stream-id">
</wlevs:processor>

この例では、通常どおり stream-id ストリームからプロセッサにデータがプッシュされます。ただし、プロセッサ内で実行される EPL クエリも、cache-id キャッシュからデータを取り出すことができます。クエリ プロセッサが FROM 句のイベント タイプとキャッシュによって提供されたイベント タイプ (Company など) を照合するとき、プロセッサはそのイベント タイプのインスタンスをキャッシュから取り出します。

 


wlevs:cache-store

キャッシュからバッキング ストア (データベース内のテーブルなど) へのデータの書き込みを処理するカスタム ストアを実装する Spring Bean を指定します。

このタグは常に wlevs:cache の子です。

属性

次の表は、wlevs:cache-store アプリケーション アセンブリ タグの属性を示しています。

表 2-6 wlevs:cache-store アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
ref
カスタム ストアを実装する Spring Bean を指定します。
この属性は、Spring Bean の id 属性の値に設定します。
Spring Bean は com.bea.cache.jcache.CacheStore インタフェースを実装する必要があります。
String
必須

次の例は、EPN アセンブリ ファイル内での wlevs:cache-store タグの使用方法を示しています。

    <wlevs:cache id="cache-id" name="alternative-cache-name">
<wlevs:caching-system ref="caching-system-id"/>
<wlevs:cache-store ref="cache-store-id" />
</wlevs:cache>
...
<bean id="cache-store-id" class="wlevs.example.MyCacheStore"/>

この例では、cache-store-id Spring Bean (wlevs.example.MyCacheStore クラスによって実装され、そのクラスが com.bea.cache.jcache.CacheStore インタフェースを実装する) が、カスタム ストア (データベースなど) の Bean です。キャッシュは、<wlevs:cache-store> 子要素の ref 属性で参照することによって、このストアを指定します。

 


wlevs:caching-system

アプリケーションで使用するキャッシング システムを指定します。

子タグ

wlevs:caching-system アプリケーション アセンブリ タグは、以下の子タグをサポートします。

属性

次の表は、wlevs:caching-system アプリケーション アセンブリ タグの属性を示しています。

表 2-7 wlevs:caching-system アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
id
このキャッシング システムのユニークな識別子を指定します。
この識別子は、このキャッシング システムの XML コンフィグレーション ファイル内の <name> 要素に対応している必要があります。
String
必須
advertise
このサービスを OSGi レジストリに公開します。
有効な値は true および false です。デフォルト値は false です。
Boolean
省略可能
provider
Oracle Coherence などのサードパーティの実装を使用する場合は、キャッシング システムのプロバイダを指定します。
通常、この属性は、サードパーティ キャッシング システムのインスタンスを作成するファクトリ クラスを指定する <factory> Spring タグの provider-name 属性に対応します。
providerclass のどちらの属性も指定しない場合、デフォルト値は Oracle CEP 独自のキャッシングの実装であり、ローカルのシングル JVM キャッシュを実装します。この実装ではインメモリ ストアを使用します。
String
省略可能
class
このキャッシング システムを実装する Java クラスを指定します。この属性を使用して、Oracle CEP 独自の実装ではないサードパーティの実装を指定します。
この属性を指定した場合、サードパーティの実装コードが Oracle CEP アプリケーション バンドル自体の内部に存在すると想定されます。この属性が参照するクラス ファイルは、com.bea.wlevs.cache.api.CachingSystem インタフェースを実装する必要があります。
providerclass のどちらの属性も指定しない場合、デフォルト値は Oracle CEP 独自のキャッシングの実装であり、ローカルのシングル JVM キャッシュを実装します。この実装ではインメモリ ストアを使用します。
String
省略可能

次の例は、EPN アセンブリ ファイル内での最も簡単な wlevs:caching-system タグの使用方法を示しています。

  <wlevs:caching-system id="caching-system-id"/>

次の例は、ファクトリをプロバイダとして使用するサードパーティの実装を指定する方法を示しています。

  <wlevs:caching-system id ="caching-system-id" 
provider="caching-provider"/>
  <factory id="factory-id" provider-name="caching-provider">
<class>the.factory.class.name</class>
</factory>

この例では、the.factory.class.name が、サードパーティ キャッシング システムを作成するためのファクトリです。wlevs:caching-system の provider 属性が、アプリケーションのキャッシング システムの実装としてそのファクトリを参照します。

 


wlevs:event-bean

このタグを使用して、イベント Bean がイベント処理ネットワーク (EPN) の一部であるコンテキストを Spring アプリケーションに対して宣言します。イベント Bean は Oracle CEP コンテナによって管理されます。これは、Spring Bean が Spring フレームワークによって管理されるのと似ています。多くの点で、イベント Bean と Spring Bean は類似しており、EPN でどちらを使用するかは開発者に任されています。Spring へのレガシー統合の場合は Spring Bean を使用します。Oracle CEP の追加機能を最大限活用するには、イベント Bean を使用します。

たとえば、Oracle CEP モニタリング フレームワークを使用してイベント Bean をモニタできます。また、コンフィグレーション フレームワーク メタデータ アノテーションを利用したり、イベント Bean で渡されるイベントを記録および再生することもできます。イベント Bean は、Oracle CEP API インタフェースを実装するのではなく、EPN アセンブリ ファイル宣言にメソッドを指定することによって、Oracle CEP Bean ライフサイクルに参加することもできます。

子タグ

wlevs:event-bean アプリケーション アセンブリ タグは、以下の子タグをサポートします。

属性

次の表は、wlevs:event-bean アプリケーション アセンブリ タグの属性を示しています。

表 2-8 wlevs:event-bean アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
id
このコンポーネントのユニークな識別子。
この識別子は、このイベント Bean の XML コンフィグレーション ファイル内の <name> 要素に対応している必要があります (その要素が存在する場合)。
String
必須
advertise
このサービスを OSGi レジストリに公開します。
有効な値は true および false です。デフォルト値は false です。
Boolean
省略可能
listeners
このコンポーネントをリスンするコンポーネントを指定します。
この属性は、コンポーネントを宣言した要素の id 属性の値に設定します。
String
省略可能
class
このイベント Bean を実装する Java クラスを指定します。Bean による Oracle CEP インタフェースの実装は必要ありません。
provider または class 属性のどちらかを指定する必要がありますが、両方は指定できません。両方を指定すると例外が発生します。
   
provider
サービス プロバイダを指定します。
この場合、この特定のプロバイダ名で登録された EDE ファクトリがアプリケーション内に存在する必要があります。
provider または class 属性のどちらかを指定する必要がありますが、両方は指定できません。両方を指定すると例外が発生します。
String
省略可能
onevent-method
ライフサイクルの onEvent メソッドに対応したイベント Bean 実装のメソッドを指定します。
Oracle CEP は、イベント Bean がイベントを受け取ったときにこのメソッドを呼び出します。
このライフサイクル属性を使用すると、イベント Bean 実装による Oracle CEP インタフェースの明示的な実装は必要ありません。
String
省略可能
init-method
ライフサイクルの init メソッドに対応したイベント Bean 実装のメソッドを指定します。
Oracle CEP は、指定されたすべてのインスタンス プロパティを設定した後、このメソッドを呼び出します。このメソッドを使用すると、Bean インスタンスは、すべての Bean プロパティが設定済みであるときに限って可能な初期化を実行し、コンフィグレーションが正しくない場合は例外を送出できます。
このライフサイクル属性を使用すると、イベント Bean 実装による Oracle CEP インタフェースの明示的な実装は必要ありません。
String
省略可能
activate-method
ライフサイクルの activate メソッドに対応したイベント Bean 実装のメソッドを指定します。
Oracle CEP は、Bean の動的コンフィグレーションが完了した後で、このメソッドを呼び出します。このメソッドを使用すると、Bean インスタンスは、すべての動的 Bean プロパティが設定済みであり、かつ EPN が接続済みであるときに限って可能な初期化を実行できます。
このライフサイクル属性を使用すると、イベント Bean 実装による Oracle CEP インタフェースの明示的な実装は必要ありません。
String
省略可能
suspend-method
ライフサイクルの suspend メソッドに対応したイベント Bean 実装のメソッドを指定します。
Oracle CEP は、アプリケーションが中断されたときに、このメソッドを呼び出します。
このライフサイクル属性を使用すると、イベント Bean 実装による Oracle CEP インタフェースの明示的な実装は必要ありません。
String
省略可能
destroy-method
ライフサイクルの destroy メソッドに対応したイベント Bean 実装のメソッドを指定します。
Oracle CEP は、アプリケーションが停止したときに、このメソッドを呼び出します。
このライフサイクル属性を使用すると、イベント Bean 実装による Oracle CEP インタフェースの明示的な実装は必要ありません。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:event-bean タグの使用方法を示しています。

    <wlevs:event-bean id="myBean" class="com.customer.SomeEventBean" >
<wlevs:listener ref="myProcessor" />
</wlevs:event-bean>

この例では、myBean というイベント Bean がクラス com.customer.SomeEventBean を使用して実装されています。myProcessor というコンポーネントが myBean イベント Bean からイベントを受け取ります。

 


wlevs:event-type-repository

このタグを使用して、1 つまたは複数の wlevs:event-type タグをまとめてグループ化します。各タグは、アプリケーション全体で使用するイベント タイプを登録するために使用されます。

このタグに属性はありません。

子タグ

wlevs:event-type-repository アプリケーション アセンブリ タグは、以下の子タグをサポートします。

次の例は、EPN アセンブリ ファイル内での wlevs:event-type-repository タグの使用方法を示しています。

<wlevs:event-type-repository>
<wlevs:event-type type-name="HelloWorldEvent">
<wlevs:class>com.bea.wlevs.event.example.helloworld.HelloWorldEvent</wlevs:class>
</wlevs:event-type>
</wlevs:event-type-repository>

この例では、<wlevs:event-type-repository> タグで単独の <wlevs:event-type> タグをグループ化し、HelloWorldEvent という 1 つのイベント タイプを宣言しています。詳細については、wlevs:event-type を参照してください。

 


wlevs:event-type

Oracle CEP アプリケーションで使用するイベント タイプの定義を指定します。アプリケーションのイベント タイプを定義したら、定義したイベント タイプをアダプタ クラスおよびビジネス クラスの POJO 内で、また EPL ルールで参照できます。

次の方法でイベント タイプを定義できます。

wlevs:class または wlevs:metadata のどちらか一方を wlevs:event-type の子として指定できますが、両方は指定できません。

wlevs:property 子タグを使用して、イベント タイプに適用するカスタム プロパティを指定することもできます。

wlevs:class 子タグを使用してイベント タイプを定義することをお勧めします。そうすることで、指定した JavaBean クラスを再利用でき、どのようなイベント タイプかを正確に制御できます。

子タグ

wlevs:event-type アプリケーション アセンブリ タグは、以下の子タグをサポートします。

属性

次の表は、wlevs:event-type アプリケーション アセンブリ タグの属性を示しています。

表 2-9 wlevs:event-type アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
id
このイベント タイプのユニークな識別子を指定します。
この属性を指定しない場合は、Oracle CEP によって識別子が自動的に生成されます。
q
省略可能
type-name
このイベント タイプの名前を指定します。
これは、アダプタ、ビジネス POJO、および EPL ルール内でイベント タイプを参照するときに使用する名前です。
String
必須

次の例は、EPN アセンブリ ファイル内での wlevs:event-type タグの使用方法を示しています。

<wlevs:event-type-repository>
<wlevs:event-type type-name="HelloWorldEvent">
<wlevs:class>com.bea.wlevs.event.example.helloworld.HelloWorldEvent</wlevs:class>
</wlevs:event-type>
</wlevs:event-type-repository>

この例では、イベント タイプの名前は HelloWorldEvent であり、このイベント タイプの定義は com.bea.wlevs.event.example.helloworld.HelloWorldEvent JavaBean クラスによって決定します。

 


wlevs:factory

このタグを使用して、ファクトリ クラスをサービスとして登録します。このタグを使用すると、Spring-OSGi インタフェースに対するアプリケーションの依存度が低減されます。

このファクトリの Java ソースで、com.bea.wlevs.ede.api.Factory インタフェースを実装する必要があります。

ファクトリ タグでサービスのプロパティを指定することはできません。サービスのプロパティを指定する必要がある場合は、代わりに Spring- OSGi <osgi:service> タグを使用する必要があります。

このタグに子タグはありません。

属性

次の表は、wlevs:factory アプリケーション アセンブリ タグの属性を示しています。

表 2-10 wlevs:factory アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
class
ファクトリを実装する Java クラスを指定します。このクラスは com.bea.wlevs.ede.api.Factory インタフェースを実装する必要があります。
String
必須
provider-name
このプロバイダの名前を指定します。後で、このファクトリを使用するコンポーネント内でこの名前を参照します。
String
必須

次の例は、EPN アセンブリ ファイル内での wlevs:factory タグの使用方法を示しています。

<wlevs:factory provider-name="myEventSourceFactory"
class="com.customer.MyEventSourceFactory" />

この例では、com.customer.MyEventSourceFactory によって実装されたファクトリが、myEventSourceFactory というプロバイダ名になっています。

 


wlevs:function

このタグを使用して、プロセッサ用のユーザ定義の関数を含む Bean を指定します。

このタグでは、常に子タグとして Spring 標準の <bean> タグを使用して、ユーザ定義の関数用の Spring Bean を指定します。

属性

次の表は、wlevs:function アプリケーション アセンブリ タグの属性を示しています。

表 2-11 wlevs:function Application Assembly タグの属性
属性
説明
データ型
必須/省略可能
epl-name
EPL クエリでこの関数 Bean を参照するときに使用する代替名です。
デフォルト値は Spring Bean 名です。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:function タグの使用方法を示しています。

<wlevs:processor id="testProcessor">
<wlevs:listener ref="providerCache"/>
<wlevs:listener ref="outputCache"/>
<wlevs:cache-source ref="testCache"/>
<wlevs:function epl-name="testfunction">
<bean class="com.bea.wlevs.example.cache.function.TestFunction"/>
</wlevs:function>
</wlevs:processor>

 


wlevs:instance-property

このタグを子タグとするコンポーネントの create ステージのインスタンスに適用するプロパティを指定します。これにより、ユーザ定義のステージ プロパティの宣言型コンフィグレーションが可能になります。

このタグは、wlevs:adapterwlevs:processorwlevs:stream、または wlevs:caching-system の子としてのみ使用されます。

wlevs:instance-property タグは、Spring propertyType 型として定義されます。この Spring データ型の詳細や、使用できる子タグの定義などについては、Spring 2.0 XSD を参照してください。

子タグ

次のいずかの Spring 標準タグを wlevs:instance-property タグの子タグとして指定できます。

属性

次の表は、wlevs:instance-property アプリケーション アセンブリ タグの属性を示しています。

表 2-12 wlevs:instance-property アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
name
JavaBean の命名規則に従ってプロパティの名前を指定します。
String
必須
ref
ネストされた <ref bean='...'/> 要素へのショートカットです。
String
省略可能
value
ネストされた <value>...</value> 要素へのショートカットです。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:instance-property タグの使用方法を示しています。

<wlevs:adapter id="helloworldAdapter" provider="hellomsgs">
<wlevs:instance-property name="message" value="HelloWorld - the current time is:"/>
</wlevs:adapter>

この例では、helloworldAdapter アダプタ コンポーネントを実装する Bean は、message というインスタンス プロパティを必要とします。上記のサンプル wlevs:instance-property タグは、このプロパティの値を HelloWorld - the current time is: に設定します。

 


wlevs:listener

このタグを子とするコンポーネントをリスンするコンポーネントを指定します。他の任意のコンポーネントのインスタンスをリスナとすることができます。また、特定の wlevs:listener コンポーネント内にコンポーネントの定義をネストして、親をリスンするコンポーネントを指定することもできます。

警告 : ネストされた定義は、動的コンフィグレーションまたは動的モニタには使用できません。

このタグは常に、wlevs:adapterwlevs:processorwlevs:streamwlevs:event-bean、または wlevs:cache の子タグです。

属性

次の表は、wlevs:listener アプリケーション アセンブリ タグの属性を示しています。

表 2-13 wlevs:listener アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
ref
親コンポーネントをリスンするコンポーネントを指定します。
この属性は、リスナ コンポーネントの id 属性の値に設定します。
リスナをネストする場合は、この属性を指定しないでください。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:listener タグの使用方法を示しています。

    <wlevs:processor id="helloworldProcessor">
<wlevs:listener ref="helloworldOutstream"/>
</wlevs:processor>

この例では、hellworldOutstream コンポーネントが helloworldProcessor コンポーネントをリスンします。この EPN アセンブリ ファイルには、ユニークな識別子が helloworldOustream である <wlevs:adapter><wlevs:stream>、または <wlevs:processor> コンポーネントの宣言も含まれていると想定しています。

 


wlevs:metadata

フィールドを Spring entry タグのグループとしてリストし、イベント タイプの定義を指定します。イベント タイプをこの方法で定義すると、Oracle CEP により Java クラスが自動的に生成されます。

entry タグの key 属性を使用してフィールドの名前を指定し、value 属性を使用して、フィールドのデータ型を表す Java クラスを指定します。

このタグは wlevs:event-type タグの子としてのみ使用されます。

wlevs:metadata タグは、Spring mapType 型として定義されます。この Spring データ型の詳細については、Spring 2.0 XSD を参照してください。

子タグ

wlevs:metadata タグには、1 つ以上の標準 Spring entry 子タグを指定できます。

属性

次の表は、wlevs:metadata アプリケーション アセンブリ タグの属性を示しています。

表 2-14 wlevs:metadata アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
key-type
ネストされた entry タグの Java データ型を示すデフォルトの完全修飾クラス名です。
この属性は、entry タグをネストした場合にのみ使用できます。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:metadata タグの使用方法を示しています。

<wlevs:event-type type-name="ForeignExchangeEvent">
<wlevs:metadata>
<entry key="symbol" value="java.lang.String"/>
<entry key="price" value="java.lang.Double"/>
<entry key="fromRate" value="java.lang.String"/>
<entry key="toRate" value="java.lang.String"/>
</wlevs:metadata>
...
</wlevs:event-type>

この例では、wlevs:metadata タグが 4 つの Spring 標準 entry タグをグループ化しています。それらの 4 つのタグは、ForeignExchangeEvent の 4 つのフィールド、つまり symbolpricefromRatetoRate を表します。これらのフィールドのデータ型は、それぞれ、java.lang.Stringjava.lang.Doublejava.lang.Stringjava.lang.String です。

 


wlevs:processor

このタグを使用して、Spring アプリケーション コンテキストに対してプロセッサを宣言します。

子タグ

wlevs:processor Spring tag タグは、以下の子タグをサポートします。

属性

次の表は、wlevs:processor アプリケーション アセンブリ タグの属性を示しています。

表 2-15 wlevs:processor アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
id
このコンポーネントのユニークな識別子。
この識別子は、このプロセッサの XML コンフィグレーション ファイルに記述した <name> 要素に対応している必要があります。そうすることで、ネットワークのどのプロセッサ コンポーネントに対してどの EPL ルールを実行するかを Oracle CEP に指定します。
String
必須
advertise
このサービスを OSGi レジストリに公開します。
有効な値は true および false です。デフォルト値は false です。
Boolean
省略可能
listeners
このコンポーネントをリスンするコンポーネントを指定します。
この属性は、コンポーネントを宣言した要素の id 属性の値に設定します。
String
省略可能
provider
イベント処理言語 (EPL) のようなプロセッサの言語プロバイダを指定します。
有効な値は次のとおりです。
  • epl
デフォルト値は epl です。
String
省略可能
queryURL
このプロセッサの EPL ルール定義ファイルを指す URL を指定します。
String.
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:processor タグの使用方法を示しています。

   <wlevs:processor id="spreader" />

この例は、spreader という ID を持つプロセッサを宣言する方法を示しています。つまり、このプロセッサの EPL ルールを含むプロセッサ コンフィグレーション ファイル内で、<name> 要素に値 spreader が含まれている必要があります。そうすることで、この特定のプロセッサに対してどの EPL ルールを登録する必要があるかを Oracle CEP に指定します。

 


wlevs:property

イベント タイプに適用するカスタム プロパティを指定します。

このタグは、wlevs:event-typewlevs:adapterwlevs:processorwlevs:stream、または wlevs:caching-system の子としてのみ使用されます。

wlevs:property タグは、Spring propertyType 型として定義されます。この Spring データ型の詳細や、使用できる子タグの定義などについては、Spring 2.0 XSD を参照してください。

子タグ

次のいずれかの Spring 標準タグを wlevs:property タグの子要素として指定できます。

属性

次の表は、wlevs:property アプリケーション アセンブリ タグの属性を示しています。

表 2-16 wlevs:property Application アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
name
JavaBean の命名規則に従ってプロパティの名前を指定します。
String
必須
ref
ネストされた <ref bean='...'/> 要素へのショートカットです。
String
省略可能
value
ネストされた <value>...</value> 要素へのショートカットです。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:property タグの使用方法を示しています。

<wlevs:event-type type-name="ForeignExchangeEvent">
<wlevs:metadata>
<entry key="symbol" value="java.lang.String"/>
<entry key="price" value="java.lang.Double"/>
</wlevs:metadata>
<wlevs:property name="builderFactory">
<bean id="builderFactory"
class="com.bea.wlevs.example.fx.ForeignExchangeBuilderFactory"/>
</wlevs:property>
</wlevs:event-type>

この例では、wlevs:property タグによって、ForeignExchangeEvent のカスタム プロパティ builderFactory を定義しています。そのプロパティでは、Spring 標準の bean タグを使用して、ForeignExchangeEvents を作成するためのファクトリとして使用される Spring Bean を指定します。

 


wlevs:source

このコンポーネントのイベント ソース、つまりイベントの発生元であるコンポーネントを指定します。イベント ソースを指定することは、このコンポーネントを別のコンポーネントのイベント リスナとして指定するのと同等です。

また、特定の wlevs:source コンポーネント内にコンポーネントの定義をネストして、コンポーネント ソースを定義することもできます。

警告 : ネストされた定義は、動的コンフィグレーションまたは動的モニタには使用できません。

このタグは、wlevs:stream または wlevs:processor の子です。

属性

次の表は、wlevs:source アプリケーション アセンブリ タグの属性を示しています。

表 2-17 wlevs:source アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
ref
このタグを子とするストリームのソースを指定します。
この属性は、ソース コンポーネントの id 属性の値に設定します。
この属性は、ソースをネストする場合には指定しません。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:source タグの使用方法を示しています。

    <wlevs:stream id="helloworldInstream">
<wlevs:listener ref="helloworldProcessor"/>
<wlevs:source ref="helloworldAdapter"/>
</wlevs:stream>

この例では、idhelloworldAdapter であるコンポーネントが、helloworldInstream というストリーム コンポーネントのソースです。

 


wlevs:stream

このタグを使用して、Spring アプリケーション コンテキストに対してストリームを宣言します。

子タグ

wlevs:stream アプリケーション アセンブリ タグは、以下の子タグをサポートします。

属性

次の表は、wlevs:stream アプリケーション アセンブリ タグの属性を示しています。

表 2-18 wlevs:stream アプリケーション アセンブリ タグの属性
属性
説明
データ型
必須/省略可能
id
このコンポーネントのユニークな識別子。
この識別子は、このストリームの XML コンフィグレーション ファイル内の <name> 要素に対応している必要があります (その要素が存在する場合)。
String
必須
advertise
このサービスを OSGi レジストリに公開します。
有効な値は true および false です。デフォルト値は false です。
Boolean
省略可能
listeners
このコンポーネントをリスンするコンポーネントを指定します。複数のコンポーネントはカンマを使用して区切ります。
この属性は、リスンするコンポーネントを定義するタグ (wlevs:adapterwlevs:stream、または wlevs:processor) の id 属性に設定します。
String
省略可能
provider
ストリーム プロバイダを指定します。
有効な値は次のとおりです。
  • defaultstream
デフォルト値は、すぐに使用できるように用意されているストリーミング プロバイダである defaultstream です。
String
省略可能
max-size
このストリームの最大サイズを指定します。
サイズが 0 のストリームではイベントが同期的にパススルーされます。サイズが 0 以外のストリームでは要求されたサイズでイベントがバッファリングされ、イベントが非同期で処理されます。
この属性のデフォルト値は 1024 です。
integer
省略可能
max-threads
このストリームのイベントを処理するために使用されるスレッドの最大数を指定します。
max-size 属性が 0 の場合は、max-threads の値を設定しても無効です。
この属性のデフォルト値は 1 です。
integer
省略可能
source
ストリームのイベント ソースとなるコンポーネントを指定します。
この属性は、ソース コンポーネントを定義するタグ (wlevs:adapterwlevs:stream、または wlevs:processor) の id 属性の値に設定します。
String
省略可能

次の例は、EPN アセンブリ ファイル内での wlevs:stream タグの使用方法を示しています。

   <wlevs:stream id="fxMarketAmerOut" />

この例は、fxMarketAmerOut というユニークな識別子を持つストリーム サービスを宣言する方法を示しています。


  ページの先頭       前  次