Oracle® Fusion Middleware Oracle Stream Analyticsスキーマ・リファレンス 12c リリース (12.2.1.1.0) E79305-01 |
|
前へ |
次へ |
この付録では、Oracle/Middleware/my_osa/osa/wlevs_application_config.xsd
スキーマの要素のリファレンスを示します。このスキーマは、Oracle Stream Analyticsアプリケーションのコンポーネント(アダプタ、チャネル、キャッシング・システム、イベントBeanなど)を構成するために使用するXMLファイルの背後にあります。
この章で説明する要素の使用方法の詳細は、『Oracle Stream Analyticsによるイベント処理用アプリケーションの開発』を参照してください。
この付録の内容は次のとおりです。
この要素を使用すると、ソケット上で許可される待機中の接続の最大数を定義できます。この要素はnetio要素内でのみ適用できます。この要素には、子要素も属性もありません。
次の例では、コンポーネント構成ファイル内でのaccept-backlog
要素の使用方法を示します。
<netio> <provider-name>providerCache</provider-name> <num-threads>1000</num-threads> <accept-backlog>50</accept-backlog> </netio>
active要素を使用すると、イベント・トレースのオンとオフを切り替えることができます。true
の場合、イベント・トレースはオンです。false
の場合、イベント・トレースはオフです。active
要素の値がfalse
に設定されている場合、channel-name
値は無視されます。この要素には、子要素も属性もありません。
次の例はイベント・トレース用のプロセッサを構成する方法を示します。trace-parameters
要素のactive
子要素はトレースをオンにすることを指定し、channel-name
要素はトレースされる要素の送信先のHTTPパブリッシュ・サブスクライブ(HTTP pub-sub)チャネルを指定します。
<processor> <name>FindCrossRates</name> <trace-parameters> <active>true</active> <channel-name>/NonClusteredServer/fx/FindCrossRates/output</channel-name> </trace-parameters> <rules> <!-- Query rules omitted. --> </rules> </processor>
この要素を使用すると、カスタム・アダプタ・コンポーネントを定義できます。この要素には、次の子要素があり、属性はありません。
次の特殊なadapter要素も参照してください。http-pub-sub-adapter、jms-adapter、edn-adapter、csv-adapter、obr-adapter、またはrmi-adapterの各要素。
次の例はコンポーネント構成ファイル内のadapter
要素の使用方法を示します。この例では、adapterの一意の識別子はtrackdata
です。
<adapter> <name>trackdata</name> <symbols> <symbol>BEAS</symbol> <symbol>IBM</symbol> </symbols> </adapter>
adapter
コンポーネント構成要素は、次の子要素をサポートしており、属性はありません。
この要素を使用すると、診断プロファイルの期間を定義できます。amount
要素には、子要素も属性もありません。
この要素は、次のいずれかの要素とともに使用できます。
診断プロファイルの詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例は、コンポーネント構成ファイル内のamount
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
append
要素をCSVアウトバウンド・アダプタとともに使用すると、イベント・データを出力CSVファイルに追加するかどうかを指定できます(存在する場合)。true
の場合、Oracle Stream Analyticsは既存のCSV出力ファイルにデータを追加します。false
の場合、Oracle Stream Analyticsは新しいCSVファイルを作成するか、同じ名前の既存のCSVファイルを上書きします。この要素には、子要素も属性もありません。
次の例はStockTradeCSVOutboundAdapter
のアセンブリ・ファイル・エントリを示します。append
要素の値はfalse
です。
<wlevs:adapter id="StockTradeCSVOutboundAdapter" provider="csv-outbound"> <wlevs:instance-property name="eventType" value="TradeEvent"/> <wlevs:instance-property name="outputFile" value="/scratch/mpawlan/oep9-19/oep/utils/load-generator/StockData.csv"/> <wlevs:instance-property name="append" value="false"/> </wlevs:adapter>
この要素を使用して、Oracle Stream Analyticsサーバーが外部ステージに適用するアプリケーションのタイプを定義します。診断プロファイルでは、この要素は常にdiagnostic
の値を持ちます。この要素には、子要素も属性もありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例は、コンポーネント構成ファイル内のapplication
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
average-interval
要素を使用すると、メトリックを収集する時間間隔を定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例は、コンポーネント構成ファイル内のaverage-interval
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
診断プロファイルにおける平均待機時間の計算を定義するためにこの要素を使用します。
次の例はコンポーネント構成ファイル内のaverage-latency
要素の使用方法を示します。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <average-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> <threshhold> <amount>100</amount> <unit>MILLISECONDS</unit> </threshhold> </average-latency> </profile> </diagnostic-profiles>
Oracle Stream Analyticsアプリケーションでは、com.oracle.cep.cluster.hagroups.ActiveActiveGroupBean
クラスを使用して、受信JMSストリームを通知グループごとにパーティション化できます。これにより、jms-adapter
bindings
要素を使用して、通知グループを特定のmessage-selector
値と関連付けることができます。
この要素には、group-binding子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のbindings
要素の使用方法を示します。この構成を持つアプリケーションがサーバーにデプロイされたときに、ActiveActiveGroupBean_group1
が含まれるcluster
要素のgroups
子要素がサーバーにある場合、次のようになります。
400より大きいacctid
プロパティを持つイベントが処理されます。
CONDITION
パラメータはacctid > 400
として定義されます。
<jms-adapter> <name>JMSInboundAdapter</name> <event-type>StockTick</event-type> <jndi-provider-url>t3://ppurich-pc:7001</jndi-provider-url> <destination-jndi-name>./Topic1</destination-jndi-name> <user>weblogic</user> <password>weblogic1</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>true</session-transacted> <message-selector>${CONDITION}</message-selector> <bindings> <group-binding group-id="ActiveActiveGroupBean_group1"> <param id="CONDITION">acctid > 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group2"> <param id="CONDITION">acctid BETWEEN 301 AND 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group3"> <param id="CONDITION">acctid BETWEEN 201 AND 300</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group4"> <param id="CONDITION">acctid <= 200</param> </group-binding> </bindings> </jms-adapter>
プロセッサのbindings
要素を使用すると、プロセッサ・コンポーネントにおいて1つ以上のパラメータ化されたOracle CQLルールのバインドを定義できます。bindings
コンポーネント構成要素には、binding
子要素があり、属性はありません。
詳細は、『Oracle CQL言語リファレンス』を参照してください。
次の例は、コンポーネント構成ファイル内のbindings
要素の使用方法を示します。
<processor> <name>processor1</name> <record-parameters> <dataset-name>test1data</dataset-name> <event-type-list> <event-type>SimpleEvent</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters> <rules> <rule id="rule1"><![CDATA[ select stockSymbol, avg(price) as percentage from StockTick retain 5 events where stockSymbol=? having avg(price) > ? or avg(price) < ? ></rule> </rules> <bindings> <binding id="rule1"> <params>BEAS,10.0,-10.0</params> <params id="IBM">IBM,5.0,5.0</params> </binding> </bindings> </processor>
buffer-size
要素を使用すると、内部ストア・バッファのサイズを定義できます。このバッファは、ストアに書き込む必要がある非同期更新を一時的に保存するために使用されます。動的更新はサポートしていません。この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のbuffer-size
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
buffer-write-attempts
要素を使用すると、ユーザー・スレッドがストア・バッファに書き込むために行う試行回数を定義できます。ユーザー・スレッドとは、キャッシュ・エントリの作成または更新を行うスレッドです。ユーザー・スレッドがストア・バッファに書き込むことができない場合(すべての書き込み試行が失敗した場合)、同期的にストアを起動します。この要素は動的に変更されます。
この要素には、子要素も属性もありません。
次の例は、コンポーネント構成ファイル内のbuffer-write-attempts
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
buffer-write-timeout
要素を使用すると、ユーザー・スレッドがストア・バッファへの書き込み試行を中断するまでの待機時間をミリ秒単位で定義できます。ストア・バッファへの書き込み試行が失敗するのは、バッファがいっぱいの場合のみです。タイムアウト後は以降のバッファへの書き込み試行はbuffer-write-attemptsの値に基づいて行われます。この要素は動的に変更されます。
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のbuffer-write-timeout
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
cache
要素を使用すると、コンポーネントのキャッシュを定義できます。cacheは、イベントを格納する一時記憶域で、Oracle Stream Analyticsアプリケーションの全体的なパフォーマンスを改善することのみを目的として作成されます。キャッシュは、アプリケーションが正常に機能するためには必要ありません。Oracle Stream Analyticsのアプリケーションは、キャッシュへのイベントのパブリッシュやキャッシュからのイベントの消費を行うオプションで、イベントの可用性およびアプリケーションのパフォーマンスを向上させることができます。
この要素には、次の子要素があり、属性はありません。
次のいずれか。
次の例はコンポーネント構成ファイル内のcache
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
caching-element
要素を使用すると、Oracle Stream Analyticsローカル・キャッシング・システム・コンポーネントを定義できます。キャッシング・システムは、キャッシング実装の構成済インスタンスを示します。キャッシング・システムは、構成済キャッシュの名前付きセットを定義する他、それらの任意のキャッシュが複数のマシン上に分散配置されている場合には、リモート通信の構成も定義します。
この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のcaching-system
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
channel要素を使用すると、チャネル・コンポーネントを定義できます。Oracle Stream Analyticsアプリケーションには1つ以上のチャネル・コンポーネントが含まれます。このコンポーネントはアダプタとプロセッサ間やプロセッサとイベントBean(ビジネス・ロジックPOJO)間のような別のタイプのコンポーネント間をイベントが往来する物理的なパイプを表します。
この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のchannel
要素の使用方法を示します。この例ではchannelの一意の識別子はMatchOutputChannel
です。
<channel> <name>monitoring-control-stream</name> <max-size>10000</max-size> <max-threads>1</max-threads></channel>
channel
要素を使用すると、http-pub-sub-adapterがパブリッシュまたはサブスクライブする対象のチャネルを指定できます。いずれのチャネルもローカル/リモートであろうとパブリッシュ用/サブスクライブ用であろうとすべてのhttp-pub-sub-adapterに割り当てられます。この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のchannel
要素の使用方法を示します。この例ではlocalPublisher
パブリッシュ/サブスクライブ・アダプタはパターン/channel2
を用いてローカル・チャネルにパブリッシュします。
<http-pub-sub-adapter>
<name>localPublisher</name>
<server-context-path>/pubsub</server-context-path>
<channel>/channel2</channel>
</http-pub-sub-adapter>
channel-name
要素を使用すると、イベントをインジェクトするチャネルまたはトレースされたイベントを送信するチャネルの名前を指定できます。この要素には、子要素も属性もありません。active
要素の値がfalse
の場合、channel-name
値は無視されます。
要素の値は、次の形式のチャネルへのパスにし、スラッシュで始まる必要があります。
イベント・トレース: /serverID/appID/stageID/output
イベント・インジェクション: /serverID/appID/stageID/input
次の例はイベント・トレース用のプロセッサを構成する方法を示します。trace-parameters
要素のactive
子要素はトレースをオンにすることを指定し、channel-name
要素はトレースされる要素の送信先のHTTP pub-subチャネルを指定します。
<processor> <name>FindCrossRates</name> <trace-parameters> <active>true</active> <channel-name>/NonClusteredServer/fx/FindCrossRates/output</channel-name> </trace-parameters> <rules> <!-- Query rules omitted. --> </rules> </processor>
この要素を使用するとcoherence-caching-system
用のOracle Coherenceキャッシュ構成を定義できます。この要素には、子要素も属性もありません。
次の例は、コンポーネント構成ファイル内のcoherence-cache-config
要素の使用方法を示します。
<coherence-caching-system> <name>nativeCachingSystem</name> <coherence-cache-config> applications/cache_cql/coherence/coherence-cache- </coherence-cache-config></coherence-caching-system>
coherence-caching-system
要素を使用すると、Oracle Coherenceキャッシング・システム・コンポーネントを定義できます。キャッシング・システムは、キャッシング実装の構成済インスタンスを示します。キャッシング・システムは、構成済キャッシュの名前付きセットを定義する他、それらの任意のキャッシュが複数のマシン上に分散配置されている場合には、リモート通信の構成も定義します。
この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のcoherence-caching-system
要素の使用方法を示します。この例ではchannelの一意の識別子はnativeCachingSystem
です。
<coherence-caching-system> <name>nativeCachingSystem</name> <coherence-cache-config> applications/cache_cql/coherence/coherence-cache- </coherence-cache-config> </coherence-caching-system>
coherence-cluster-config
要素を使用すると、coherence-caching-system
用のOracle Coherenceクラスタ構成を定義できます。この要素には、子要素も属性もありません。
詳細は、Oracle Stream Analyticsの管理を参照してください。
次の例は、コンポーネント構成ファイル内のcoherence-cache-config
要素の使用方法を示します。
<coherence-caching-system> <name>nativeCachingSystem</name> <coherence-cluster-config> applications/cluster_cql/coherence/coherence-cluster- </coherence-cluster-config></coherence-caching-system>
collect-interval
要素を使用すると、診断プロファイルにおいてaverage-latency
またはmax-latency
要素の収集間隔を定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のcollect-interval
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
concurrent-consumers
要素を使用すると、作成するコンシューマ数を定義できます。デフォルト値は、1です。この要素には、子要素も属性もありません。
この値を1より大きい数字に設定した場合は、コンバータBeanがスレッド・セーフであることを確認してください。これは、コンバータBeanがコンシューマ間で共有されるためです。concurrent-consumers
の値が1より大きく、すべてのコンシューマを同時に実行する場合、このJMSアダプタと関連付けるwork-managerの構成方法を検討してください。
work-manager
が他のコンポーネント(その他のアダプタおよびJetty)と共有されている場合、work-manager
属性max-threads-constraint
をconcurrent-consumers
の設定以上に設定します。
work-manager
が共有されていない場合(つまり、この受信JMSアダプタ専用の場合)、work-manager
属性max-threads-constraint
をconcurrent-consumers
と同じ設定にします。
詳細は、「work-manager」を参照してください。
次の例はコンポーネント構成ファイル内のconcurrent-consumers
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
connection-jndi-name
要素を使用すると、JMS接続ファクトリのJNDI名を定義できます。Oracle Stream AnalyticsサーバーJMSのデフォルト値は、weblogic.jms.ConnectionFactory
です。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
次の例はコンポーネント構成ファイル内のconnection-jndi-name
要素の使用方法を示します。
connection-encrypted-password
要素を使用すると、JMSサービス・プロバイダへの接続取得時にOracle Stream Analyticsが使用する暗号化されたjms-adapter
パスワードを定義できます。この要素には、子要素も属性もありません。
Oracle Stream Analyticsは、javax.jms.ConnectionFactory
のcreateConnection
メソッドを呼び出して、JMS宛先(JMSキューまたはトピック)への接続を作成するときに、connection-user
要素と、connection-password
要素またはconnection-encrypted-password
要素(構成されている場合)を使用します。それ以外の場合、Oracle Stream Analyticsはuser
要素とpassword
要素(またはencrypted-password
要素)を使用します。connection-encrypted-password
またはconnection-password
のいずれかを使用します。ただし、両方を使用することはできません。
次の例はコンポーネント構成ファイル内のconnection-encrypted-password
要素の使用方法を示します。
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> <connection-user>wlevscon</user> <encrypted-password>{Salted-3DES}s4YUEvH4Wl2DAjb45iJnrw==</encrypted-password> </http-pub-sub-adapter>
connection-password
要素を使用すると、JMSサービス・プロバイダへの接続取得時にOracle Stream Analyticsが使用するjms-adapter
パスワードを定義できます。この要素には、子要素も属性もありません。
Oracle Stream Analyticsは、javax.jms.ConnectionFactory
のcreateConnection
メソッドを呼び出して、JMS宛先(JMSキューまたはトピック)への接続を作成するときに、connection-user
要素と、connection-password
要素またはconnection-encrypted-password
要素(構成されている場合)を使用します。それ以外の場合、Oracle Stream Analyticsはuser
要素とpassword
要素(またはencrypted-password
要素)を使用します。
connection-password
またはconnection-encrypted-password
のいずれかを使用します。ただし、両方を使用することはできません。
次の例はコンポーネント構成ファイル内のconnection-password
要素の使用方法を示します。
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> <connection-user>wlevscon</user> <connection-password>wlevscon</password> </http-pub-sub-adapter>
connection-user
要素を使用すると、Oracle Stream AnalyticsがJMSサービス・プロバイダへの接続取得時に使用するjms-adapter
のユーザー名を定義できます。この要素には、子要素も属性もありません。
Oracle Stream Analyticsは、javax.jms.ConnectionFactory
のcreateConnection
メソッドを呼び出して、JMS宛先(JMSキューまたはトピック)への接続を作成するときに、connection-user
要素と、connection-password
要素またはconnection-encrypted-password
要素(構成されている場合)を使用します。それ以外の場合、Oracle Stream Analyticsはuser
要素とpassword
要素(またはencrypted-password
要素)を使用します。
アプリケーションでconnection-user
およびconnection-password
(またはconnection-encrypted-password
)の設定を使用できます。その場合、一方のセキュリティ・プロバイダはJNDIアクセスに使用され、JMSアクセスには別のセキュリティ・プロバイダが使用されます。
次の例はコンポーネント構成ファイル内のconnection-user
要素の使用方法を示します
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> <connection-user>wlevscon</user> <connection-password>wlevscon</password> </http-pub-sub-adapter>
context-path
要素を使用すると、Webサーバー上でアプリケーションをデプロイする場所を指定できます。context-path
要素には、子も属性もありません。
次の例は構成ファイル内のcontext-path
要素の使用方法を示します。
<rest-adapter> <name>httpInbound</name> <event-type-name>CallCenterActivity</event-type-name> <context-path>/testhttpadapter</context-path> </rest-adapter> <jaxb-mapper> <name>xmlMapperBean</name> <event-type-name>CallCenterActivity</event-type-name> <metadata>external_metadata_case1.xml</metadata> </jaxb-mapper> <csv-mapper> <name>csvMapperBean</name> <context-path>org.callcenter</context-path> <validate>false</validate> </csv-mapper>
EDNに入力するためにカンマ区切りの値形式でデータを受信するにはCSVインバウンド・アダプタを使用し、EDNから出力するカンマ区切りの値形式でデータを送信するにはCSVアウトバウンド・アダプタを使用します。csv-adapter
要素には、次の子要素があり、属性はありません。
次の構成ファイルの例は、csv-adapter
要素を使用してCSVのインバウンド・アダプタおよびアウトバウンド・アダプタを作成する方法を示します。
<csv-adapter> <name>StockTradeCSVInboundAdapter</name> </csv-adapter> <csv-adapter> <name>StockTradeCSVOutboundAdapter</name> </csv-adapter>
csv-mapper
要素を使用すると、着信CSVデータを処理できます。この要素には、次の子要素があり、属性はありません。
次の例は構成ファイル内のcsv-mapper
要素の使用方法を示します。
<rest-adapter> <name>httpInbound</name> <event-type-name>CallCenterActivity</event-type-name> <context-path>/testhttpadapter</context-path> </rest-adapter> <jaxb-mapper> <name>xmlMapperBean</name> <event-type-name>CallCenterActivity</event-type-name> <metadata>external_metadata_case1.xml</metadata> </jaxb-mapper> <csv-mapper> <name>csvMapperBean</name> <context-path>org.callcenter</context-path> <validate>false</validate> </csv-mapper>
database
要素を使用すると、Oracle CQLプロセッサのデータベース参照を定義できます。この要素には、子要素がなく、次の属性があります。
表4-1 databaseコンポーネント構成要素の属性
|
次の例は、コンポーネント構成ファイル内のdatabase
要素の使用方法を示します。
<processor> <name>proc</name> <rules> <rule id="rule1"><![CDATA[ SELECT symbol, price FROM ExchangeEvent retain 1 event, StockDb ('SELECT symbol FROM Stock WHERE symbol = ${symbol}') ></rule> </rules> <database name="StockDb" data-source-name="StockDs" /> </processor>
decision-function要素を使用すると、使用するOBR決定関数の名前を指定できます。この要素には、子要素も属性もありません。
次の例はdecision-function
要素の使用方法を示します。
<processor> <name>helloworldProcessor</name> <rules> <query id="helloworldRule"> <!-- <![CDATA[ select * from helloworldInputChannel[range 10 slide 5] > --> select * from helloworldInputChannel[now] </query> </rules> </processor> <obr-adapter> <name>OBRAdapter</name> <dictionary-url>file:helloworld.rules</dictionary-url> <decision-function>handler1</decision-function> </obr-adapter>
default-session
要素は、1つ以上のsession
要素が必要な場合に使用します。デフォルトでは、すべてのsession
タグが、default-session
タグで宣言されているすべての要素を継承します。
delivery-mode
要素を使用すると、jms-adapter
用の配信モードを定義できます。この要素には、子要素も属性もありません。
有効な配信モードは、次のとおりです。
persistent
(デフォルト)
nonpersistent
次の例は、コンポーネント構成ファイル内のdelivery-mode
要素の使用方法を示します。
<jms-adapter> <name>jmsOutbound-map</name> <event-type>JMSTestEvent</event-type> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-jndi-name>Topic1</destination-jndi-name> <delivery-mode>nonpersistent</delivery-mode> </jms-adapter>
description
属性を使用すると、QuickFixアダプタのsession
またはconfiguration
要素を説明できます。
次の例はQuickFixアダプタ内のdescription
要素の使用方法を示します。
<quickfix-adapter> <name>quickfixAdpater</name> <event-type>MyConfigEvent</event-type> <default-session description="default configuration"> ... <configuration description="identifier-message format"> <config-name>BeginString</config-name> <config-value>FIXT.0.1</config-value> </configuration> </default-session> <session description="ordertracker configuration"> <configuration description="identifier-acceptor"> <config-name>SenderCompID</config-name> <config-value>QA</config-value> </configuration> <configuration description="identifier-initiator"> <config-name>TargetCompID</config-name> <config-value>ORACLE</config-value> </configuration> </session> </quickfix-adapter>
destination-jndi-name
必須要素を使用すると、jms-adapter
用のJMS宛先名を定義できます。この要素には、子要素も属性もありません。
JNDI名または実際のdestination-name
のいずれかを指定します。ただし、両方は指定できません。
次の例は、コンポーネント構成ファイル内のdestination-jndi-name
要素の使用方法を示します。
<jms-adapter> <name>jmsOutbound-map</name> <event-type>JMSTestEvent</event-type> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-jndi-name>Topic1</destination-jndi-name> <delivery-mode>nonpersistent</delivery-mode> </jms-adapter>
destination-name
必須要素を使用すると、jms-adapter
用のJMS宛先名を定義できます。この要素には、子要素も属性もありません。
実際の宛先名またはdestination-jndi-name
のいずれかを指定します。ただし、両方は指定できません。
次の例は、コンポーネント構成ファイル内のdestination-name
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
destination-type
要素を使用すると、jms-adapter
用のJMS宛先タイプを定義できます。この要素には、子要素も属性もありません。
有効な値はTOPIC
またはQUEUE
です。durable-subscription
プロパティがtrue
に設定されている場合は常に、このプロパティをTOPIC
に設定する必要があります。
次の例は、コンポーネント構成ファイル内のdestination-type
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <destination-type>TOPIC</destination-name> <durable-subscription>true</durable-subscription> <durable-subscription-name>JmsDurableSubscription</durable-subscription-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
diagnostic-profiles
要素を使用すると、1つ以上のOracle Stream Analytics診断プロファイルを定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のdiagnostics-profiles
要素の使用方法を示します。この例ではchannelの一意の識別子はmyDiagnosticProfiles
です。
<diagnostics-profiles> <name>myDiagnosticProfiles</name> <profile> ... </profile> </diagnostics-profiles>
dictionary-url要素を使用すると、使用するルールおよび決定関数が含まれるOBRディクショナリ・ファイルへのパスを指定できます。この要素には、子要素も属性もありません。
次の例はdictionary-url
要素の使用方法を示します。
<processor> <name>helloworldProcessor</name> <rules> <query id="helloworldRule"> <!-- <![CDATA[ select * from helloworldInputChannel[range 10 slide 5] > --> select * from helloworldInputChannel[now] </query> </rules> </processor> <obr-adapter> <name>OBRAdapter</name> <dictionary-url>file:helloworld.rules</dictionary-url> <decision-function>handler1</decision-function> </obr-adapter>
direction
要素を使用すると、診断プロファイルのend-location
またはstart-location
に関する方向を定義できます。この要素には、子要素も属性もありません。
有効な値は次のとおりです。
INBOUND
OUTBOUND
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例は、コンポーネント構成ファイル内のdirection
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
durable-subscription
要素を使用すると、jms-adapter
のJMSトピック・サブスクリプションが恒久的であるかどうか、つまりサブスクライバが非アクティブになった場合も永続化できるかどうかを指定できます。有効な値はtrue
またはfalse
です。このプロパティは、destination-type
がTOPIC
に設定されている場合にのみ有効です。
この要素には、子要素も属性もありません。
次の例は、コンポーネント構成ファイル内のdurable-subscription
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <destination-type>TOPIC</destination-name> <durable-subscription>true</durable-subscription> <durable-subscription-name>JmsDurableSubscription</durable-subscription-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
durable-subscription-name
要素を使用すると、jms-adapter
の恒久サブスクリプションを一意に識別するための名前を指定できます。恒久サブスクリプションは、サブスクライバが非アクティブになった場合も永続化できます。この要素には、子要素も属性もありません。
次の例は、コンポーネント構成ファイル内のdurable-subscription-name
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <destination-type>TOPIC</destination-name> <durable-subscription>true</durable-subscription> <durable-subscription-name>JmsDurableSubscription</durable-subscription-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
この要素を使用すると、schedule-time-range-offset
またはtime-range-offset
要素の時間範囲を次の形式で定義できます。HH
は時間数、MM
は分数、およびSS
は秒数です。
HH:MM:SS
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のduration
要素の使用方法を示します。
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range-offset> <start>2010-01-20T05:00:00</start> <duration>03:00:00</duration> </time-range-offset> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
EDNアダプタにロードされる必須EDLファイルの名前です。指定した名前を持つEDLファイルは、META-INF/wlevs/edn/
ディレクトリ内のアプリケーション・バンドルにパッケージ化する必要があります。この要素には、子要素も属性もありません。
次の例はedl-file
要素の使用方法を示します。
<edn-adapter> <name>ednOutboundAdapterJaxb</name> <edl-file>CallCenterEvents.edl</edl-file> <schema-file>callcenter.xsd</schema-file> <validate>true</validate> <package-name>org.callcenter</package-name> <raw-xml-content>false</raw-xml-content> <jndi-provider-url>vm://localhost</jndi-provider-url> <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory </jndi-factory> <user>test1</user> <password>test123</password> <delivery-mode>nonpersistent</delivery-mode> </edn-adapter>
edn-adapter
要素を使用すると、Oracle SOA Suiteイベント・ネットワークとのインタフェースを確立できます。EDNインバウンド・アダプタを使用すると、Oracle SOA Suiteイベント・ネットワークからの着信データを受信できます。EDNアウトバウンド・アダプタを使用すると、アウトバウンド・データをOracle SOAイベント・ネットワークに送信できます。
この要素には、次の子要素があり、属性はありません。client-id
およびdurable-subscription-name
要素は、EDN入力アダプタに対してのみ適用されます。残りはEDNの入力アダプタと出力アダプタの両方に適用されます。
リスト内のclient-id
およびdurable-subscription-name
を除くすべての要素は、EDNの入力アダプタと出力アダプタの両方に適用されます。client-id
およびdurable-subscription-name
要素は、入力EDNアダプタに固有の要素です。
次のいずれか。
次の例はEDNインバウンド・アダプタ構成を示します。インバウンドEDNアダプタは、アセンブリ・ファイルに指定されているCallCenterActivityEvent
の定義が含まれるEDLファイルをロードします。スキーマ・ファイルはスキーマ検証用として提供されます。パッケージ名は、スキーマによって生成されたJAXBクラス用として使用されます。RAW XMLコンテンツは、EDN XML転送がRAW XMLとして表されることを意味します。JNDIプロバイダおよびファクトリを使用すると、Oracle SOA SuiteがEDNを特定できるようになります。
<edn-adapter> <name>ednInboundAdapterJaxb</name> <edl-file>CallCenterEvents.edl</edl-file> <schema-file>callcenter.xsd</schema-file> <validate>true</validate> <package-name>org.callcenter</package-name> <raw-xml-content>false</raw-xml-content> <jndi-provider-url>vm://localhost</jndi-provider-url> <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory </jndi-factory> <user>test1</user> <password>test123</password> </edn-adapter>
この要素を使用すると、診断プロファイルを有効化するかどうかを定義できます。この要素には、要素も属性もありません。
有効な値は次のとおりです。
true
false
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
次の例はコンポーネント構成ファイル内のenabled
要素の使用方法を示します。
encrypted-password
要素を使用すると、ハッキングを阻止するために別の形式に変更されるパスワードを作成できます。この要素には、子要素も属性もありません。
encrypted-password
要素は次の親要素で使用します。
http-pub-sub-adapter
: encrypted-password
要素を使用すると、Oracle Stream Analyticsアプリケーションがパブリッシュする対象となるHTTPパブリッシュ/サブスクライブ・サーバーがユーザー認証を要求する場合に暗号化されたパスワードを定義できます。
jms-adapter
: Oracle Stream AnalyticsはJNDI InitialContext
を取得するときに、user
要素とpassword
要素(またはencrypted-password
要素)を使用します。Oracle Stream Analyticsは、javax.jms.ConnectionFactory
のcreateConnection
メソッドを呼び出して、JMS宛先(JMSキューまたはトピック)への接続を作成するときに、connection-user
要素と、connection-password
要素またはconnection-encrypted-password
要素(構成されている場合)を使用します。それ以外の場合、Oracle Stream Analyticsはuser
要素とpassword
要素(またはencrypted-password
要素)を使用します。
rmi-adapter: encrypted-password
要素を使用すると、Oracle WebLogic Serverに対するRMI認証用として暗号化されたユーザー・パスワードを定義できます。
edn-adapter: encrypted-password
要素を使用すると、Oracle SOA SuiteのEDNまたはJMS認証用として暗号化されたユーザー・パスワードを定義できます。
注意:
encrypted-password
またはpassword
のいずれかを使用します。ただし、両方を使用することはできません。
次の例は、コンポーネント構成ファイル内のencrypted-password
要素の使用方法を示します。
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <encrypted-password>{Salted-3DES}s4YUEvH4Wl2DAjb45iJnrw==</encrypted-password> </http-pub-sub-adapter>
end
要素を使用すると、time-range
またはschedule-time-range
要素の終了時間を定義できます。この要素には、子要素も属性もありません。
終了時間を次のXMLスキーマのdateTime
値の形式として表します。
yyyy-mm-ddThh:mm:ss
たとえば、開始を2010年1月20日午前5時、終了を2010年1月20日午後6時に指定するには、次のように入力します。
<time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range>
XMLスキーマのdateTime
形式の完全な詳細は、http://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation
を参照してください。
次の例はコンポーネント構成ファイル内のend
要素の使用方法を示します。
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
end-location
要素を使用すると、診断プロファイルにおいてaverage-latency
またはmax-latency
要素の終了位置を定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のend-location
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
event-bean
要素を使用すると、イベントBeanコンポーネントを定義できます。この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のevent-bean
要素の使用方法を示します。この例ではchannelの一意の識別子はmyEventBean
です。
<event-bean> <name>myEventBean</name> </event-bean>
CSVインバウンド・アダプタでevent-interval
要素を使用すると、選択した単位で読取りイベント間の間隔を指定できます。使用可能な単位は、nanoseconds、microseconds
、milliseconds
およびseconds
です。この要素には、子要素も属性もありません。
イベント間で待機する間隔です。使用可能な単位は、nanoseconds
、microseconds
、milliseconds
およびseconds
です。たとえば、イベント間隔が1秒に設定されている場合、CSV入力アダプタはすべてのイベントを処理するまでに1秒間待機します。ただし、スレッド処理に関連するオーバーヘッドが存在するため、実際の待機時間はイベント間隔より若干長くなります。したがって、イベント間隔は短くしすぎないようにしてください。
次のコードは、イベント間隔が25 nanoseconds
、初期遅延が40秒であるCSVアダプタを示します。使用可能な単位は、nanoseconds、microseconds
、milliseconds
およびseconds
です。
<csv-adapter> <name>csv-inbound-adapter</name> <event-interval units="nanoseconds">25</event-interval> <initial-delay units="seconds">40</initial-delay> </csv-adapter>
event-type
要素を使用すると、イベントに含まれるデータを定義できます。この要素には、子要素も属性もありません。
event-type
要素は次の親要素で使用します。
パブリッシュ: オプション。パブリッシュ用のローカルおよびリモートの両方のHTTP Pub-Subアダプタについて、パブリッシュされるイベントのタイプを制限するために、JavaBean
イベントの完全修飾クラス名を指定します。指定しない場合、HTTP pub-subアダプタに送信されたすべてのイベントがパブリッシュされます。
サブスクライブ: 必須。サブスクライブ用のローカルおよびリモートの両方のHTTP Pub-Subアダプタについて、着信メッセージがマップされるJavaBean
の完全修飾クラス名を指定します。実行時、Oracle Stream Analyticsはメッセージ内の受信キー/値のペアを使用して、メッセージ・データを指定されたイベント・タイプにマップします。
このクラスをEPNアセンブリ・ファイルにwlevs:event-type-repository
要素、wlevs:class
子要素として登録する必要があります。
jms-adapter
: event-type
要素を使用すると、プロパティがJMSメッセージのプロパティに一致するイベント型を指定できます。この子要素は、Oracle Stream AnalyticsにJMSメッセージとイベント間の変換を自動的に行わせる場合にのみ指定します。独自のカスタム・コンバータBeanを作成済の場合はこの要素を指定しません。
record-parameters
: event-type
要素を使用すると、記録するイベントを指定できます。
event-type
要素の値はイベント型のリポジトリで定義したいずれかのイベント型にします。
次の例はコンポーネント構成ファイル内のevent-type
要素の使用方法を示します。
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
event-type-name
要素を使用すると、イベント・タイプの名前を指定できます。イベント・タイプは、イベントに含まれるデータを定義するデータ構造です。
event-type-name
要素には、子も属性もありません。次の例は構成ファイル内のこの要素の使用方法を示します。
<rest-adapter> <name>httpInbound</name> <event-type-name>CallCenterActivity</event-type-name> <context-path>/testhttpadapter</context-path> </rest-adapter> <jaxb-mapper> <name>xmlMapperBean</name> <event-type-name>CallCenterActivity</event-type-name> <metadata>external_metadata_case1.xml</metadata> </jaxb-mapper> <csv-mapper> <name>csvMapperBean</name> <context-path>org.callcenter</context-path> <validate>false</validate> </csv-mapper>
eviction-policy
要素を使用すると、max-size
の到着時にキャッシュが使用する削除ポリシーを定義できます。この要素には、子要素も属性もありません。
有効な値は次のとおりです。
FIFO
: 先入れ先出し。
LRU
: 最も長い期間使用されていない
LFU
: 最も使用頻度が低い(デフォルト)
NRU
: 最近使用されていない
次の例はコンポーネント構成ファイル内のeviction-policy
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
fail-when-rejected
要素を使用すると、オファー・タイムアウトの期限切れ時にイベント・キューがいっぱいである場合にcom.bea.wlevs.ede.api.EventProcessingException
タイプの例外を発生させるかどうかを指定できます。false
に設定すると、または何も設定しないと、例外が生成されるのではなく、イベントが削除されます。この構成は、max-size
値が0より大きいイベント・キューにのみ適用されます。デフォルト値はfalse
です。オファー・タイムアウトの設定の詳細は、「offer-timeout」を参照してください。
この要素には、子要素も属性もありません。
次の例では、イベント・キューが一杯の間に15秒経過するとEventProcessingException
を生成するように、チャネルを構成しています。
<channel> <name>QueuedChannel</name> <max-size>1000</max-size> <max-threads>1</max-threads> <offer-timeout>15000000000</offer-timeout> <fail-when-rejected>true</fail-when-rejected> </channel>
JMSインバウンド・アダプタのjms-adapter
要素にgroup-binding
子要素を追加するために、コンポーネント構成ファイルを編集します。各可能JMSメッセージ・セレクタ値に対して1つのgroup-binding
要素を追加します。詳細は、「bindings (jms-adapter)」を参照してください。
この要素には、param子要素およびgroup-id属性があります。group-id属性は必須で、タイプはString
であり、子要素をグループ化するクラスタ要素の名前です。
次の例はコンポーネント構成ファイル内のgroup-binding
要素の使用方法を示します。
<jms-adapter> <name>JMSInboundAdapter</name> <event-type>StockTick</event-type> <jndi-provider-url>t3://ppurich-pc:7001</jndi-provider-url> <destination-jndi-name>./Topic1</destination-jndi-name> <user>weblogic</user> <password>weblogic1</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>true</session-transacted> <message-selector>${CONDITION}</message-selector> <bindings> <group-binding group-id="ActiveActiveGroupBean_group1"> <param id="CONDITION">acctid > 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group2"> <param id="CONDITION">acctid BETWEEN 301 AND 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group3"> <param id="CONDITION">acctid BETWEEN 201 AND 300</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group4"> <param id="CONDITION">acctid <= 200</param> </group-binding> </bindings> </jms-adapter>
heartbeat
要素を使用すると、システムによってタイムスタンプが付加されたchannel
コンポーネントの新しいハートビート・タイムアウトを定義できます。デフォルトでは、タイムアウト値は100ミリ秒(100,000,000ナノ秒)です。この要素には、子要素も属性もありません。ハートビートは、一定秒数ごとにチャネルでのデータの到着をチェックします。
Oracle Stream Analyticsは、この設定値を経過してもチャネルにデータが到着しない場合、システムによってタイムスタンプが付加されたリレーション・チャネルまたはストリーム・チャネル上にハートビートを生成します。
システムによってタイムスタンプが付加されたリレーションまたはストリームにheartbeat子要素が適用されるのは、プロセッサに送信を行うイベント・チャネルにイベントが到着せず、プロセッサが時間ベースのウィンドウや期間のパターン照合などの一時的な演算子をいくつか含む文を使用して構成されている場合のみです。
次の例はコンポーネント構成ファイル内のheartbeat
要素の使用方法を示します。この例ではchannelの一意の識別子はMatchOutputChannel
です。
<channel> <name>MatchOutputChannel</name> <max-size>0</max-size> <max-threads>0</max-threads> <selector>match</selector> <heartbeat>10000</heartbeat> </channel>
http-pub-sub-adapter要素を使用すると、HTTPパブリッシュ/サブスクライブ・サーバー・アダプタを定義できます。
この要素には、次の子要素があり、属性はありません。
次のいずれか。
次のいずれか。
次の例はコンポーネント構成ファイル内のhttp-pub-sub-adapter
要素の使用方法を示します。この例ではadapterの一意の識別子はremotePub
です。
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> </http-pub-sub-adapter>
idle-time
要素を使用すると、キャッシュ・エントリがアクセスされないときにキャッシュ・エントリが能動的にキャッシュから削除されるまでの時間をミリ秒数単位で定義できます。デフォルトではidle-timeは設定されていません。この要素は動的に変更されます。この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のidle-time
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
アダプタでinitial-delay
要素を使用すると、イベントの読取りを開始するまでの時間をナノ秒単位で指定できます。initial-delay
要素には、子も属性もありません。
次のコードは、イベント間隔が25 nanoseconds
、初期遅延が40秒であるCSVアダプタを示します。使用可能な単位は、nanoseconds、microseconds
、milliseconds
およびseconds
です。
<csv-adapter> <name>csv-inbound-adapter</name> <event-interval units="nanoseconds">25</event-interval> <initial-delay units="seconds">40</initial-delay> </csv-adapter>
inject-parameters
要素を使用すると、イベント処理ネットワークのステージにイベント・インジェクションを構成できます。この要素には、次の子要素があり、属性はありません。
次の例に示すコンポーネント構成の一部は、イベント・インジェクション用にプロセッサを構成する方法を示しています。inject-parameters
要素のactive
子要素はインジェクションをオンにすることを指定し、channel-name
要素はインジェクトされる要素の送信先のHTTPパブリッシュ・サブスクライブ(HTTP pub-sub)チャネルを指定します。
<processor> <name>FindCrossRates</name> <inject-parameters> <active>true</active> <channel-name>/NonClusteredServer/fx/FindCrossRates/input</channel-name> </inject-parameters> <rules> <!-- Query rules omitted. --> </rules> </processor>
jaxb-mapper
要素を使用すると、着信XMLおよびJSONデータを処理できます。この要素には、次の子要素があり、属性はありません。
子要素
例
次の例は構成ファイル内のjaxb-mapper
要素の使用方法を示します。
<rest-adapter> <name>httpInbound</name> <event-type-name>CallCenterActivity</event-type-name> <context-path>/testhttpadapter</context-path> </rest-adapter> <jaxb-mapper> <name>xmlMapperBean</name> <event-type-name>CallCenterActivity</event-type-name> <metadata>external_metadata_case1.xml</metadata> </jaxb-mapper> <csv-mapper> <name>csvMapperBean</name> <context-path>org.callcenter</context-path> <validate>false</validate> </csv-mapper>
jms-adapter
要素を使用すると、JMSアダプタ・コンポーネントを定義できます。この要素には、次の子要素があり、属性はありません。
子要素
次のいずれか。
次のいずれか。
次のいずれか。
例
次の例はコンポーネント構成ファイル内のjms-adapter
要素の使用方法を示します。この例ではadapterの一意の識別子はjmsInbound-text
です。
<jms-adapter> <name>jmsInbound-text</name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
オプションのjndi-factory
要素を使用すると、jms-adapter
またはrmi-adapterのJNDIファクトリを定義できます。Oracle Stream AnalyticsサーバーJMSのデフォルトのJNDIファクトリ名の値は、weblogic.jndi.WLInitialContextFactory
です。
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のjndi-factory
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <jndi-factory>weblogic.jndi.WLInitialContextFactory</jndi-factory> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
jndi-name
要素を使用すると、アプリケーションがRemote Method Invocation (RMI)の入力アダプタおよび出力アダプタを介して特定およびアクセスする必要があるコンポーネントのJava Naming and Directory Interface (JNDI)名を指定できます。
次の例はjndi-name
要素の使用方法を示します。
<rmi-adapter> <name>rmi-outbound-adapter</name> <jndi-name>RMIOutboundJNDIName</jndi-name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <jndi-factory>weblogic.jndi.WLInitialContextFactory</jndi-factory> </rmi-adapter>
jndi-provider-url
必須要素を使用すると、jms-adapter
のJNDIプロバイダURLを定義できます。この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のjndi-provider-url
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
listeners
要素を使用すると、キャッシュ・リスナーの動作を定義できます。この要素には、work-manager-name
子要素およびasynchronous属性があります。
work-manager-name子要素は、リスナーの非同期的な起動に使用されるワーク・マネージャを指定します。同期起動を有効化すると、Oracle Stream Analyticsはワーク・マネージャの値を無視します。ワーク・マネージャがキャッシュそのものに指定されている場合、この値はリスナーのみを起動するためにオーバーライドします。
asynchronous属性は必須のBoolean
型であり、true
の場合はリスナーを非同期的に実行します。デフォルト値はfalse
です。
次の例はコンポーネント構成ファイル内のlisteners
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
location
要素を使用すると、診断プロファイルにおいてthroughput
要素の位置を定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のlocation
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
max-latency
要素を使用すると、診断プロファイルの最大待機時間計算を定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のmax-latency
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
max-size
要素は次の親要素で使用します。
channel
: max-size
子要素を使用すると、チャネルの最大サイズを指定できます。サイズがゼロのチャネルは、同期的にイベントを受け渡します。サイズがゼロでないチャネルはイベントを非同期的に処理し、リクエストされたサイズに従ってイベントをバッファリングします。max-threads
がゼロの場合、max-size
はゼロになります。デフォルト値は0です。
cache
:max-size
要素を使用すると削除またはページングが発生した後のメモリー内のキャッシュ要素数を定義できます。現状では最大キャッシュサイズは2^31-1エントリです。この要素は動的に変更されます。
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のmax-size
要素の使用方法を示します。
<stream> <name>monitoring-control-stream</name> <max-size>10000</max-size> <max-threads>1</max-threads> </stream>
max-threads
要素を使用すると、Oracle Stream Analyticsサーバーがchannel
のイベントを処理するために使用するスレッドの最大数を定義できます。この要素には、子要素も属性もありません。
デフォルト値は0です。max-size
属性が0の場合は、max-threads
の値の設定には影響がありません。
0に指定する場合、チャネルは受渡しのように機能します。max-threads > 0
の場合、チャネルは従来のブロッキング・キューのように機能し、アップストリーム・コンポーネントがイベントのプロデューサ、ダウンストリーム・コンポーネントがイベントのコンシューマになります。キューのサイズはmax-sizeの構成によって定義されます。キューからイベントを消費するスレッドは、最大でmax-threads
の数までとなります。
max-threads
は、再デプロイすることなく0から正の整数に(つまり、パス・スルーから複数スレッドに)変更できます。しかし、max-threads
を正の整数から0に(つまり、複数スレッドからパス・スルーに)変更する場合は、アプリケーションを再デプロイする必要があります。max-size
が0の場合は、この値の設定に影響はありません。
次の例は、ンポーネント構成ファイル内のmax-threads
要素の使用方法を示します。
<channel> <name>monitoring-control-stream</name> <max-size>10000</max-size> <max-threads>1</max-threads> </channel>
message-selector
要素をJMSメッセージ・セレクタとともに使用すると、jms-adapter
でメッセージをフィルタできます。この要素には、子要素も属性もありません。
メッセージ・セレクタ式の構文はSQL92の条件式構文、メッセージ・ヘッダー、およびプロパティのサブセットに基づきます。たとえば、EventType
プロパティに基づいたメッセージを選択するには次を使用します。
EventType = 'News' OR 'Commentary'
次の例はコンポーネント構成ファイル内のmessage-selector
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <message-selector>EventType = 'News' OR 'Commentary'</message-selector> <session-transacted>false</session-transacted> </jms-adapter>
metadata
要素を使用すると、JAXBマッピングをカスタマイズするためのJAXB Boxy外部メタデータが含まれるファイルの名前を指定できます。この要素はオプションであり、子要素も属性もありません。
次の例は構成ファイル内のmetadata要素の使用方法を示します。
<rest-adapter> <name>httpInbound</name> <event-type-name>CallCenterActivity</event-type-name> <context-path>/testhttpadapter</context-path> </rest-adapter> <jaxb-mapper> <name>xmlMapperBean</name> <event-type-name>CallCenterActivity</event-type-name> <metadata>external_metadata_case1.xml</metadata> </jaxb-mapper> <csv-mapper> <name>csvMapperBean</name> <context-path>org.callcenter</context-path> <validate>false</validate> </csv-mapper>
要素の名前です。name
要素は次の親要素で使用します。
EPNコンポーネント: name
要素を使用すると、このアプリケーション構成要素をアセンブリ・ファイル内の対応する要素に関連付けることができます。有効な値は、対応するアセンブリ・ファイルのid
属性です。
diagnostic-profiles
:name
要素を使用するとdiagnostic-profiles
要素およびそのprofile
子要素のそれぞれを一意で識別できます。
parameter
:name
要素を使用すると、名前と値のペアの名前を定義できます。
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のname
要素の使用方法を示します。この例ではchannelの一意の識別子はmyDiagnosticProfiles
です。
<diagnostics-profiles> <name>myDiagnosticProfiles</name> <profile> ... </profile> </diagnostics-profiles>
netio
要素を使用すると、コンポーネントのネットワーク入力/出力ポートを定義できます。
注意:
adapter
要素の子である場合、この要素は内部使用のみ可能です。
この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のnetio
要素の使用方法を示します。
<netio> <provider-name>providerCache</provider-name> <num-threads>1000</num-threads> </netio>
num-threads
要素を使用すると、コンポーネントのネットワーク入力/出力ポートにおけるスレッド数を定義できます。この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のnum-threads
要素の使用方法を示します。
<netio> <provider-name>providerCache</provider-name> <num-threads>1000</num-threads> </netio>
obr-adapter
アダプタを使用すると、イベントをJavaコードとして処理することにより、Oracle Business Rules (OBR)を評価し、結果に基づいてイベントをトリガーできます。OBRアダプタを使用すると、OBRロジックをCQLプロセッサのダウンストリームに追加できます。
この要素には、次の子要素があり、属性はありません。
次の例はOBRアダプタ構成を示します。
<processor> <name>helloworldProcessor</name> <rules> <query id="helloworldRule"> <!-- <![CDATA[ select * from helloworldInputChannel[range 10 slide 5] > --> select * from helloworldInputChannel[now] </query> </rules> </processor> <obr-adapter> <name>OBRAdapter</name> <dictionary-url>file:helloworld.rules</dictionary-url> <decision-function>handler1</decision-function> </obr-adapter>
offer-timeout
要素を使用すると、イベント・キューが一杯で保留中の挿入(オファー)がブロックされている場合に、保留中のイベントが削除されるか例外が生成されるまでの時間を指定できます。fail-when-rejected
値がtrueに設定されている場合は例外が生成され、それ以外の場合はイベントが削除されます。この設定は、max-size
値が0より大きいイベント・キューにのみ適用されます。offer-timeout
値はナノ秒で指定する必要があります。デフォルトでは60秒です。
この要素には、子要素も属性もありません。
次の例では、イベント・キューが一杯の間に15秒経過するとEventProcessingException
を生成するように、チャネルを構成しています。
<channel> <name>QueuedChannel</name> <max-size>1000</max-size> <max-threads>1</max-threads> <offer-timeout>15000000000</offer-timeout> <fail-when-rejected>true</fail-when-rejected> </channel>
output-file
エントリを使用すると、CSVアウトバウンド・アダプタによってアウトバウンド・イベント・データが保存される場所を指定できます。この要素には、子要素も属性もありません。
append要素を使用すると、新しいファイルを作成するか、既存のファイルを上書きするか、既存のファイルに追加できます。
次の例はStockTradeCSVOutboundAdapterのアセンブリ・ファイル・エントリを示します。
<wlevs:adapter id="StockTradeCSVOutboundAdapter" provider="csv-outbound"> <wlevs:instance-property name="eventType" value="TradeEvent"/> <wlevs:instance-property name="outputFile" value="/scratch/mpawlan/oep9-19/oep/utils/load-generator/StockData.csv"/> <wlevs:instance-property name="append" value="false"/> </wlevs:adapter>
スキーマによって生成されたJAXBのクラスのオプションのパッケージ名です。設定されている場合、指定したパッケージ名により、EDLファイルから推測されたパッケージ名がオーバーライドされます。この要素には、子要素も属性もありません。
次の例はpackage-name
要素の使用方法を示します。
<edn-adapter> <name>ednOutboundAdapterJaxb</name> <edl-file>CallCenterEvents.edl</edl-file> <schema-file>callcenter.xsd</schema-file> <validate>true</validate> <package-name>org.callcenter</package-name> <raw-xml-content>false</raw-xml-content> <jndi-provider-url>vm://localhost</jndi-provider-url> <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory </jndi-factory> <user>test1</user> <password>test123</password> <delivery-mode>nonpersistent</delivery-mode> </edn-adapter>
param
要素を使用して、メッセージ・セレクタ値をmessage-selector
要素で指定されたパラメータ名と関連付けます。この要素には、子要素がなく、id
属性があります。id属性は必須で、タイプはString
であり、message-selector
要素に渡す値を識別します。
詳細は、bindings (jms-adapter)を参照してください。
次の例はコンポーネント構成ファイル内のparam
要素の使用方法を示します。この構成を使用するアプリケーションが、Oracle Stream Analyticsサーバーにデプロイされて、そのサーバーのcluster
要素のgroups
子要素にActiveActiveGroupBean_group1
が含まれている場合、CONDITION
パラメータはacctid > 400
になります。acctid
プロパティが400を超えるエベントは、アプリケーションにより処理されます。
<jms-adapter> <name>JMSInboundAdapter</name> <event-type>StockTick</event-type> <jndi-provider-url>t3://ppurich-pc:7001</jndi-provider-url> <destination-jndi-name>./Topic1</destination-jndi-name> <user>weblogic</user> <password>weblogic1</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>true</session-transacted> <message-selector>${CONDITION}</message-selector> <bindings> <group-binding group-id="ActiveActiveGroupBean_group1"> <param id="CONDITION">acctid > 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group2"> <param id="CONDITION">acctid BETWEEN 301 AND 400</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group3"> <param id="CONDITION">acctid BETWEEN 201 AND 300</param> </group-binding> <group-binding group-id="ActiveActiveGroupBean_group4"> <param id="CONDITION">acctid <= 200</param> </group-binding> </bindings> </jms-adapter>
parameter
要素を使用すると、コンポーネントのname
およびvalue
パラメータを定義できます。この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のparameter
要素の使用方法を示します。
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
params
要素を使用すると、bindings (processor)
要素のパラメータを定義できます。この要素の値は単純型の値のカンマ区切りリストです。値の順序は、このbinding
に関連するOracle CQLルールにおけるパラメータの順序に対応している必要があります。
この要素には、子要素がなく、id
属性があります。id
属性は必須ではなく、タイプはString
であり、params
要素の一意の識別子です。
詳細は、『Oracle CQL言語リファレンス』を参照してください。
次の例はコンポーネント構成ファイル内のparams
要素の使用方法を示します。
<processor> <name>processor1</name> <record-parameters> <dataset-name>test1data</dataset-name> <event-type-list> <event-type>SimpleEvent</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters> <rules> <rule id="rule1"><![CDATA[ select stockSymbol, avg(price) as percentage from StockTick retain 5 events where stockSymbol=? having avg(price) > ? or avg(price) < ? ></rule> </rules> <bindings> <binding id="rule1"> <params>BEAS,10.0,-10.0</params> <params id="IBM">IBM,5.0,5.0</params> </binding> </bindings> </processor>
partition-order-capacity
要素を使用すると、ordering-constraint属性がPARTITION_ORDEREDに設定されている場合に問合せパーティションの最大容量を定義できます。この要素には、子要素も属性もありません。
パラレル実行用のCQLプロセッサが構成されていて、ordering-constraint
属性がPARTITION_ORDEREDに設定されている場合、channel
コンポーネントでpartition-order-capacity
要素を設定します。
容量の値をより広い範囲に適用するために、サーバー構成ファイル内にこれを設定できます。「コンポーネント構成スキーマ」を参照してください。
次の例は、コンポーネント構成ファイル内のpartition-order-capacity
要素の使用方法を示します。
<channel> <name>MatchOutputChannel</name> <max-size>0</max-size> <max-threads>0</max-threads> <selector>match</selector> <partition-order-capacity>20</partition-order-capacity> </channel>
password
要素を使用すると、次の親要素でパスワードを定義できます。この要素には、子要素も属性もありません。
http-pub-sub-adapter
: password
要素を使用すると、Oracle Stream Analyticsアプリケーションがパブリッシュする対象となるHTTPパブリッシュ/サブスクライブ・サーバーがユーザー認証を要求する場合にユーザー・パスワードを定義できます。
jms-adapter
: Oracle Stream AnalyticsはJNDI InitialContext
を取得するときに、user
要素とpassword
要素(またはencrypted-password
要素)を使用します。Oracle Stream Analyticsは、javax.jms.ConnectionFactory
のcreateConnection
メソッドを呼び出して、JMS宛先(JMSキューまたはトピック)への接続を作成するときに、connection-user
要素と、connection-password
要素またはconnection-encrypted-password
要素(構成されている場合)を使用します。それ以外の場合、Oracle Stream Analyticsはuser
要素とpassword
要素(またはencrypted-password
要素)を使用します。
rmi-adapter: password
要素を使用すると、Oracle WebLogic Serverに対するRMI認証用のユーザー・パスワードを定義できます。
edn-adapter: password
要素を使用すると、Oracle SOA SuiteのEDNまたはJMS認証用のユーザー・パスワードを定義できます。
注意:
encrypted-password
またはpassword
のいずれかを使用します。ただし、両方を使用することはできません。
次の例はコンポーネント構成ファイル内のpassword
要素の使用方法を示します。
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> </http-pub-sub-adapter>
playback-parameters
要素を使用すると、コンポーネントをテストするためのコンポーネントのイベント再生パラメータを定義できます。後のステージで、イベントBeanなどのアプリケーションでイベントを再生します。イベントBeanで、イベントを問い合せ、結果に基づいてアプリケーションを修正します。この要素には、次の子要素があり、属性はありません。
次のいずれか。
次のいずれか。
次の例はコンポーネント構成ファイル内のplayback-parameters
要素の使用方法を示します。
<playback-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> </playback-parameters>
priority要素を使用すると、EDNにパブリッシュされたイベントのJMS優先度を設定できます。JMS APIは、最も優先度が低い0から最も優先度が高い9までの10レベルの優先度値を定義します。クライアントは、レベル0-4は通常の優先度の範囲、レベル5-9は至急の優先度の範囲として考慮する必要があります。デフォルトでは、優先度は4に設定されています。この要素には、子要素も属性もありません。
<jms-adapter> <name>jmsInbound-text</name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <priority>2</priority> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
processor
要素を使用すると、Oracle CQLプロセッサ・コンポーネントを定義できます。この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のprocessor
要素の使用方法を示します。この例では、processorの一意の識別子はcqlProcessor
です。
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid srcId bidQty ask askQty seq"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ></view> <view ...><![CDATA[ ... ></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ></query> <query id="MarketRule"><![CDATA[ SELECT symbol, AVG(price) AS average, :1 AS market FROM StockTick [RANGE 5 SECONDS] WHERE symbol = :2 ></query> </rules> <bindings> <binding id="MarketRule"> <params id="nasORCL">NASDAQ, ORCL</params> <params id="nyJPM">NYSE, JPM</params> <params id="nyWFC">NYSE, WFC</params> </binding> </bindings> </processor>
profile
要素を使用すると、診断プロファイルを定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のprofile
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> <average-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> <threshhold> <amount>100</amount> <unit>MILLISECONDS</unit> </threshhold> </average-latency> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
query
要素を使用すると、コンポーネントのOracle CQL問合せを定義できます。この要素には、子要素がなく、次の属性があります。
表4-2 queryコンポーネント構成要素の属性
|
次の例はコンポーネント構成ファイル内のquery
要素の使用方法を示します。
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid srcId bidQty ask askQty seq"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ></view> <view ...><![CDATA[ ... ></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ></query> </rules> </processor>
quickfix-adapter
要素を使用すると、QuickFixアダプタを定義できます。QuickFixアダプタは、セキュリティ・トランザクションのリアルタイムな電子交換を処理するためのフル機能のメッセージング・エンジンです。この要素には、次の子要素があり、属性はありません。
次の構成ファイルは、QuickFixアダプタを示します。
<quickfix-adapter> <name>quickfixAdpater</name> <event-type>MyConfigEvent</event-type> <default-session description="default configuration"> ... <configuration description="identifier-message format"> <config-name>BeginString</config-name> <config-value>FIXT.0.1</config-value> </configuration> </default-session> <session description="ordertracker configuration"> <configuration description="identifier-acceptor"> <config-name>SenderCompID</config-name> <config-value>QA</config-value> </configuration> <configuration description="identifier-initiator"> <config-name>TargetCompID</config-name> <config-value>ORACLE</config-value> </configuration> </session> </quickfix-adapter>
raw-xml-content要素を使用すると、EDN XMLデータ転送をRAW XML (true
の場合)とJavaオブジェクト(false
の場合)のどちらとして表すかを指定できます。デフォルトは、false
です。この要素には、子要素も属性もありません。
次の例はraw-xml-content
要素の使用方法を示します。
<edn-adapter> <name>ednOutboundAdapterJaxb</name> <edl-file>CallCenterEvents.edl</edl-file> <schema-file>callcenter.xsd</schema-file> <validate>true</validate> <package-name>org.callcenter</package-name> <raw-xml-content>false</raw-xml-content> <jndi-provider-url>vm://localhost</jndi-provider-url> <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory </jndi-factory> <user>test1</user> <password>test123</password> <delivery-mode>nonpersistent</delivery-mode> </edn-adapter>
record-parameters
要素を使用すると、コンポーネントをテストするためのイベント・レコード・パラメータを定義できます。アプリケーションの実行中に、EPNコンポーネントから永続ストアにフローするイベントを記録します。この要素には、次の子要素があり、属性はありません。
次のいずれか。
次の例はコンポーネント構成ファイル内のrecord-parameters
要素の使用方法を示します。
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
repeat
要素を使用すると、playback-parametersを繰り返すかどうかを定義できます。この要素には、子要素も属性もありません。
有効な値は次のとおりです。
true
false
次の例はコンポーネント構成ファイル内のduration
要素の使用方法を示します。
<playback-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range-offset> <start>2010-01-20T05:00:00</start> <duration>03:00:00</duration> </time-range-offset> <repeat>true</repeat> </playback-parameters>
rest-adapter
要素を使用すると、Representational State Transfer (REST)プロトコルを介して外部クライアントからHTTPポスト・データを受信するRESTアダプタを定義できます。RESTアダプタは、XML、CSVおよびJavaScript Object Notation (JSON)の各形式でデータを受け入れ、このデータを、インバウンドRESTアダプタで構成されているOracle Stream Analyticsイベントに変換できます。
この要素には、次の子要素があり、属性はありません。
次のファイル例は、POSTデータを受信するためのrest-adapter
構成、着信XMLおよびJSONデータを処理するためのjaxb-mapper
構成、および着信CSVデータを処理するためのcsv-mapper
構成を示します。
<rest-adapter> <name>httpInbound</name> <event-type-name>CallCenterActivity</event-type-name> <context-path>/testhttpadapter</context-path> </rest-adapter> <jaxb-mapper> <name>xmlMapperBean</name> <event-type-name>CallCenterActivity</event-type-name> <metadata>external_metadata_case1.xml</metadata> </jaxb-mapper> <csv-mapper> <name>csvMapperBean</name> <context-path>org.callcenter</context-path> <validate>false</validate> </csv-mapper>
rest-outbound-adapter
要素を使用すると、RESTプロトコルを介して外部クライアントにHTTP SENDデータを送信するRESTアダプタを定義できます。
rmi-adapter要素を使用すると、RMIアウトバウンド・アダプタを定義できます。RMIアウトバウンド・アダプタは、イベント情報をRMI接続に書き込みます。この要素には、次の子要素があり、属性はありません。
次の例はRMIアウトバウンド・アダプタ構成を示します。
<rmi-adapter> <name>rmi-outbound-adapter</name> <jndi-name>RMIOutboundJNDIName</jndi-name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <jndi-factory>weblogic.jndi.WLInitialContextFactory</jndi-factory> </rmi-adapter>
この要素を使用して、Oracle CQL プロセッサ(Oracle CQL)
のルールを作成します。この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のrules
要素の使用方法を示します。
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid srcId bidQty ask askQty seq"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ></view> <view ...><![CDATA[ ... ></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ></query> </rules> </processor>
schema
要素を使用すると、ビューで使用するストリーム要素のスペース区切りリストを指定できます。schema
要素には、子要素も属性もありません。
次の例はOracle CQLルール内のschema要素の使用方法を示します。
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid ask"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ></view> <view ...><![CDATA[ ... ></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ></query> </rules>
schema-file
要素を使用すると、検証用のスキーマの・ファイル名前を指定できます。schema
要素は、validate
要素がtrue
に設定されている場合に必要です。schema-file
要素には、子要素も属性もありません。
次の例は構成ファイル内のschema-file
要素の使用方法を示します。
<edn-adapter> <name>ednInboundAdapterJaxb</name> <edl-file>CallCenterEvents.edl</edl-file> <schema-file>callcenter.xsd</schema-file> <validate>true</validate> <package-name>org.callcenter</package-name> <raw-xml-content>false</raw-xml-content> <jndi-provider-url>vm://localhost</jndi-provider-url> <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory </jndi-factory> <user>test1</user> <password>test123</password> </edn-adapter>
selector
要素を使用すると、どのアップストリームOracle CQLプロセッサの問合せがダウンストリームchannel
に結果を送信することを許可されるかを指定できます。この要素には、子要素も属性もありません。
概念
この図は、アップストリームOracle CQLプロセッサfilteredFanoutProcessor
に接続されたfilteredStream
チャネルを備えたEPNを示します。
次の問合せは、Oracle CQLプロセッサfilteredFanoutProcessor用として構成されています。
<processor> <name>filterFanoutProcessor</name> <rules> <query id="Yr3Sector"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from priceStream where sector="3_YEAR" ></query> <query id="Yr2Sector"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from priceStream where sector="2_YEAR" ></query> <query id="Yr1Sector"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from priceStream where sector="1_YEAR" ></query> </rules> </processor>
Oracle CQLプロセッサに複数の問合せを指定する場合、デフォルトでは、すべての問合せ結果がプロセッサのアウトバウンド・チャネルに送信されます(filteredStream
)。オプションでコンポーネント構成ソースでchannel
要素のselector
子要素を使用し、次の例が示すようにチャネルに結果を送信する1つ以上のOracle CQL問合せ名のスペース区切りリストを指定できます。この例では、問合せYr3Sector
およびYr2Sector
の問合せ結果はfilteredStream
に送信されますが、問合せYr1Sector
の問合せ結果は送信されません。
<channel> <name>filteredStream</name> <selector>Yr3Sector Yr2Sector</selector> </channel>
アップストリーム・プロセッサに問合せを作成する前に、selector
でchannel
要素を構成することもできます。この場合、selector
内の名前と一致する問合せ名を指定する必要があります。
注意:
selector
属性はアップストリーム・ステージがOracle CQLプロセッサの場合のみ該当します。
例
次の例はコンポーネント構成ファイル内のselector
要素の使用方法を示します。
<processor> <name>PatternProcessor</name> <rules> <query id="match"><![CDATA[ select T.firstW as firstw, T.lastZ as lastz, T.price as price from StockInputsStream MATCH_RECOGNIZE ( MEASURES A.c1 as firstW, last(Z.c1) as lastZ, A.c2 as price PATTERN(A W+ X+ Y+ Z+) DEFINE A as A.c1 = A.c1, W as W.c2 < prev(W.c2), X as X.c2 > prev(X.c2), Y as Y.c2 < prev(Y.c2), Z as Z.c2 > prev(Z.c2)) as T ></query> <query id="stock"><![CDATA[ select c1 as ts, c2 as price from StockInputsStream ></query> </rules> </processor> <channel> <name>StockOutputChannel</name> <selector>stock</selector> </channel> <channel> <name>MatchOutputChannel</name> <selector>match</selector> </channel>
server-context-path
必須要素を使用すると、パブリッシュ用のすべてのローカルhttp-pub-sub-adapterについてサーバーへのパスを指定できます。デフォルト値は/pubsub
です。新たにローカルHTTPパブリッシュ/サブスクライブ・サーバーを作成、またはデフォルトの構成を変更した場合は、該当するpath
子要素の値を指定します。
注意:
リモートHTTP pub-subアダプタにはserver-context-path
要素を指定しないでください。
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のserver-context-path
要素の使用方法を示します。
<http-pub-sub-adapter> <name>localPub</name> <server-context-path>/pubsub</server-context-path> <channel>/test1</channel> </http-pub-sub-adapter>
server-url
必須要素を使用すると、パブリッシュ用またはサブスクライブ用のすべてのリモートhttp-pub-sub-adapterについてサーバーへのパスを指定できます。リモートHTTPパブリッシュ/サブスクライブ・サーバーには、Oracle Stream Analyticsの別のインスタンス、WebLogic Serverインスタンス、または任意のサード・パーティHTTPパブリッシュ/サブスクライブ・サーバーを指定できます。次に例を示します。
http://myhost.com:9102/pubsub
注意:
ローカルHTTP pub-subアダプタにはserver-url
要素オプションを指定しないでください。
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のserver-url
要素の使用方法を示します。この例ではremotePublisher
アダプタがイベントをパブリッシュする対象のリモートHTTPパブリッシュ/サブスクライブ・サーバーのURLはhttp://myhost.com:9102/pubsub
となります。
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://myhost.com:9102/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> </http-pub-sub-adapter>
複数のセッションが必要な場合は、default-session
要素で共通構成をグループ化します。デフォルトでは、すべてのsession
タグが、default-session
タグで宣言されているすべての要素を継承します。
session-ack-mode-name
を使用すると、jms-adapterのセッション確認モード名を定義できます。この要素には、子要素も属性もありません。
javax.jms.Session
の有効な値は、次のとおりです。デフォルト値はAUTO_ACKNOWLEDGE
です。
AUTO_ACKNOWLEDGE
: この確認モードを使用するとセッションが受信コールから正常に戻された場合か、またはセッションがメッセージ処理のためにコールしたメッセージ・リスナーが正常に戻る場合のいずれでもセッションは自動的にクライアントがメッセージを受信したことを確認します。
CLIENT_ACKNOWLEDG
: この確認モードを使用するとメッセージの確認メソッドをコールすることによって、クライアントは消費されたメッセージを確認します。
DUPS_OK_ACKNOWLEDGE
: この確認モードはセッションにメッセージ送信の確認を遅延するように命令します。
次の例はコンポーネント構成ファイル内のsession-ack-mode-name
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <session-ack-mode-name>AUTO_ACKNOWLEDGE</session-ack-mode-name> <session-transacted>false</session-transacted> </jms-adapter>
この要素を使用するとセッションをインバウンドまたはアウトバウンドのjms-adapter
用に処理するかどうかを定義できます。この要素には、子要素も属性もありません。
有効な値は次のとおりです。
true
false
次の例はコンポーネント構成ファイル内のsession-transacted
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <connection-jndi-name>weblogic.jms.ConnectionFactory</connection-jndi-name> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <session-ack-mode-name>AUTO_ACKNOWLEDGE</session-ack-mode-name> <session-transacted>false</session-transacted> </jms-adapter>
source-url
エントリを使用すると、インバウンド・イベント・データが含まれるファイルをCSVインバウンド・アダプタが検索できる場所を指定できます。この要素には、子要素も属性もありません。
次の例はStockTradeCSVInboundAdapterのアセンブリ・ファイル・エントリを示します。
<wlevs:adapter id="StockTradeCSVInboundAdapter" provider="csv-inbound"> <wlevs:listener ref="AdapterOutputChannel"/> <wlevs:instance-property name="eventType" value="TradeEvent"/> <wlevs:instance-property name="sourceUrl" value="file:////scratch/mpawlan/oep9-19/oep/utils/load-generator/StockData.csv"/> </wlevs:adapter>
stage
要素を使用すると、診断プロファイルのstart-location
またはend-location
要素のステージを定義できます。有効な値は、イベント処理ネットワーク(EPN)における既存のステージ名です。
次の例はコンポーネント構成ファイル内のstage
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
start
要素を使用すると、time-range
、time-range-offset
、またはschedule-time-range-offset
要素の開始時間を定義できます。この要素には、子要素も属性もありません。
開始時間を次のXMLスキーマのdateTime
値の形式として表します。
yyyy-mm-ddThh:mm:ss
たとえば、開始を2010年1月20日午前5時、終了を2010年1月20日午後6時に指定するには、次のように入力します。
<time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range>
XMLスキーマのdateTime
形式の完全な詳細は、http://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation
を参照してください。
次の例はコンポーネント構成ファイル内のstart
要素の使用方法を示します。
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <time-range> <start>2010-01-20T05:00:00</start> <end>2010-01-20T18:00:00</end> </time-range> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
start-location
要素を使用すると、診断プロファイルの開始位置を定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のstart-location
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
start-stage
要素を使用すると、診断プロファイルの開始ステージを定義できます。この要素には、子要素も属性もありません。
有効な値は、イベント処理ネットワーク(EPN)における既存のステージ名です。詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のstart-stage
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
threshold
要素を使用すると、しきい値を定義できます。このしきい値を超えると、Oracle Stream Analyticsサーバーは監視イベントをログに記録します。この要素は診断プロファイルのaverage-latency
内でのみ適用できます。
この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のthreshold
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <average-latency> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> <threshhold> <amount>100</amount> <unit>MILLISECONDS</unit> </threshhold> </average-latency> </profile> </diagnostic-profiles>
throughput
要素を使用すると、診断プロファイルのスループットを定義できます。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のthroughput
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
throughput-interval
要素を使用すると、診断プロファイルのスループット間隔を定義できます。この要素には、次の子要素があり、属性はありません。
詳細は、『Oracle Stream Analyticsビジュアライザの使用』を参照してください。
次の例はコンポーネント構成ファイル内のthroughput-interval
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <throughput> <throughput-interval> <amount>100000</amount> <unit>MICROSECONDS</unit> </throughput-interval> <average-interval> <amount>100000000</amount> <unit>NANOSECONDS</unit> </average-interval> <location> <application>diagnostic</application> <stage>AlertEventStream</stage> <direction>INBOUND</direction> </location> </throughput> </profile> </diagnostic-profiles>
time-to-live
要素を使用すると、エントリがキャッシュされる時間の最大数をミリ秒で定義できます。デフォルト値はinfinite
です。この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内の存続時間
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
trace-parameters
要素を使用すると、イベント処理ネットワークのステージにイベント・トレースを構成できます。この要素には、次の子要素があり、属性はありません。
次の例に示すコンポーネント構成の一部は、イベント・トレース用にプロセッサを構成する方法を示しています。trace-parameters
要素のactive
子要素はトレースをオンにすることを指定し、channel-name
要素はトレースされる要素の送信先のHTTPパブリッシュ・サブスクライブ(HTTP pub-sub)チャネルを指定します。
<processor> <name>FindCrossRates</name> <trace-parameters> <active>true</active> <channel-name>/NonClusteredServer/fx/FindCrossRates/output</channel-name> </trace-parameters> <rules> <!-- Query rules omitted. --> </rules> </processor>
unit
要素を使用すると、amount
要素の期間の単位を定義できます。この要素には、子要素も属性もありません。
有効な値は次のとおりです。
NANOSECONDS
MICROSECONDS
MILLISECONDS
SECONDS
MINUTES
HOURS
DAYS
次の例はコンポーネント構成ファイル内のunit
要素の使用方法を示します。
<diagnostic-profiles> <name>myselfprofiles</name> <profile> <name>testProfile0</name> <enabled>true</enabled> <start-stage>MetricSubscriber</start-stage> <max-latency> <collect-interval> <amount>1000</amount> <unit>s</unit> </collect-interval> <name>testProfile0MaxLat</name> <start-location> <application>diagnostic</application> <stage>MetricSubscriber</stage> <direction>INBOUND</direction> </start-location> <end-location> <application>diagnostic</application> <stage>MonitorProcessor</stage> <direction>OUTBOUND</direction> </end-location> </max-latency> </profile> </diagnostic-profiles>
user
要素は次の親要素で使用します。
http-pub-sub-adapter: user
要素を使用すると、Oracle Stream Analyticsアプリケーションがパブリッシュする対象となるHTTPパブリッシュ/サブスクライブ・サーバーがユーザー認証を要求する場合に、ユーザー名を定義できます。
jms-adapter: Oracle Stream AnalyticsはJNDI InitialContext
を取得するときに、user要素とpassword
要素(またはencrypted-password
要素)を使用します。Oracle Stream Analyticsは、javax.jms.ConnectionFactory
のcreateConnection
メソッドを呼び出して、JMS宛先(JMSキューまたはトピック)への接続を作成するときに、connection-user
要素と、connection-password
要素またはconnection-encrypted-password
要素(構成されている場合)を使用します。それ以外の場合、Oracle Stream Analyticsはuser
要素とpassword
要素(またはencrypted-password
要素)を使用します。
rmi-adapter: user
要素は、Oracle WebLogic Serverに対するRMI認証用として使用します。
edn-adapter: user
要素は、Oracle SOA SuiteのEDNまたはJMS認証用として使用します。
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のuser
要素の使用方法を示します。
<http-pub-sub-adapter> <name>remotePub</name> <server-url>http://localhost:9002/pubsub</server-url> <channel>/test1</channel> <event-type>com.bea.wlevs.tests.httppubsub.PubsubTestEvent</event-type> <user>wlevs</user> <password>wlevs</password> </http-pub-sub-adapter>
validate
要素を使用すると、JAXBのマーシャリングおよびアンマーシャリング時にスキーマの検証を実行できます。検証を有効にするにはtrue
に設定し、検証を無効にするにはfalse
に設定します。
validate
要素には、子要素も属性もありません。
次の例は構成ファイル内のvalidate要素の使用方法を示します。
<edn-adapter> <name>ednInboundAdapterJaxb</name> <edl-file>CallCenterEvents.edl</edl-file> <schema-file>callcenter.xsd</schema-file> <validate>true</validate> <package-name>org.callcenter</package-name> <raw-xml-content>false</raw-xml-content> <jndi-provider-url>vm://localhost</jndi-provider-url> <jndi-factory>org.apache.activemq.jndi.ActiveMQInitialContextFactory </jndi-factory> <user>test1</user> <password>test123</password> </edn-adapter>
value
要素を使用すると、parameter
要素の値を定義できます。この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のvalue
要素の使用方法を示します。
<record-parameters> <dataset-name>tuple1</dataset-name> <event-type-list> <event-type>TupleEvent1</event-type> </event-type-list> <provider-name>test-rdbms-provider</provider-name> <store-policy-parameters> <parameter> <name>timeout</name> <value>300</value> <parameter> </store-policy-parameters> <batch-size>1</batch-size> <batch-time-out>10</batch-time-out> </record-parameters>
view
要素を使用すると、コンポーネントのOracle CQLビューを定義できます。この要素には、子要素がなく、次の属性があります。
表4-3 viewコンポーネント構成要素の属性
|
次の例はコンポーネント構成ファイル内のview
要素の使用方法を示します。
<processor> <name>cqlProcessor</name> <rules> <view id="lastEvents" schema="cusip bid srcId bidQty ask askQty seq"><![CDATA[ select cusip, bid, srcId, bidQty, ask, askQty, seq from inputChannel[partition by srcId, cusip rows 1] ></view> <view id="bidask" schema="cusip bid ask"><![CDATA[ select cusip, max(bid), min(ask) from lastEvents group by cusip ></view> <view ...><![CDATA[ ... ></view> ... <view id="MAXBIDMINASK" schema="cusip bidseq bidSrcId bid askseq askSrcId ask bidQty askQty"><![CDATA[ select bid.cusip, bid.seq, bid.srcId as bidSrcId, bid.bid, ask.seq, ask.srcId as askSrcId, ask.ask, bid.bidQty, ask.askQty from BIDMAX as bid, ASKMIN as ask where bid.cusip = ask.cusip ></view> <query id="BBAQuery"><![CDATA[ ISTREAM(select bba.cusip, bba.bidseq, bba.bidSrcId, bba.bid, bba.askseq, bba.askSrcId, bba.ask, bba.bidQty, bba.askQty, "BBAStrategy" as intermediateStrategy, p.seq as correlationId, 1 as priority from MAXBIDMINASK as bba, inputChannel[rows 1] as p where bba.cusip = p.cusip) ></query> </rules> </processor>
work-manager
要素を使用すると、jms-adapter
のワーク・マネージャ名を定義できます。この要素には、子要素も属性もありません。
有効な値は、Oracle Stream Analyticsサーバー・ファイルのwork-manager
の子要素name
で指定された名前です。デフォルト値は、アプリケーション自身に構成されているワーク・マネージャです。
次の例はコンポーネント構成ファイル内のwork-manager
要素の使用方法を示します。
<jms-adapter> <name>jmsInbound-text</name> <jndi-provider-url>t3://localhost:7001</jndi-provider-url> <destination-name>JMSServer-0/Module1!Queue1</destination-name> <user>weblogic</user> <password>weblogic</password> <work-manager>JettyWorkManager</work-manager> <concurrent-consumers>1</concurrent-consumers> <session-transacted>false</session-transacted> </jms-adapter>
work-manager-name要素を使用すると、cache
のワーク・マネージャを定義できます。この要素には、子要素も属性もありません。
listeners
要素にはwork-manager-name
という単一の子要素があり、これが非同期的なリスナーの起動に使用されるワーク・マネージャを指定します。この値は、同期的起動が有効化されている場合は無視されます。ワーク・マネージャがキャッシュそのものに指定されている場合、この値はリスナーのみを起動するためにオーバーライドします。
有効な値は、Oracle Stream Analyticsサーバー・ファイルのwork-manager
の子要素name
で指定された名前です。デフォルト値は、アプリケーション自身に構成されているワーク・マネージャです。
次の例はコンポーネント構成ファイル内のwork-manager-name
要素の使用方法を示します。
<cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache>
write-behind
要素を使用すると、キャッシュ・ストアへの非同期的な書込みを指定できます。キャッシュ・ストアは、キャッシュ・エントリの作成または更新の後で各スレッドから起動されます。この要素は動的に変更されます。
この要素には、次の子要素があり、属性はありません。
次の例はコンポーネント構成ファイル内のwrite-behind
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <batch-size>100</batch-size> <buffer-size>100</buffer-size> <buffer-write-attempts>100</buffer-write-attempts> <buffer-write-timeout>100</buffer-write-timeout> </write-behind> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
write-none
要素を使用すると、キャッシュ・ストアへ書込みを行わないように指定できます。デフォルトの書込みポリシーでは書込みは行われません。この要素は動的に変更できます。この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のwrite-none
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-none/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>
write-through要素を使用すると、キャッシュ・ストアへの同期的な書込みを指定できます。エントリが作成または更新されると、書込みが発生します。この要素は動的に変更できます。
この要素には、子要素も属性もありません。
次の例はコンポーネント構成ファイル内のwrite-through
要素の使用方法を示します。
<caching-system> <name>providerCachingSystem</name> <cache> <name>providerCache</name> <max-size>1000</max-size> <eviction-policy>FIFO</eviction-policy> <time-to-live>60000</time-to-live> <idle-time>120000</idle-time> <write-through/> <work-manager-name>JettyWorkManager</work-manager-name> <listeners asynchronous="false"> <work-manager-name>JettyWorkManager</work-manager-name> </listeners> </cache> </caching-system>