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

前
 
次
 

C スキーマ参照: EPNアセンブリspring-wlevs-v11_1_1_6.xsd

この付録では、Oracle Complex Event Processing (Oracle CEP)イベント処理ネットワーク(EPN)を作成するコンポーネントを宣言するのに使用するアセンブリXMLファイルの背後にあるスキーマである、spring-wlevs-v11_1_1_6.xsdスキーマの要素へのリファレンスを示します。

C.1 Oracle CEPアプリケーション・アセンブリ要素の概要

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

C.1.2 Oracle CEP要素を使用したEPNアセンブリ・ファイルの例

次に示すサンプルのEPNアセンブリ・ファイルは、HelloWorldアプリケーションのものであり、様々なOracle CEP要素の使用方法を示しています。

<?xwml 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-v11_1_1_6.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:channel id="helloworldInstream" >
        <wlevs:listener ref="helloworldProcessor"/>
        <wlevs:source ref="helloworldAdapter"/>
    </wlevs:channel>
    <wlevs:channel id="helloworldOutstream" advertise="true">
        <wlevs:listener>
            <bean class="com.bea.wlevs.example.helloworld.HelloWorldBean"/>
        </wlevs:listener>
        <wlevs:source ref="helloworldProcessor"/>
    </wlevs:channel>
</beans>

C.2 wlevs:adapter

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

C.2.1子要素

wlevs:adapterアプリケーション・アセンブリ要素は、次の子要素をサポートします。

C.2.2属性

表C-1は、wlevs:adapterアプリケーション・アセンブリ要素の属性を示しています。

表C-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

いいえ


C.2.3

次の例は、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メソッドがあることを示します。

C.3 wlevs:application-timestamped

wlevs:channelはアプリケーション・タイムスタンプであるかを指定するためにこの要素を使用します(アプリケーションはいずれかの時間ドメインで各イベントに対してタイムスタンプを割り当てます)。

その他の場合、wlevs:channelはシステム・タイムスタンプです(Oracle CEPサーバーはSystem.nanoTimeで各イベントに対してタイムスタンプ割り当てます)。

C.3.1子要素

wlevs:application-timestampedアプリケーション・アセンブリ要素は、次の子要素をサポートします。

  • wlevs:expression: イベント処理のためにアプリケーション・タイムスタンプとして使用する式を指定します。

C.3.2属性

表C-2は、wlevs:application-timestampedアプリケーション・アセンブリ要素の属性を示しています。

表C-2 wlevs:application-timestampedアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

is-total-order

パブリッシュされたアプリケーション時間が常に前回使用された値よりも大きくなる場合に指定します。

有効な値は、trueまたはfalseです。デフォルト: false

詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』の時間に関する項を参照してください。

Boolean

いいえ。


C.3.3

次の例は、暗黙的にアプリケーション・タイムスタンプのチャネルを指定するために、EPNアセンブリ・ファイルでのwlevs:application-timestamped要素を使用する方法について説明します。

<wlevs:channel id="fxMarketAmerOut" >
    <wlevs:application-timestamped>
    </wlevs:application-timestamped>
</wlevs:channel>

この例では、アプリケーションはイベント・タイムスタンプを内部的に処理します。

次の例は、明示的にアプリケーション・タイムスタンプのチャネルを指定するために、wlevs:expression要素を指定することにより、EPNアセンブリ・ファイルでのwlevs:application-timestamped要素を使用する方法について説明します。

<wlevs:channel id="fxMarketAmerOut" >
    <wlevs:application-timestamped>
        <wlevs:expression>mytime+10</wlevs:expression>
    </wlevs:application-timestamped>
</wlevs:channel>

この例では、wlevs:expression要素は各イベントにタイムスタンプを割り当てるために使用する算術式を定義します。

C.4 wlevs:cache

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

C.4.1子要素

wlevs:cacheアプリケーション・アセンブリ要素は、次の子要素をサポートします。

  • wlevs:caching-system: このキャッシュが属するキャッシング・システムを指定します。


    注意:

    この子要素は、キャッシング・システムを宣言するために使用するwlevs:caching-system要素とは異なります。wlevs:cache要素の子要素は、refという単一の属性を持ちます。この属性は、宣言されたキャッシング・システムのid属性を参照します


  • wlevs:cache-loader: このキャッシュのキャッシュ・ローダーを指定します。

  • wlevs:cache-store: このキャッシュのキャッシュ・ストアを指定します。

  • wlevs:cache-listener: このキャッシュのリスナー、またはキャッシュのイベントの送信先コンポーネントを指定します。

C.4.2属性

表C-3は、wlevs:cacheアプリケーション・アセンブリ要素の属性を示しています。

表C-3 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

キャッシュに含まれる値の型を指定します。イベント・タイプ・リポジトリの有効な型の名前である必要があります。

