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