|
このドキュメントでは、Event Manager によって送信されるイベントを使用する新しい Web サービス エンドポイントを開発する方法と、他の通知機能プラグインを使用できるように Event Manager を拡張する方法について説明します。
Event Manager のコンフィグレーションについては、「Oracle Enterprise Repository Event Manager のコンフィグレーション」を参照してください。
次の図は、Oracle Enterprise Repository Event Manager によって送信されるイベントを受信するための Web サービス エンドポイントの接続方法を示しています。

新しい Web サービス エンドポイントを作成してイベントの取得を開始するには、次の手順に従います。
<OER Web アプリケーション パス>/WEB-INF/lib ディレクトリにある eventNotifier.jar にバンドルされています。
この節では、新しい Web サービス エンドポイントで使用可能な操作と Event Manager で操作を指定する方法について説明します。
Oracle Enterprise Repository Event Manager では、以下の操作をサポートします。
この操作では、XML スキーマ セクションで定義されるイベント オブジェクトを入力として使用し、状態を出力として返します。状態は文字列型として定義されます。また、状態の文字列の先頭が Failure の場合、Event Manager は例外を送出し、成功するまでイベントの再配信を試行します。それ以外の場合、Event Manager は応答を記録し、転送の例外が発生しない限り、次のイベントを配信します。
この操作では、文字列形式のイベント データを入力として使用し、状態を出力として返します。状態は文字列型として定義されます。また、状態の文字列の先頭が Failure の場合、Event Manager は例外を送出し、成功するまでイベントの再配信を試行します。それ以外の場合、Event Manager は応答を記録し、転送の例外が発生しない限り、次のイベントを配信します。
この操作では、XML スキーマ セクションで定義されるイベント オブジェクトを入力として使用します。この操作は一方向の操作として定義されます。
この操作では、文字列形式のイベント データを入力として使用します。この操作は一方向の操作として定義されます。
この操作は、Process Engine が Oracle Business Process Management である場合にのみ使用する必要があります。この操作では、内部的に startSession 操作を呼び出してセッションを開始し、Oracle Business Process Management を認証します。また、この呼び出しの後に discardSession を呼び出します。
Event Manager の Subscription Manager を次のようにコンフィグレーションすることにより、operationName 要素に指定されている優先 Web サービスの操作を選択できます。
<sub:EventSubscriptionData xmlns:sub=”http://www.bea.com/infra/events/subscription” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<sub:eventSubscription>
<sub:endPoint name=”ALBPMEndpoint3”>
<sub:host>localhostt>
<sub:port>9000</sub:port>
<sub:uri>fuegoServices/ws/StatusChangeEnpointServiceListener</sub:uri>
<sub:targetNamespace>http://www.bea.com/infra/events</sub:targetNamespace>
<sub:operationName>newEvent</sub:operationName>
<sub:authenticationData>
<sub:basicAuthentication>
<sub:username>admin</sub:username>
<sub:username>admin</sub:username>
</sub:basicAuthentication>
</sub:authenticationData>
</sub:endPoint>
<sub:notifierClass>com.bea.infra.event.notifier.plugin.http.DefaultHTTPEventNotifier </sub:notifierClass>
<sub:expression></sub:expression>
</sub:eventSubscription>
</sub:EventSubscriptionData>
Oracle Enterprise Repository Event Manager には、デフォルトの SOAP/HTTP 通知機能が含まれています。追加の要件が存在する場合は、次の図に示すように、新しいプラグインを開発して接続できます。

新しいプラグインを Event Manager で使用するには、次の手順に従います。
AbstractEventNotifier を拡張して、新しい通知機能プラグインを開発します。このクラスは、<OER Web アプリケーション パス>/WEB-INF/lib ディレクトリにある eventNotifier.jar にバンドルされています。init() メソッドと sendNotification() メソッドをオーバーライドする必要があります。これらのメソッドの詳細については、Javadoc を参照してください。handle() メソッドは、XML Bean 形式でイベント データを渡します。これにより、イベント データを外部 Web サービスに送信できます。notifierClass 要素を次のように変更します。<sub:EventSubscriptionData xmlns:sub=”http://www.bea.com/infra/events/subscription” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<sub:eventSubscription>
<sub:endPoint name=”ALBPMEndpoint3”>
<sub:host>localhost</sub:host>
<sub:port>9000</sub:port>
<sub:uri>fuegoServices/ws/StatusChangeEnpointServiceListener</sub:uri>
<sub:targetNamespace>StuatusChangeEndpoint</sub:targetNamespace>
<sub:operationName>newEvent</sub:operationName>
<sub:authenticationData>
<sub:basicAuthentication>
<sub:username>admin</sub:username>
<sub:username>admin</sub:username>
</sub:basicAuthentication>
</sub:authenticationData>
</sub:endPoint>
<sub:notifierClass>com.bea.infra.event.notifier.plugin.http.DefaultHTTPEventNotifier</sub:notifierClass>
<sub:expression>id > 500</sub:expression>
</sub:eventSubscription>
</sub:EventSubscriptionData>
<OER Web アプリケーション パス>/WEB-INF/lib デイレクトリにコピーして、クラスパスで選択されるようにします。init() メソッドと handle() メソッドを呼び出します。
Oracle Enterprise Repository Event Manager との互換性のないインタフェースまたはコントラクトを持つエンドポイントが存在する可能性があります。これは、エンドポイントの開発に使用されるツールに Oracle Enterprise Repository Event Manager で提供される WSDL の使用制限があるか、または他の相互運用性の問題が存在する可能性があるためです。そのような状況では、以下のアプローチを使用できます。
|