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

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

このタスクを実行する理由と時期

ほとんどのイベント・プロパティーは、Common Base Event 仕様によってオプションとして定義されています。 ただし、以下のプロパティーは必須です。
注: version 属性は、Common Base Event 仕様によってオプションとして定義されています。 ただし、この属性を指定しない場合は、デフォルト値 1.0 が想定されます。Common Event Infrastructure ではこの仕様のバージョン 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 プロパティーを設定します。

実際のアプリケーションでは、有益なイベントには、この例に示すよりもさらに多くの情報を含める必要があります。しかし、これは、Common Base Event 仕様および Common Event Infrastructure で必要となる最低限です。 イベントが有効になり、エミッターにサブミットできます。


ご利用条件 |


(c) Copyright IBM Corporation 2005, 2006.
本製品では Eclipse テクノロジーが採用されています。(http://www.eclipse.org)