この属性は、キャッシュがOracle CQLまたはEPL問合せで参照されている場合にのみ必須です。これは、問合せプロセッサはキャッシュ内のイベントのタイプを意識している必要があるからです。

String

いいえ。

caching-system

このキャッシュが含まれているキャッシング・システムを指定します。

この属性の値は、適切なwlevs:caching-system要素のid属性に対応します。

String

はい。

advertise

このサービスをOSGiレジストリに公開します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

Boolean

いいえ。


C.4.3

次の例は、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です。

C.5 wlevs:cache-listener

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

この要素は常にwlevs:cacheの子です。

C.5.1属性

表C-4は、wlevs:cache-listenerアプリケーション・アセンブリ要素の属性を示しています。

表C-4 wlevs:cache-listenerアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

ref

このキャッシュをリスニングするコンポーネントを指定します。

この属性は、リスニング・コンポーネントのid属性の値に設定します。リスニング・コンポーネントは、アダプタまたはSpring Beanです。

String

いいえ。


C.5.2

次の例は、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クラスは自分でプログラムする必要があります。

C.6 wlevs:cache-loader

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

この要素は常にwlevs:cacheの子です。

C.6.1属性

表C-5は、wlevs:cache-loaderアプリケーション・アセンブリ要素の属性を示しています。

表C-5 wlevs:cache-loaderアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

ref

データをキャッシュにロードするクラスを実装するSpring Beanを指定します。

この属性は、Spring Beanの id 属性の値に設定します。

Spring Beanはcom.bea.cache.jcache.CacheLoaderインタフェースを実装する必要があります。

String

はい。


C.6.2

次の例は、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"/>

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

C.7 wlevs:cache-source

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

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

この要素は、wlevs:processor要素のみの子です。

C.7.1属性

表C-6は、wlevs:cache-sourceアプリケーション・アセンブリ要素の属性を示しています。

表C-6 wlevs:cache-sourceアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

ref

プロセッサ・コンポーネントのデータのソースであるキャッシュを指定します。

この属性は、キャッシュのid属性の値に設定します。

String

はい。


C.7.2

次の例は、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:channel id="stream-id"/>
  <wlevs:processor id="processor-id">
    <wlevs:cache-source ref="cache-id">
    <wlevs:source ref="stream-id">
  </wlevs:processor>

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

C.8 wlevs:cache-store

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

この要素は常にwlevs:cacheの子です。

C.8.1属性

表C-7は、wlevs:cache-storeアプリケーション・アセンブリ要素の属性を示しています。

表C-7 wlevs:cache-storeアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

ref

カスタム・ストアを実装するSpring Beanを指定します。

この属性は、Spring Beanのid属性の値に設定します。

Spring Beanはcom.bea.cache.jcache.CacheStoreインタフェースを実装する必要があります。

String

はい。


C.8.2

次の例は、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"/>

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

C.9 wlevs:caching-system

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

C.9.1子要素

wlevs:caching-systemアプリケーション・アセンブリ要素は、次の子要素をサポートします。

C.9.2属性

表C-8は、wlevs:caching-systemアプリケーション・アセンブリ要素の属性を示しています。

表C-8 wlevs:caching-systemアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

id

このキャッシング・システムの一意の識別子を指定します。

この識別子は、このキャッシング・システムのXML構成ファイル内の<name>要素に対応している必要があります。

String

はい。

advertise

このサービスをOSGiレジストリに公開します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

Boolean

いいえ。

provider

Oracle Coherenceなどのサード・パーティの実装を使用する場合は、キャッシング・システムのプロバイダを指定します。

<wlevs:caching-system id="myCachingSystem" provider=coherence" />

通常、この属性は、サード・パーティ・キャッシング・システムのインスタンスを作成するファクトリ・クラスを指定する<factory> Spring要素のprovider-name属性に対応します。

providerclassのどちらの属性も指定しない場合、デフォルト値はローカルな単一JVMキャッシュ用Oracle CEPネイティブ・キャッシングの実装であり、この実装ではインメモリー・ストアを使用します。

String

いいえ。

class

このキャッシング・システムを実装するJavaクラスを指定します。この属性を使用して、Oracle CEPのネイティブの実装ではないサード・パーティの実装を指定します。

この属性を指定した場合、サード・パーティの実装コードがOracle CEPアプリケーション・バンドル自体の内部に存在すると想定されます。この属性が参照するクラス・ファイルは、com.bea.wlevs.cache.api.CachingSystemインタフェースを実装する必要があります。

providerclassのどちらの属性も指定しない場合、デフォルト値はローカルな単一JVMキャッシュ用Oracle CEPネイティブ・キャッシングの実装であり、この実装ではインメモリー・ストアを使用します。

String

いいえ


C.9.3

次の例は、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のプロバイダ属性は、アプリケーションのキャッシング・システムの実装としてこのファクトリを参照します。

C.10 wlevs:channel

この要素を使用して、Springアプリケーション・コンテキストに対してチャネルを宣言します。

