Advanced Registration Flow のコンフィグレーションと管理

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

Oracle Enterprise Repository Event Manager のコンフィグレーション

この節では、Advanced Registration Flow を使用する前に完了する必要のある Event Manager のコンフィグレーションについて説明します。この節では、以下の内容に関する情報を取り上げます。

 


Oracle Enterprise Repository Event Manager とは

Event Manager は、Oracle Enterprise Repository に組み込まれたコンポーネントであり、イベント サブスクリプション、イベントの永続性、イベントのフィルタ処理、およびイベントの配信を管理します。Web サービス エンドポイントでは、Event Manager の Subscription Manager をサブスクライブできます。Oracle Enterprise Repository 内で生成されるアセット登録イベントは、Web サービス エンドポイントに配信されます。

次の図は、関連するさまざまなコンポーネントを示しています。

図 3-1 Advanced Registration Flow のコンポーネント

Advanced Registration Flow のコンポーネント

Event Manager では、デフォルトで有効な組み込みバージョンの Apache ActiveMQ JMS サーバを使用します。組み込みの JMS サーバは、追加のコンフィグレーションを行わずにすぐに実行できるようにコンフィグレーションされています。ただし、WebLogic Server や IBM WebSphere などの外部の JMS サーバを使用するように Event Manager をコンフィグレーションすることもできます。

この節では、Advanced Registration Flow を使用する前に完了する必要のある Event Manager のコンフィグレーションについて説明します。Advanced Registration Flow のコンフィグレーションについては、「Advanced Registration Flow のコンフィグレーション」を参照してください。

 


Event Manager のシステム設定のコンフィグレーション

Oracle Enterprise Repository の [System Settings] セクションを使用すると、管理者は Oracle Enterprise Repository の基本操作をコンフィグレーションしたり、特定の機能の有効と無効を切り替えたりできます。Event Manager に関連する設定は、メイン カテゴリ [External Integrations] の [Eventing] グループで行います。システム設定の詳細については、『Oracle Enterprise Repository 管理ガイド』を参照してください。

WebLogic Server や IBM WebSphere などの外部 JMS サーバのコンフィグレーションには追加の「イベンティング」プロパティを使用できます。「イベンティング」プロパティについては、「Oracle Enterprise Repository 用の JMS サーバのコンフィグレーション」を参照してください。

Event Manager の有効化

Event Manager から外部の Web サービス エンドポイントにイベントを送信できるようにするには、Event Manager を Oracle Enterprise Repository で有効にする必要があります。

  1. Oracle Enterprise Repository の [Admin] 画面のサイドバーにある [System Settings] をクリックします。
  2. [System Settings] の検索ボックスに「Event」と入力し、Event Manager に関連するすべての設定を表示します。
  3. [Enable Event Manager] プロパティの横にある [True] をクリックします。
  4. [Save] をクリックします。
  5. Oracle Enterprise Repository を再起動してコンフィグレーションの変更を有効にします。

Event Manager のオプションの設定のコンフィグレーション

Event Manager のパフォーマンスの調整に使用できるオプションの「イベンティング」プロパティがいくつか存在します。

注意 : イベンティング プロパティを変更した後にその変更を有効にするには、Oracle Enterprise Repository を再起動する必要があります。

Eventing Manager 通知機能スレッド スリープ (秒)

1 つまたは複数のイベントをエンドポイントに配信する必要がある場合に、そのエンドポイントを使用できないときは、エンドポイントが使用可能になるまで、Event Manager 通知機能がイベントの配信を再試行します。cmee.eventframework.notifier.sleep プロパティは、通知機能がイベントを再配信するまでに待機する時間を秒単位でコンフィグレーションします。

Eventing Manager ストア スレッド スリープ (秒)

イベントがトリガされるとすぐに、Event Manager は JMS サーバにプッシュする前にイベントをメモリに格納し、Oracle Enterprise Repository スレッドがブロックされないようにします。cmee.eventframework.store.sleep プロパティは、メモリに格納された次のイベントのポーリングの前に、Event Manager の Store Manager スレッドをスリープ状態にする時間を指定します。デフォルトのポーリング遅延時間は 60 秒です。

Eventing Manager ストア配信スリープ (秒)

デフォルトでは、Event Manager はイベントをバッチ配信します。cmee.eventframework.delivery.sleep プロパティは、次に使用可能なイベントのバッチを JMS サーバから選択する前に、Event Manager の Delivery Manager スレッドをスリープ状態にする時間を指定します。各バッチ間のデフォルトの遅延時間は 7200 秒 (2 時間) です。

ヒント : cmee.eventframework.store.sleep プロパティと cmee.eventframework.delivery.sleep プロパティのデフォルト値を調整して、Oracle Enterprise Repository と Web サービス エンドポイントの全体的なパフォーマンスを制御できます。この 2 つのプロパティは、Event Manager で 1 秒あたりにトリガされるイベント数に直接影響します。たとえば、テスト目的で迅速な応答が必要な場合は、cmee.eventframework.delivery.sleep のデフォルト値 7200 秒を、テストに適した値に変更する必要があります。

Event Manager の配信バッチ サイズ

Event Manager がイベントをバッチ配信する場合は、cmee.eventframework.delivery.batch.size プロパティを使用して、配信されるバッチ サイズをコンフィグレーションできます。デフォルトのバッチ サイズは 100 個のイベントです。配信するイベント数が少ない場合、Event Manager は使用可能なイベントを配信してから、cmee.eventframework.delivery.sleep プロパティでコンフィグレーションされた時間だけスリープ状態になります。

 


Subscription Manager のコンフィグレーション

Subscription Manager は、一致するイベントが配信される Web サービス エンドポイントによってイベントのサブスクリプションを管理します。

