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

イベントの作成と取り込み

イベント・ファクトリーを取得した後に、イベント・オブジェクトを作成し、それにプロパティー・データを取り込むことができます。

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

ほとんどのイベント・プロパティーは、コモン・ベース・イベントの仕様でオプションとして定義されますが、以下のプロパティーは必須です。
注: version 属性はコモン・ベース・イベントの仕様でオプションとして定義されていますが、属性が指定されていない場合は、デフォルト値の 1.0 であると見なされます。 共通イベント・インフラストラクチャーは、バージョン 1.0.1 の仕様のみをサポートしているため、この値は指定する必要があります。

上記のいずれかのプロパティーが欠落したイベントを送信した場合、そのイベントはエミッターにより拒否され、EventsException 例外がスローされます。

以下のコード・フラグメントでは、イベントを作成し、最低限必要なプロパティー・データを取り込んでいます。

CommonBaseEvent event = eventFactory.createCommonBaseEvent();

event.setVersion("1.0.1");                     // set version

long currentTime = System.currentTimeMillis(); // get current time
event.setCreationTimeAsLong(currentTime);      // and set creationTime

// set sourceComponentId (a complex type)
event.setSourceComponentId("Windows",          // application
                           "svchost.exe",      // component
                           "tlntsvr.exe",      // subcomponent
                           "http://www.ibm.com/namespaces/autonomic/Windows",
                                               // componentType
                           "win386_svc",       // componentIdType
                           "9.45.72.138",      // location
                           "IPV4"              // locationType
                           );

// create situation object
Situation situation = eventFactory.createSituation();

// set situationType to AvailableSituation (a complex type)
situation.setAvailableSituation("EXTERNAL",          // reasoningScope
                                "NOT AVAILABLE",     // availabilityDisposition
                                "STARTABLE",         // operationDisposition
                                "FUNCTION_PROCESS"); // processingDisposition

// set situation
event.setSituation(situation);

この例では、まず最初にイベント・ファクトリーを使用して、新規のイベント・インスタンス event を作成しています。 最初に version プロパティーを設定し、次に現行のシステム時刻を取得し、setCreationTimeAsLong(long) メソッドを使用して creationTime プロパティーの値を設定しています。 代わりに、XML の dateTime 形式 (例えば、"2004-07-29T13:12:00-05:00") を使用して作成時刻を設定する setCreationTime(String) メソッドも使用できます。

次の必須プロパティー sourceComponentId は、それ自体もプロパティーを持っている ComponentIdentification のインスタンスで表される複合プロパティーです。 ただし、そのオブジェクトで直接にインスタンス化、または相互作用を行う必要はありません (それを行うこともできます)。 代わりに、例にある次のステートメントで、ヘルパー・メソッド setSourceComponentId() を使用し、ネストされたプロパティーを指定します。 つまり、ヘルパー・メソッドは、それらの値を使用して ComponentIdentification のインスタンスを作成し、次にそのインスタンスをイベントの sourceComponentId プロパティーの値の設定に使用します。

他の複合プロパティーの設定に対しても同様のヘルパー・メソッドがあります (例えば、setMsgDataElement()、addAssociatedEvent、および addExtendedDataElement())。 これらの多くのメソッドには、シグニチャーが異なる複数のバージョンがあり、 別々の方法によるプロパティー値の指定が可能になります。 それらのメソッドについて詳しくは、Javadoc API 資料を参照してください。

例における最後の必須プロパティー Situation は、別の複合プロパティーです。 この場合、状態オブジェクトはイベント・ファクトリーを使用して直接インスタンス化される必要があります。 例では、ヘルパー・メソッドを使用して、それ自体が複合サブエレメントである situationType プロパティーを設定しています。

実際のアプリケーションでは、例で示された情報より多くの情報が実用的なイベントに必要です。 ただし、上記は、コモン・ベース・イベントの仕様および共通イベント・インフラストラクチャーで最低限必要な情報です。 これで、そのイベントは有効になり、エミッターに送信できます。


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_populatingEvent.html

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