デフォルトでは、チャネルはイベントがシステム・タイムスタンプであることを想定します。アプリケーション・タイムスタンプのイベントを構成するには、wlevs:application-timestamped子要素を参照してください。

C.10.1子要素

wlevs:channelアプリケーション・アセンブリ要素は、次の子要素をサポートします。

C.10.2属性

表C-9は、wlevs:channelアプリケーション・アセンブリ要素の属性を示しています。

表C-9 wlevs:channelアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

advertise

このサービスをOSGiレジストリに公開します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

Boolean

いいえ。

batching

イベントのバッチをイベント・チャネルで有効にするかどうかを指定します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

詳細は、9.1.6項「バッチ処理チャネル」を参照してください。

Boolean

いいえ。

event-type

イベント・チャネルを通過できるイベントのタイプを指定します。

String

はい。

id

このコンポーネントの一意の識別子。

この識別子は、このチャネルのXML構成ファイル内の<name>要素に対応している必要があります(その要素が存在する場合)。

String

はい。

is-relation

イベント・チャネルをパススルーできるイベントの種類を指定します。streamsおよびrelationsの2種類のイベントがサポートされています。Streamsは追加のみです。Relationsは、挿入、削除および更新処理をサポートします。

この属性のデフォルト値はfalseです。

Boolean

いいえ。

listeners

このコンポーネントをリスニングするコンポーネントを指定します。複数のコンポーネントはカンマを使用して区切ります。

この属性は、リスニング・コンポーネントを定義する要素(wlevs:adapterwlevs:channelまたはwlevs:processor)のid属性に設定します。

String

いいえ。

max-size

このチャネルのFIFOバッファの最大サイズは、max-sizeイベント数と指定します。

max-size = 0の場合、チャネルはイベントを同期的にパススルーします。

max-size > 0の場合は、チャネルはリクエストされたサイズでイベントをバッファリングし、イベントを非同期で処理します。

max-threadsが0の場合、max-sizeは0です。

この属性のデフォルト値は1024です。

integer

いいえ。

max-threads

このチャネルのイベントを処理するために使用されるスレッドの最大数を指定します。

max-threads = 0の場合、チャネルはパススルーとして機能します。イベントの順序が維持されます。

max-threads > 0の場合、チャネルは従来のブロッキング・キューのように機能し、アップストリーム・コンポーネントがイベントのプロデューサ、ダウンストリーム・コンポーネントがイベントのコンシューマになります。キューのサイズはmax-sizeの構成によって定義されます。キューからイベントを消費するスレッドは、最大でmax-threadsの数までとなります。イベントの順序は確定できません。

max-threadsは、再デプロイすることなく0から正の整数に(つまり、パス・スルーから複数スレッドに)変更できます。しかし、max-threadsを正の整数から0に(つまり、複数スレッドからパス・スルーに)変更する場合は、アプリケーションを再デプロイする必要があります。

max-size属性が0の場合は、max-threadsの値の設定には影響がありません。

この属性のデフォルト値は1です。

integer

いいえ。

primary-key

リレーションの主キーを「,」または空白で区切ったイベント・プロパティ名のリストとして指定します。

詳細は、9.1.2.2項「リレーションとしてのチャネル」を参照してください。

String

いいえ。

provider

ストリーム・プロバイダを指定します。

有効な値:

  • oracle.channel

デフォルト値は、すぐに使用できるように用意されているストリーミング・プロバイダであるoracle.channelです。

String

いいえ。

source

チャネルのイベント・ソースとなるコンポーネントを指定します。

この属性は、ソース・コンポーネントを定義する要素(wlevs:adapterwlevs:channelまたはwlevs:processor)のid属性に設定します。

String

いいえ。


C.10.3

次の例は、EPNアセンブリ・ファイルでのwlevs:channel要素の使用方法を示しています。

<wlevs:channel id="fxMarketAmerOut" />

この例は、fxMarketAmerOutという一意の識別子を持つチャネル・サービスを宣言する方法を示しています。

C.11 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ライフサイクルに参加することもできます。

C.11.1子要素

wlevs:event-beanアプリケーション・アセンブリ要素は、次の子要素をサポートします。

C.11.2属性

表C-10は、wlevs:event-beanアプリケーション・アセンブリ要素の属性を示しています。

表C-10 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

いいえ


C.11.3

次の例は、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からイベントを受け取ります。

C.12 wlevs:event-type-repository

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

この要素には、属性はありません。

C.12.1子要素

wlevs:event-type-repositoryアプリケーション・アセンブリ要素は、次の子要素をサポートします。

C.12.2

次の例は、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つのイベント・タイプを宣言しています。詳細は、C.13項「wlevs:event-type」を参照してください。

C.13 wlevs:event-type

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

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

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

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

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

C.13.1子要素

wlevs:event-typeアプリケーション・アセンブリ要素は、次の子要素をサポートします。

