事件來源是利用 Java 程式語言和 Java 2 Platform Standard Edition (J2SE) 或 Java 2 Platform Enterprise Edition (J2EE) 來實作的。事件來源必須送出符合 Common
Base Event 模型的有效事件。每一個事件都是以 Java 物件代表。
發射器和發射器 Factory
事件來源並不與事件伺服器直接互動;
反之,它是與一個稱為發射器(com.ibm.events.emitter.Emitter 介面的實作)的物件互動。發射器是一個本端物件,提供方法讓您傳送事件。
一般而言,發射器會處理事件傳輸的細節;
事件來源的開發人員不需考量事件伺服器位置、過濾器設定或基礎傳輸機制。這些細節是由
發射器 Factory 所控管,這是一個由管理者配置的物件,
且會連結在「Java 命名和目錄介面」(JNDI) 名稱空間中。發射器 Factory 是 com.ibm.events.emitter.EmitterFactory 的實例,用來建立發射器物件。其也會定義它所建立之發射器的行為,且包括下列項目的設定:
- 偏好的交易模式。這項設定主要在指定發射器要在新交易還是現行交易中,傳送每一個事件。事件來源可以變更某個特定發射器或事件送出作業的這項設定,但是設定檔則指定預設值。(這項設定只適用於 J2EE 儲存器;J2SE 平台並不提供交易控制權)。
- 偏好的同步化模式。這項設定主要在指定事件是以同步傳輸傳送還是非同步傳輸傳送。
同步傳輸表示 sendEvent() 方法要等到事件處理完後才傳回控制權給呼叫端;
非同步傳輸表示方法在事件送出之後就立即傳回,呼叫端沒有關於事件處理的進一步資訊。事件來源可以變更發射器或送出事件動作的這個設定,但設定檔會指定預設值。
- 要使用的傳輸設定檔。傳輸設定檔是一個配置物件,
其定義用來傳送事件給事件伺服器的特定傳輸機制。發射器 Factory 設定檔可以指定兩個傳輸設定檔
一個用於同步傳輸,另一個用於非同步傳輸。事件來源無法變更發射器所用的傳輸設定檔。
- 發射器所用的過濾器配置。過濾器配置可定義要用哪個過濾外掛程式來過濾送到發射器的事件。共用事件基礎架構內含預設過濾外掛程式,
不過,如果您要使用不同的過濾引擎,您也可實作自己的過濾外掛程式。
管理者可以建立多個發射器 Factory 設定檔,
每一個分別定義不同的發射器配置。事件來源會使用與現有發射器 Factory 設定檔相關聯的發射器 Factory 來取得發射器;
因此,特定發射器 Factory 所建立的所有發射器都會有相同的預設行為。如需詳細資訊,請參閱取得發射器。
註: 如果事件來源執行時啟用了 Java 2 安全,
且您要產生自己的廣域唯一 ID (GUID),您必須修改原則檔才能正確地處理。請新增以下項目:
permission java.io.FilePermission "${java.io.tmpdir}${/}guid.lock",
"read, write, delete";
permission java.net.SocketPermission "*", "resolve";