Subscription Manager のコンフィグレーション ファイルは <OER Web アプリケーション名>\WEB-INF\classes\EndPointEventSubscription.xml にあります。

Web サービス エンドポイントのコンフィグレーション

Event Manager では、EndPointEventSubscription.xml ファイルを使用して、イベントを配信する必要のある Web サービス エンドポイントの情報をロードします。次のサンプル コードに示すように、あらかじめ定義されている ALPBM エンドポイントまたはユーザ定義の Web サービス エンドポイントのホスト、ポート、URI、ユーザ、およびパスワードをコンフィグレーションする必要があります。

<sub:EventSubscriptionData xmlns:sub="http://www.bea.com/infra/events/subscription" xmlns:xsi=???
<sub:eventSubscription>
<sub:endPoint name="ALBPMEndpoint">
<sub:host>maplanis01.amer.bea.com</sub:host>
<sub:port>9000</sub:port>
<sub:uri>fuegoServices/ws/StatusChangeEnpointServiceListener</sub:uri>
<sub:targetNamespace>StatusChangeEndpoint</sub:targetNamespace>
<sub:operationName>newEvent</sub:operationName>
<sub:authenticationData>
<sub:basicAuthentication>
<sub:username>aler_workflow_user</sub:username>
<sub:username>aler_workflow_user</sub:username>
</sub:basicAuthentication>
</sub:authenticationData>
</sub:endPoint>
<sub:notifierClass>com.bea.infra.event.notifier.help.AlbpmHTTPEventNotifier </sub:notifierClass>
<sub:expression>id > 500</sub:expression>
</sub:eventSubscription>
</sub:EventSubscriptionData>

エンドポイントを必要な数だけ追加し、個別のホストまたはポートに配置して、イベントのロード バランシングを行うことができます。あらかじめ定義されている Advanced Registration Flow のエンドポイントは 1 つ (StatusChangeEndpoint) だけです。

イベントをフィルタ処理する式の設定

expression 要素に入力した値に基づいて、イベントをフィルタ処理できます。

すべてのイベントのエンドポイントへの配信

デフォルト設定では、「すべてのイベント」をエンドポイントに配信します。expression 要素が空の場合、Oracle Enterprise Repository 内でトリガされるすべてのイベントは OOTB エンドポイントに配信されます。

<sub:expression></sub:expression>

イベントの種類でフィルタ処理されたイベントのエンドポイントへの配信

次の XML コードは、AssetSubmission という種類のイベントをエンドポイントに配信する方法を示しています。

<sub:expression> eventdata_name =”urn:com:bea.aler:events:type:AssetSubmission”</sub:expression>

また、「OR」演算子を使用して複数のイベントの種類をフィルタ処理することもできます。

eventdata_name =”urn:com:bea.aler:events:type:AssetSubmission” OR
eventdata_name =”urn:com:bea.aler:events:type:AssetAccepted”

サポートされているイベントの種類は以下のとおりです。

JMS メッセージ セレクタを使用してフィルタ処理されたイベントのエンドポイントへの配信

セレクタとは、サブスクリプションにフィルタをアタッチしてコンテンツベースのルーティングを実行する手段です。セレクタは SQL 92 構文を使用して定義されます。イベントをフィルタ処理するためのフィルタ式の記述に使用できるすべてのフィールドのリストを次に示します。これらのフィールドは Event Manager によって JMS メッセージにプロパティとして追加され、フィールドにアクセスする JMS メッセージ セレクタを記述してイベントをフィルタ処理できます。

submittedby_emailaddress = mrsmith@bea.com
asset_description = Test Asset
submittedby_name = aler_workflow_user
submittedby_id = 99
asset_community = Java
eventdata_description = new aler event
eventsource_componentname = Aqualogic ALER
asset_name = TestAsset
eventsource_componenttype = ALER3.0
asset_typeid = 154
eventdata_eventid = d0cdac55-c78f-4a29-8aec-6ea9ba8d31f1
eventdata_name = urn:com:bea:aler:events:type:MetaDataChange:name
asset_activestatus = ACTIVE
eventsource_location = ALERCore
asset_id = 50100
eventdata_version = ver1.0
asset_version = 1

JMS メッセージ セレクタの詳細については、以下の Web サイトを参照してください。

JMS メッセージ セレクタの例

ここでは、JMS メッセージ セレクタの使用例を示します。

ヒント : 「より小さい」や「より大きい」を表す「< >」などの記号は、無効な XML コンテンツです。これは、式が XML ファイルに記述され、Event Manager によって解析されるためであり、XML で扱いにくい文字は XML 規則で管理する必要があります。たとえば、「asset_id > 500」と同じ意味で「id > 500」を使用する必要があります。

 


Event Manager のイベントのロギングのコンフィグレーション

Event Manager では、Oracle Enterprise Repository と同じロギング フレームワークを使用します。デフォルトでは、ファイルに移動するようにロギングが設定されていますが、コンソールに移動するには、<OER ドメイン>\WEB-INF\classes ディレクトリにある log4fl.properties ファイルに以下のカテゴリを追加してデバッグ文を作成する必要があります。

# eventing subsystem
log4j.category.com.bea.infra.event.core= debug,eventingLog,stdout
log4j.category.com.bea.infra.event.dm= debug,eventingLog,stdout
log4j.category.com.bea.infra.event.facade= debug,eventingLog,stdout
log4j.category.com.bea.infra.event.notifier= debug,eventingLog,stdout
log4j.category.com.bea.infra.event.store= debug,eventingLog,stdout
log4j.category.com.bea.infra.event.sub= debug,eventingLog,stdout

  ページの先頭       前  次