C.13.2属性

表C-11は、wlevs:event-typeアプリケーション・アセンブリ要素の属性を示しています。

表C-11 wlevs:event-typeアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

id

このイベント・タイプの一意の識別子を指定します。

この属性を指定しない場合は、Oracle CEPによって識別子が自動的に生成されます。

String

いいえ。

type-name

このイベント・タイプの名前を指定します。

これは、アダプタ、ビジネスPOJO、またはOracle CQLやEPLルール内でイベント・タイプを参照するときに使用する名前です。

String

はい。


C.13.3

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

<wlevs:event-type-repository>
        <wlevs:event-type type-name="SimpleEvent">
            <wlevs:properties>
                <wlevs:property name="msg" type="char" />
                <wlevs:property name="count" type="long" />
                <wlevs:property name="time_stamp" type="timestamp" />
        </wlevs:properties>
    </wlevs:event-type>
...
</wlevs:event-type-repository>

この例では、イベント・タイプの名前はSimpleEventで、その定義はwlevs:propertyによって決定されます。type属性の値はcom.bea.wlevs.ede.api.Typeクラスに適合する必要があります。

詳細は、2.1.3項「イベント・タイプ・データ型」を参照してください。

C.14 wlevs:expression

イベント処理のアプリケーション・タイムスタンプとして使用するwlevs:application-timestampedに算術式を指定するためにこの要素を使用します。

詳細は、『Oracle Fusion Middleware Oracle Complex Event Processing CQL言語リファレンス』のarith_exprに関する項を参照してください。

C.14.1

次の例は、明示的にアプリケーション・タイムスタンプのチャネルを指定するために、EPNアセンブリ・ファイルでのwlevs:expression要素を使用する方法について説明します。

<wlevs:channel id="fxMarketAmerOut" >
    <wlevs:application-timestamped>
        <wlevs:expression>mytime + 10</wlevs:expression>
    </wlevs:application-timestamped>
</wlevs:channel>

この例では、wlevs:expression要素は各イベントにタイムスタンプを割り当てるために使用する算術式を定義します。

C.15 wlevs:factory

この要素を使用して、ファクトリ・クラスをサービスとして登録します。この要素を使用することによりアプリケーションのSpring-OSGiインタフェースへの依存を軽減します。

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

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

この要素には、子要素はありません。

C.15.1属性

表C-12は、wlevs:factoryアプリケーション・アセンブリ要素の属性を示しています。

表C-12 wlevs:factoryアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

class

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

String

はい。

provider-name

このプロバイダの名前を指定します。後で、このファクトリを使用するコンポーネント内でこの名前を参照します。

String

はい。


C.15.2

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

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

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

C.16 wlevs:function

この要素を使用して、プロセッサ用のユーザー定義の関数を含むBeanを指定します。Oracle CEPは「単一行」および「集計」関数の両方をサポートします。

この要素は常に、ユーザー定義の関数を実装するSpringbeanを指定する参照または子としてSpringの標準bean要素を持ちます。

Oracle CQLプロセッサ上の単一行関数については、exec-method属性を使用して、実装クラスに1つのメソッドを関数として指定します。この場合は、メソッドはパブリックであり、一意の名前を持つ(つまり、メソッドをオーバーライドできない状態である)ことが必要です。function-name属性を使用して、exec-method名の別名を指定できます。Oracle CQL問合せでは、exec-method (名前またはfunction-name別名による)のみをコールします。

EPLプロセッサ上の単一行関数については、function-name属性を使用して、実装クラス名の別名を指定できます。この場合、exec-method名は適用できません。EPL問合せでは、実装クラス名またはfunction-name別名を使用して実装クラスにいずれかのパブリックまたは静的メソッドをコールします。

Oracle CQLまたはEPLプロセッサ上の集計関数については、Spring beancom.bea.wlevs.processorパッケージからの次のインタフェースを実装する必要があります。

集計関数については、Oracle CQLおよびEPLの両方のプロセッサに対してexec-method属性は適用できません。

詳細は、次を参照してください:

C.16.1属性

表C-13は、wlevs:functionアプリケーション・アセンブリ要素の属性を示しています。

表C-13 wlevs:functionアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

exec-method

Oracle CQLプロセッサ上のユーザー定義の「単一行」関数について、この要素は、関数を実装するSpring beanのメソッド名を指定します。この場合は、メソッドはパブリックであり、一意の名前を持つ(つまり、メソッドをオーバーライドできない状態である)ことが必要です。

EPLプロセッサ上のユーザー定義の単一行または集計関数あるいはOracle CQLプロセッサ上のユーザー定義の集計関数については、この属性は適用できません。

String

いいえ。

function-name

Oracle CQLプロセッサ上のユーザー定義の単一行関数については、この属性を使用してexec-method名の別名を定義します。そうすると、Oracle CQL問合せでは、exec-nameのかわりにfunction-nameが使用できます。

