WebSphere WebSphere Enterprise Service Bus, Version 6.0.1 オペレーティング・システム: AIX, HP-UX, Linux, Solaris, Windows

イベント内容の自動入力

プロパティーおよびポリシーを設定することにより、イベント内容を自動的に入力できます。

このタスクを実行する理由および時期

作成した各イベントごとに、一部のイベント・プロパティー・データを自動的に設定する場合があります。 この方法では、変更しない特定の標準値 (アプリケーション名など) の入力や、ランタイム環境から使用可能な情報を基に一部のプロパティー (作成時刻やスレッド情報など) の設定を行います。 また、ビジネス・ルールに応じてイベント内容を管理するポリシーを設定することも可能です。 例えば、特定の拡張名があるすべてのイベントで、特定の値に重大度を設定する必要がある場合などです。

これは、コンテンツ・ハンドラー を作成することにより、実行できます。 コンテンツ・ハンドラーは、使用する任意のポリシーを基に各イベントのプロパティー値を自動的に設定するオブジェクトです。 共通イベント・インフラストラクチャーでは、イベントがコモン・ベース・イベントの仕様に準拠しているかぎり、コンテンツ・ハンドラーによるイベント・データの変更を制限しません。

すべてのイベント・ソースを同じポリシーに準拠させるには、コンテンツ・ハンドラーに関連付けてイベント・ファクトリーを作成し (EventFactoryFactory を使用)、 その作成されたイベント・ファクトリーを JNDI ネームスペースにバインドします。 独自のイベント・ファクトリーを作成する代わりに、コンテンツ・ハンドラーの知識なしで、イベント・ソースが JNDI 検索を実行して既存のイベント・ファクトリーにアクセスするようにできます。 ユーザーのビジネス・ルールが後で変更された場合は、一箇所でコンテンツ・ハンドラーを変更できます。

イベント・ソースは、内容を入力するために何も行う必要はありません。 イベント・ファクトリーがコンテンツ・ハンドラーに関連付けられている場合、それにより作成された各イベントは、コンテンツ・ハンドラーへの参照を保持します。 イベントがエミッターに送信されると、そのイベントはそれ自体への参照を受け渡して、コンテンツ・ハンドラーの completeEvent() メソッドを呼び出します。 これにより、イベント・ソースのイベント固有のプロパティー設定が完了した後、さらにイベントがエミッターにより確認され処理される前に、正しいポリシーがイベントに適用されます。
注: イベントがあるプロセスから別のプロセスに伝送された場合、コンテンツ・ハンドラーへの参照は一緒に伝送されません。 これは、内容の入力がイベントが発生する環境に依存し、必要な情報が他の場所で使用可能ではない場合があるためです。 この制限は、ローカルな別のアプリケーション間の呼び出し (例えば、ローカル・インターフェースを使用したエンタープライズ Bean への呼び出し) には影響しません。

コンテンツ・ハンドラーを作成するには、以下のステップを実行します。

このタスクの手順

  1. org.eclipse.hyades.logging.events.cbe.ContentHandler インターフェースを実装する新規の Java クラスを作成します。 このインターフェースでは、completeEvent(CommonBaseEvent) という単一のメソッドが定義されています。 そのパラメーターは、内容が入力されるイベントです。 このメソッドの実装では、CommonBaseEvent の getter および setter の各メソッドを使用し、 適用されるすべてのポリシーに従ってイベント・プロパティー・データを処理できます。
    注: イベント・ソースが JNDI を使用してイベント・ファクトリーを取得する場合は、コンテンツ・ハンドラーがイベント・ファクトリーと共に戻されます。 そのため、コンテンツ・ハンドラーはシリアライズ可能である必要があります。

    以下の例は、各イベントの拡張名を自動的に設定する単純なコンテンツ・ハンドラーです。

    import java.io.Serializable;
    import org.eclipse.hyades.logging.events.cbe.*;
    
    public class BusinessContentHandler
         implements ContentHandler, Serializable {
    
           public void completeEvent(CommonBaseEvent event)
              throws CompletionException {
                  event.setExtensionName("business");
         }
    }
  2. コンテンツ・ハンドラーをイベント・ファクトリーに関連付けます。 これを実行するには、以下のように、イベント・ファクトリーの作成時にコンテンツ・ハンドラーを指定します。
    EventFactory eventFactory =
         (EventFactory) EventFactoryFactory.createEventFactory(contentHandler);
    戻されるイベント・ファクトリーは、指定されたコンテンツ・ハンドラーに永続的に関連付けされています。

Task topic

ご利用条件 | フィードバック (英語のみ)

Timestamp icon最終更新: 5 Mar 2006
http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/index.jsp?topic=/com.ibm.websphere.wesb.doc.nl1_6.0.1\doc\tcei_admin_contentCompletion.html

(C) Copyright IBM Corporation 2005. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)