WebSphere WebSphere Enterprise Service Bus, Version 6.0.1 作業系統: AIX, HP-UX, Linux, Solaris, Windows

建立及移入事件

取得事件 Factory 之後,您可以建立事件物件並移入內容資料。

執行這項作業的原因和時機

Common Base Event 規格會將大部分的事件內容定義成選用性內容,但以下是必要內容:
註: Common Base Event 規格將 version 屬性定義成選用的;如果未指定,則會採用預設值 1.0。由於共用事件基礎架構只支援 1.0.1 版的規格, 因此必須指定這個值。

如果您嘗試傳送的事件遺漏了前述任一內容,發射器就會拒絕事件並擲出 EventsException 異常狀況。

下列程式碼片段會建立一個事件,並移入最少量的必要內容資料:

CommonBaseEvent event = eventFactory.createCommonBaseEvent();

event.setVersion("1.0.1");                     // 設定版本

long currentTime = System.currentTimeMillis(); // 取得現行時間
event.setCreationTimeAsLong(currentTime);      // 及設定 creationTime

// 設定 sourceComponentId(複式類型)
event.setSourceComponentId("Windows",          // 應用程式
                           "svchost.exe",      // 元件
                           "tlntsvr.exe",      // 子元件
                           "http://www.ibm.com/namespaces/autonomic/Windows",
                                               // componentType
                           "win386_svc",       // componentIdType
                           "9.45.72.138",      // 位置
                           "IPV4"              // locationType
                           );

// 建立 Situation 物件
Situation situation = eventFactory.createSituation();

// 將 situationType 設定為 AvailableSituation(複式類型)
situation.setAvailableSituation("EXTERNAL",          // reasoningScope
                                "NOT AVAILABLE",     // availabilityDisposition
                                "STARTABLE",         // operationDisposition
                                "FUNCTION_PROCESS"); // processingDisposition

// 設定 situation
event.setSituation(situation);

本例會先使用事件 Factory 來建立新的事件實例 event。首先它會設定 version 內容;接著擷取現行系統時間,並使用 setCreationTimeAsLong(long) 方法來設定 creationTime 內容的值。 另一種方法是利用 setCreationTime(String) 方法,使用 XML dateTime 格式來設定建立時間(例如:"2004-07-29T13:12:00-05:00")。

下一個必要內容 sourceComponentId 是一個由 ComponentIdentification 的實例所代表的複式內容,它有自己的內容。 不過,您不必直接建立實例,也不必與這個物件互動(雖然可以這麼做)。 反之,範例中的下一個陳述式使用了 Helper 方法 setSourceComponentId() 來指定巢狀內容; 該 Helper 方法會使用這些值來建立 ComponentIdentification 的實例,接著使用它來設定事件之 sourceComponentId 內容的值。

另外還有類似的 Helper 方法可以設定其他複式內容(例如:setMsgDataElement()、addAssociatedEvent 和 addExtendedDataElement())。 這些方法中,有許多存在於具有不同簽章的多重版本中,因此可以用不同方式指定內容值。 請參閱 Javadoc API 文件,以取得這些方法的完整資訊。

範例中的最後一個必要的內容 Situation 是另一個複式內容。在本例中,situation 物件必須直接利用事件 Factory 來建立實例;接著該範例利用 Helper 方法來設定 situationType 內容,其本身是一個複式子元素。

在實際的應用程式中,有用的事件必須包括比這裡所示還多的資訊,但 Common Base Event 規格和「共用事件基礎架構」至少需要這個項目。現在該事件已經生效,且可以送出給發射器。


Task topic

使用條款 | 此頁的評等

「時間戳記」圖示前次更新: 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)