EPLプロセッサ上のユーザー定義の単一行関数については、この属性を使用して実装のSpring beanクラス名の別名を定義します。そうすると、EPL問合せでは、Spring beanクラス名のかわりにfunction-nameが使用でき、Spring beanクラスが実装するいずれかのパブリックまたは静的メソッドを呼び出すこともできます。

Oracle CQLまたはEPLプロセッサ上のユーザー定義の集計関数については、この属性を使用して実装のSpring beanクラス名の別名を定義します。そうすると、EPL問合せでは、Spring beanクラス名のかわりにfunction-nameが使用できます。

デフォルト値はSpring Bean名です。

String

いいえ。

ref

関数を実装するSpringbeanを指定します。

この属性は、Springbeanid属性の値に設定します。

Spring bean要素をwlevs:function要素の子とするかわりに使用できます。

String

いいえ。


C.16.2

次の例は、Oracle CQLおよびEPLプロセッサでのwlevs:function要素およびその属性の使用方法を示しています。

C.16.2.1Oracle CQLプロセッサ上の単一行のユーザー定義関数

例C-1では、Oracle CQLプロセッサ上の単一行のユーザー定義関数の実装方法について説明します。

例C-1 単一行のユーザー定義関数実装クラス

package com.bea.wlevs.example.function;

public class MyMod {
    public Object execute(int arg0, int arg1) {
        return new Integer(arg0 % arg1);
    }
}

例C-2では、EPNアセンブリ・ファイルでのOracle CQLプロセッサ上の単一行関数を定義するためにwlevs:functionを使用する方法について説明します。

例C-2 Oracle CQLプロセッサ上の単一行のユーザー定義関数

<wlevs:processor id="testProcessor">
    <wlevs:listener ref="providerCache"/>
    <wlevs:listener ref="outputCache"/>
    <wlevs:cache-source ref="testCache"/>
    <wlevs:function function-name="mymod" exec-method=”execute” />
        <bean class="com.bea.wlevs.example.function.MyMod"/>
    </wlevs:function>
</wlevs:processor>

例C-3では、Oracle CQL問合せでの関数の呼び出し方法について説明します。

例C-3 Oracle CQLプロセッサ上の単一行のユーザー定義関数の呼び出し

...
<view id="v1" schema="c1 c2 c3 c4"><![CDATA[ 
    select
        mymod(c1, 100), c2, c3, c4 
    from 
        S1
]]></view>
...
<query id="q1"><![CDATA[
    select * from v1 [partition by c1 rows 1] where c4 - c3 = 2.3 
]]></query>
...

C.16.2.2 EPLプロセッサ上の単一行のユーザー定義関数

例C-4では、EPLプロセッサ上の単一行のユーザー定義関数の実装方法について説明します。

例C-4 単一行のユーザー定義関数実装クラス

package com.bea.wlevs.example.function;

public class LegacyMathBean {
    public Object square(Object[] args) {
    ...
    }
    public Object cube(Object[] args) {
    ...
    }
}

例C-5では、EPNアセンブリ・ファイルでのEPLプロセッサ上の単一行関数を定義するためにwlevs:functionを使用する方法について説明します。

例C-5 EPLプロセッサ上の単一行のユーザー定義関数

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

C-6例では、EPL問合せでの関数の呼び出し方について説明します。

例C-6 EPLプロセッサ上の単一行のユーザー定義関数の呼び出し

<rule><![CDATA[ 
    select math.square(inputValue) ...
]]></rule>

C.16.2.3 Oracle CQLプロセッサ上の集計のユーザー定義関数

例C-7では、Oracle CQLプロセッサに対するユーザー定義の集計関数の実装方法について説明します。

例C-7 集計のユーザー定義関数実装クラス

package com.bea.wlevs.test.functions;
 
import com.bea.wlevs.processor.AggregationFunction;
import com.bea.wlevs.processor.AggregationFunctionFactory;
 
public class Variance implements AggregationFunctionFactory, AggregationFunction {
 
    private int count;
    private float sum;
    private float sumSquare;
 
    public Class<?>[] getArgumentTypes() {
        return new Class<?>[] {Integer.class};
    }
 
    public Class<?> getReturnType() {
        return Float.class;
    }
 
    public AggregationFunction newAggregationFunction() {
        return new Variance();
    }
 
    public void releaseAggregationFunction(AggregationFunction function) {
    }
 
    public Object handleMinus(Object[] params) {
        if (params != null && params.length == 1) {
            Integer param = (Integer) params[0];
            count--;
            sum -= param;
            sumSquare -= (param * param);
        }
        
        if (count == 0) {
            return null;
        } else {
            return getVariance();
        }
    }
 
    public Object handlePlus(Object[] params) {
        if (params != null && params.length == 1) {
            Integer param = (Integer) params[0];
            count++;
            sum += param;
            sumSquare += (param * param);
        }
        
        if (count == 0) {
            return null;
        } else {
            return getVariance();
        }
    }
 
