本附錄說明要在 Messaging Server 啟用事件通知服務發佈程式 (ENS 發佈程式) 以及管理事件通知服務 (ENS) 所需要執行的作業。
本章附錄包含以下各節:
如需有關 ENS 和 ENS API 的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Event Notification Service Guide」。
事件通知服務 (ENS) 是基本的發佈/訂閱服務。ENS 做為派送程式,由 Sun Java System 應用程式用做收集其所需的某些類型事件的中心點。 事件是資源的一個或多個屬性值的變更。任何想瞭解何時發生這些類型的事件的應用程式,均可註冊可按次序識別事件並使通知與訂閱相匹配。
從 Messaging Server 開始,ENS 和 iBiff (Messaging Server 的 ENS 發佈程式) 綑綁在一起。依預設,ENS 為啟用狀態,但未載入 iBIFF。(請參閱在 Messaging Server 中載入 ENS 發佈程式。
若要訂閱 Messaging Server 的通知服務,需要先在 Messaging Server 主機上載入 libibiff 檔案,然後停止並重新啟動 Messaging Server。
從指令行執行以下步驟。在這些步驟中,Messaging Server 安裝目錄的位置為 msg_svr_base,使用者為 inetuser。這些變數的典型值分別為 /opt/SUNWmsgsr 和 inetuser。
若為 inetuser,請執行 configutil 公用程式載入 libibiff 檔案。
cd msg_svr_base ./configutil -o "local.store.notifyplugin" -v "msg_svr_base/lib/libibiff" |
若為 root,請停止然後重新啟動 Messaging Server。
cd msg_svr_base/sbin
./stop-msg
./start-msg
現在您便可以透過 ENS 接收通知。請參閱執行範例事件通知服務程式
Messaging Server 包含的範例程式可協助您瞭解如何接收通知。這些範例程式位於 msg_svr_base/examples 目錄中。
請變更至 msg_svr_base/examples 目錄。
使用 C 編譯器,編譯使用 Makefile.sample 檔案的 apub 和 asub 範例。將程式庫搜尋路徑設定為包含 msg_svr_base/examples 目錄。
程式編譯完成後,您可以按以下方法在單獨視窗中執行它們:
apub localhost 7997
asub localhost 7997
在 apub 視窗中鍵入的任何內容均應顯示在 apub 視窗中。此外,如果使用預設設定,則所有 iBiff 通知均應顯示在 asub 視窗中。
若要接收 iBiff 發佈的通知,請寫入與 asub.c 類似的程式
如需有關範例程式以及編寫自己的 ENS 程序之更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Event Notification Service Guide」。
將程式庫搜尋路徑設定為包含 msg_svr_base/lib 目錄後,便無法再停止和啟動目錄伺服器。解決方法是將項目從程式庫搜尋路徑中移除。
管理 ENS 包括啟動和停止該服務,以及變更配置參數以控制 ENS 的 iBiff 發佈程式的運作方式。
可以使用 start-msg ens 和 stop-message ens 指令來啟動和停止 ENS 伺服器。必須為 root 使用者才可以執行這些指令。
啟動 ENS:
msg_svr_base/sbin/start-msg ens
停止 ENS:
msg_svr_base/sbin/stop-msg ens
有數個配置參數可以控制 iBiff 的運作方式。可以使用 configutil 公用程式來設定這些參數。
表 B–1 iBiff 配置參數
參數 |
說明 |
---|---|
指定將與通知一起傳輸的標頭之最大大小 (以位元組為單位)。預設為 0 位元組。 |
|
local.store.notifyplugin.maxBodySize |
指定將與通知一起傳輸的內文之最大大小 (以位元組為單位)。預設為 0 位元組。 |
local.store.notifyplugin.eventType.enable |
指定給定事件類型是否將產生通知。合法值是 1 (啟用) 和 0 (停用)。預設值是 1;即,將 local.store.notifyplugin.ReadMsg.enable 設定為 0 將停用 ReadMsg 通知。 |
local.store.notifyplugin.ensHost |
指定 ENS 伺服器的主機名稱。預設為 127.0.0.1。 |
local.store.notifyplugin.ensPort |
指定 ENS 伺服器的 TCP 連接埠。預設為 7997。 |
local.store.notifyplugin.ensEventKey |
指定要用於 ENS 通知的事件金鑰。預設為 enp://127.0.0.1/store。事件金鑰的主機名稱部分不用於決定 ENS 主機。它僅是 ENS 使用的唯一識別碼。 訂閱者應訂閱此金鑰,以便收到匹配該金鑰的事件通知。 |