訂用帳戶
訂用帳戶數據位於訂用帳戶 COM+ 目錄中。 您可以使用元件服務系統管理工具,或使用ICOM管理員 Catalog::InstallComponent 介面以程序設計方式建立訂用帳戶。
SubscriptionsForComponent 集合可用來新增、刪除或變更與訂閱相關的資訊。 SubscriptionsForComponent 集合是元件的子集合。 若要新增訂用帳戶,請取得元件的 SubscriptionsForComponent 集合,並使用 Add 方法將專案新增至集合。 若要設定訂閱對象的各種屬性,請使用 Value 屬性。 若要儲存變更,請在 SubscriptionsForComponent 集合物件上使用 SaveChanges。
您也可以使用元件服務管理工具來修改訂用帳戶屬性的一些,但並非全部。 訂用帳戶會指定下列資訊:
- 訂閱者的身分識別和位置
- 傳遞方法
- 要傳遞的事件方法
- 訂閱者想要接收事件的事件類別元件的事件類別物件和 PublisherID 屬性
訂用帳戶與事件類別對象獨立存在。 您可以將 Enabled 屬性設定為 False,以停用訂用帳戶。 COM+ 事件不會呼叫停用的訂用帳戶。
這三種類型的訂用帳戶如下所示:
-
持續
-
永續性訂閱位於 COM+ 目錄中,與訂閱者的存留期無關。 持續訂閱在系統重新啟動後倖存下來。 一般而言,在訂閱者計算機上安裝應用程式並移除應用程式時,就會建立持續性訂閱。 建立永續性訂閱之後,每次應該將事件傳遞給訂閱者時,COM+ 事件就會啟動訂閱者。
當發行者具現化並呼叫事件類別物件時,對象會尋找 COM+ 目錄中的所有永續性訂閱,並建立每個物件的新實例。 建立程式可以是佇列元件的直接或透過Moniker。 依訂閱的 SubscriberMoniker 屬性指定訂閱者物件。 持續性訂閱所建立的訂閱者物件一律會在每次事件呼叫之後釋放。
-
瞬態
-
針對暫時性訂閱,您可以使用 TransientSubscriptions 集合,其父對像是根目錄物件。 暫時性訂閱會針對已經存在的特定訂閱者物件要求事件。 暫時性訂閱會儲存在 COM+ 目錄中,但如果事件系統或作業系統停止,則會刪除訂閱。 不同於持續性訂閱,暫時性訂閱會系結至特定物件,而且只會儲存在事件系統中。 暫時性訂閱比持續性訂閱更有效率,但您必須管理其物件生命週期。 如需註冊暫時性訂閱的相關信息,請參閱 註冊暫時性訂閱。
-
每位使用者
-
每個使用者訂用帳戶只有在訂閱者登入事件系統的計算機時,才能傳遞事件。 當訂閱者登入時,事件系統會啟用 PerUser 旗標設定為 TRUE 的所有訂用帳戶,並將 UserName 設定為登入的用戶名稱。 當訂閱者註銷時,訂閱會停用。
只有當發行者和訂閱者位於同一部計算機上時,每位使用者訂閱才有效。 登入和註銷只會在發行者的計算機上偵測到,而不是訂閱者物件所在的計算機。
每當建立、修改或移除事件類別物件或訂閱時,事件系統就會使用中繼事件來通知感興趣的訂閱者。 若要從事件系統接收中繼事件,應用程式必須建立位於事件系統電腦上的訂用帳戶,並指定引發介面標識碼 (IID_IEventObjectChange)。
相關主題