    public Float getVariance() {
        float avg = sum / (float) count;
        float avgSqr = avg * avg;
        float var = sumSquare / (float)count - avgSqr;
        return var;
    }
 
    public void initialize() {
        count = 0;
        sum = 0.0F;
        sumSquare = 0.0F;
    }
 
}

例C-8では、EPNアセンブリ・ファイルでのOracle CQLプロセッサ上の集計関数を定義するためにwlevs:functionを使用する方法について説明します。

例C-8 Oracle CQLプロセッサ上の集計のユーザー定義関数

  <wlevs:processor id="testProcessor">
     <wlevs:listener ref="providerCache"/>
     <wlevs:listener ref="outputCache"/>
     <wlevs:cache-source ref="testCache"/>
     <wlevs:function function-name="var">
       <bean class="com.bea.wlevs.test.functions.Variance"/>
     </wlevs:function>
   </wlevs:processor>

例C-9では、Oracle CQL問合せでの関数の呼び出し方法について説明します。

例C-9 Oracle CQLプロセッサ上の集計のユーザー定義関数の呼び出し

...
<query id="uda6"><![CDATA[ 
    select var(c2) from S4[range 3] 
]]></query>
...

C.16.2.4 EPLプロセッサ上の集計のユーザー定義関数

例C-10では、EPLプロセッサに対するユーザー定義の集計関数の実装方法について説明します。

例C-10 集計のユーザー定義関数実装クラス

package com.bea.wlevs.test.functions;
 
import com.bea.wlevs.processor.AggregationFunction;
import com.bea.wlevs.processor.AggregationFunctionFactory;
 
public class Variance implements AggregationFunctionFactory, AggregationFunction {
 
    private int count;
    private float sum;
    private float sumSquare;
 
    public Class<?>[] getArgumentTypes() {
        return new Class<?>[] {Integer.class};
    }
 
    public Class<?> getReturnType() {
        return Float.class;
    }
 
    public AggregationFunction newAggregationFunction() {
        return new Variance();
    }
 
    public void releaseAggregationFunction(AggregationFunction function) {
    }
 
    public Object handleMinus(Object[] params) {
        if (params != null && params.length == 1) {
            Integer param = (Integer) params[0];
            count--;
            sum -= param;
            sumSquare -= (param * param);
        }
        
        if (count == 0) {
            return null;
        } else {
            return getVariance();
        }
    }
 
    public Object handlePlus(Object[] params) {
        if (params != null && params.length == 1) {
            Integer param = (Integer) params[0];
            count++;
            sum += param;
            sumSquare += (param * param);
        }
        
        if (count == 0) {
            return null;
        } else {
            return getVariance();
        }
    }
 
    public Float getVariance() {
        float avg = sum / (float) count;
        float avgSqr = avg * avg;
        float var = sumSquare / (float)count - avgSqr;
        return var;
    }
 
    public void initialize() {
        count = 0;
        sum = 0.0F;
        sumSquare = 0.0F;
    }
 
}

例C-11では、EPNアセンブリ・ファイルでのEPLプロセッサ上の集計関数を定義するためにwlevs:functionを使用する方法について説明します。

例C-11 EPLプロセッサ上の集計のユーザー定義関数

  <wlevs:processor id="testProcessor" provider="epl">
     <wlevs:listener ref="providerCache"/>
     <wlevs:listener ref="outputCache"/>
     <wlevs:cache-source ref="testCache"/>
     <wlevs:function function-name="var">
       <bean class="com.bea.wlevs.test.functions.Variance"/>
     </wlevs:function>
   </wlevs:processor>

C-12例では、EPL問合せでの関数の呼び出し方について説明します。

例C-12 EPLプロセッサ上の集計のユーザー定義関数の呼び出し

...
<rule><![CDATA[ 
    select var(c2) from S4
]]></rule>
...

C.16.2.5実装クラスの指定: ネストしたBeanまたはリファレンス

C-13例は、EPNアセンブリ・ファイルでのネストされたbeanを持つwlevs:function要素の使用方法を示しています。

例C-13 ネストしたBean要素を使用するユーザー定義関数

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

例C-14では、EPNアセンブリ・ファイルでのwlevs:function要素以外で定義されたbean要素を参照するために、wlevs:function要素とそのref属性を使用する方法について説明します。

例C-14 リファレンスを使用するユーザー定義関数

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

C.17 wlevs:instance-property

この要素は子要素であるコンポーネントのcreateステージ・インスタンスに適用するプロパティを指定します。これにより、ユーザー定義のステージ・プロパティの宣言的な構成が可能になります。

たとえば、wlevs:instance-propertywlevs:event-beanに指定する場合、Oracle CEPでは該当するsetterメソッドはクラスをインスタンス化するcom.bea.wlevs.spring.EventBeanFactoryBeanではなく、実装するJavaクラスで検索されます。ファクトリのプロパティを指定するには、wlevs:propertyを使用します。

この要素は、wlevs:adapterwlevs:event-beanwlevs:processorwlevs:channelまたはwlevs:caching-systemの子としてのみ使用されます。

wlevs:instance-property要素は、Spring propertyType型として定義されます。このSpringデータ型の詳細や、使用可能な子要素の定義などは、http://www.springframework.org/schema/beans/spring-beans-2.0.xsdを参照してください。

C.17.1子要素

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

  • meta

  • bean

  • ref

  • idref

  • value

  • null

  • list

  • set

  • map

  • props

C.17.2属性

表C-14は、wlevs:instance-propertyアプリケーション・アセンブリ要素の属性を示しています。

表C-14 wlevs:instance-propertyアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

name

JavaBeanのネーミング・ルールに従ってプロパティの名前を指定します。

String

はい。

ref

ネストされた<ref bean='...'/>要素へのショートカットです。

String

いいえ。

value

ネストされた<value>...</value>要素へのショートカットです。

String

いいえ。


C.17.3

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

<wlevs:event-bean id="pubsubCounterBeanRemote"
    class="com.oracle.cep.example.httppubsub.RemoteEventCounter">
    <wlevs:listener ref="pubsubRemote" />
    <wlevs:instance-property name="expectedEvents" value="4000" />
</wlevs:event-bean>

この例では、イベントBean com.oracle.cep.example.httppubsub.RemoteEventCounterクラスから該当するsetterメソッドが提供されます。

...
    private int expectedEvents;
 
    public void setExpectedEvents(String expectedEvents) {
        this.expectedEvents = new Integer(expectedEvents).intValue();
    }
...

instance-propertyStringタイプです。これは必要に応じてsetterメソッドで変換します。この例では、Stringint値に変換されます。

setterメソッドの名前はJavaBeanネーミング・ルールに準拠している必要があります。この例では、setter名はsetExpectedEventsであり、これはJavaBeanのルールにより、wlevs:instance-property要素のname属性値expectedEventsに対応しています。name属性値がobjであり、setterメソッド名がsetObjectの場合、Oracle CEPから「無効なプロパティ」例外がスローされます。その場合、setter名はsetObjになります。

C.18 wlevs:listener

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


注意:

ネストされた定義は、動的構成または動的モニターには使用できません。


この要素は、常にwlevs:adapterwlevs:processorwlevs:channelまたはwlevs:caching-systemの子です。

C.18.1属性

表C-15は、wlevs:listenerアプリケーション・アセンブリ要素の属性を示しています。

表C-15 wlevs:listenerアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

ref

親コンポーネントをリスニングするコンポーネントを指定します。

この属性は、リスナー・コンポーネントのid属性の値に設定します。

リスナーをネストする場合は、この属性を指定しないでください。

String

いいえ。


C.18.2

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

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

この例では、hellworldOutstreamコンポーネントはhelloworldProcessorコンポーネントにリスニングします。このEPNアセンブリ・ファイルには、一意の識別子がhelloworldOutstreamであるwlevs:adapterwlevs:channelまたはwlevs:processor要素の宣言も含まれていると想定しています。

C.19 wlevs:metadata

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

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

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

wlevs:metadata要素は、Spring mapType型として定義されます。このSpringデータ型の詳細は、http://www.springframework.org/schema/beans/spring-beans-2.0.xsdを参照してください。

C.19.1子要素

wlevs:metadata要素は、1つ以上の標準Spring entry子要素を含むことができます。詳細は、http://www.springframework.org/schema/beans/spring-beans-2.0.xsdを参照してください。

C.19.2属性

表C-16は、wlevs:metadataアプリケーション・アセンブリ要素の属性を示しています。

表C-16 wlevs:metadataアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

key-type

ネストされたentry要素のJavaデータ型を表現するデフォルトの完全修飾したクラス名です。

この属性は、entry要素をネストした場合にのみ使用できます。

String

いいえ。


C.19.3

次の例は、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つの標準Springentry要素をグループ化しています。これらの4つの要素は、ForeignExchangeEventの4つのフィールド、つまりsymbolpricefromRateおよびtoRateを表現します。これらのフィールドのデータ型は、それぞれ、java.lang.Stringjava.lang.Doublejava.lang.Stringおよびjava.lang.Stringです。

C.20 wlevs:processor

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

C.20.1子要素

wlevs:processor Spring要素は、次の子要素をサポートします。

C.20.2属性

表C-17は、wlevs:processorアプリケーション・アセンブリ要素の属性を示しています。

表C-17 wlevs:processorアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

id

このコンポーネントの一意の識別子。

この識別子は、このプロセッサのXML構成ファイルでの<name>要素に対応している必要があります。そうすることで、ネットワークのどのプロセッサ・コンポーネントに対してどのOracle CQLまたはEPLルールを実行するかをOracle CEPに指定します。

String

はい。

advertise

このサービスをOSGiレジストリに公開します。

有効な値は、trueおよびfalseです。デフォルト値はfalseです。

Boolean

いいえ。

listeners

このコンポーネントをリスニングするコンポーネントを指定します。

この属性は、コンポーネントを宣言した要素のid属性の値に設定します。

String

いいえ。

provider

Oracle CQL (Oracle Continuous Query Language)やEPL (Event Processor Language)など、プロセッサの言語プロバイダを指定します。

有効な値:

  • epl

  • cql

デフォルト値はcqlです。

String

いいえ。

queryURL

このプロセッサのOracle CQLまたはEPLルール定義ファイルを示すURLを指定します。

String.

いいえ。


C.20.3

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

<wlevs:processor id="spreader" />

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

C.21 wlevs:property

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

たとえば、wlevs:propertywlevs:event-beanに指定する場合、Oracle CEPでは該当するsetterメソッドは実装するJavaクラスではなく、Javaクラスをインスタンス化するcom.bea.wlevs.spring.EventBeanFactoryBeanで検索されます。Javaクラスのプロパティを指定するには、wlevs:instance-propertyを使用します。

この要素は、wlevs:adapterwlevs:event-beanwlevs:event-typewlevs:processorwlevs:channelまたはwlevs:caching-systemの子としてのみ使用されます。

wlevs:property要素は、Spring propertyType型として定義されます。このSpringデータ型の詳細や、使用可能な子要素の定義などは、http://www.springframework.org/schema/beans/spring-beans-2.0.xsdを参照してください。

C.21.1子要素

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

  • meta

  • bean

  • ref

  • idref

  • value

  • null

  • list

  • set

  • map

  • props

C.21.2属性

表C-18は、wlevs:propertyアプリケーション・アセンブリ要素の属性を示しています。

表C-18 wlevs:propertyアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

name

JavaBeanのネーミング・ルールに従ってプロパティの名前を指定します。

String

はい。

ref

ネストされた<ref bean='...'/>要素へのショートカットです。

String

いいえ。

value

ネストされた<value>...</value>要素へのショートカットです。

String

いいえ。


C.21.3

次の例は、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を指定します。

C.22 wlevs:source

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

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


注意:

ネストされた定義は、動的構成または動的モニターには使用できません。


この要素は、wlevs:channelまたはwlevs:processorの子です。

C.22.1属性

表C-19は、wlevs:sourceアプリケーション・アセンブリ要素の属性を示しています。

表C-19 wlevs:sourceアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

ref

この要素が子であるチャネルのソースを指定します。

この属性は、ソース・コンポーネントのid属性の値に設定します。

この属性は、ソースをネストする場合には指定しません。

String

いいえ。


C.22.2

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

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

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

C.23 wlevs:table

1つ以上のプロセッサ・コンポーネントにデータを提供するリレーショナル・データベース表を指定します。プロセッサ・コンポーネントは、表を直接参照するOracle CQL問合せに関連付けられます。

C.23.1属性

表C-20は、wlevs:tableアプリケーション・アセンブリ要素の属性を示しています。

表C-20 wlevs:tableアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

id

このコンポーネントの一意の識別子。

この識別子は、この表のXML構成ファイル内の<name>要素に対応している必要があります。

String

はい。

event-type

イベント・タイプ・リポジトリで定義されているようにこの表に関連付けられているイベント・タイプです。

String

はい。

data-source

このデータベース表へのアクセスに使用されるOracle CEPサーバーの構成ファイルで定義されるリレーショナル・データ・ソース名です。

String

はい。


C.23.2

次の例は、EPNアセンブリ・ファイルでのwlevs:table要素の使用方法を示しています。

<wlevs:table id="Stock" event-type="StockEvent" data-source="StockDs" />

<wlevs:processor id="proc">
    <wlevs:table-source ref="Stock" />
</wlevs:processor>

この例では、wlevs:processorwlevs:table-source要素を使用して表を参照しています。

C.24 wlevs:table-source

このプロセッサ・コンポーネントにデータを提供するリレーショナル・データベース表を指定します。プロセッサ・コンポーネントは、表を直接参照するOracle CQL問合せに関連付けられます。

この要素は、wlevs:processor要素のみの子です。

C.24.1属性

表C-21は、wlevs:table-sourceアプリケーション・アセンブリ要素の属性を示しています。

表C-21 wlevs:table-sourceアプリケーション・アセンブリ要素の属性

属性 説明 データ型 必須?

ref

プロセッサ・コンポーネントのデータのソースであるリレーショナル・データベース表を指定します。

この属性は、wlevs:table要素のid属性の値に設定します。

String

はい。


C.24.2

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

<wlevs:table id="Stock" event-type="StockEvent" data-source="StockDs" />

<wlevs:processor id="proc">
    <wlevs:table-source ref="Stock" />
</wlevs:processor>