Подписки
Данные подписки находятся в каталоге COM+ подписки. Подписку можно создать с помощью средства администрирования служб компонентов или программно с помощью интерфейса ICOM Администратор Catalog::InstallComponent.
Коллекция SubscriptionsForComponent используется для добавления, удаления или изменения сведений, относящихся к подпискам. Коллекция SubscriptionsForComponent является дочерней коллекцией компонента. Чтобы добавить подписку, получите коллекцию SubscriptionsForComponent компонента и используйте метод Add для добавления записи в коллекцию. Чтобы настроить различные свойства объекта подписки, используйте свойство Value . Чтобы сохранить изменения, используйте SaveChanges в объекте коллекции SubscriptionsForComponent .
Вы также можете использовать средство администрирования служб компонентов для изменения некоторых свойств подписки, но не всех. Подписки указывают следующие сведения:
- Удостоверение и расположение подписчика
- Способ доставки
- Методы событий для доставки
- Объект класса событий и свойство PublisherID компонента класса событий, от которого подписчик хочет получать события
Подписки существуют независимо от объектов класса событий. Вы можете отключить подписку, задав для свойства Enabled значение False. Отключенная подписка не вызывается событиями COM+.
Ниже приведены три типа подписок.
-
Постоянные
-
Постоянные подписки находятся в каталоге COM+ и не зависят от времени существования подписчика. Постоянные подписки сохраняются после перезагрузки системы. Как правило, постоянная подписка создается при установке приложения на компьютере подписчика и удалении при удалении приложения. После создания постоянной подписки события COM+ активируют подписчика каждый раз, когда событие должно быть доставлено в него.
Когда издатель создает экземпляр и вызывает объект класса событий, объект ищет все постоянные подписки в каталоге COM+ и создает новый экземпляр каждого объекта. Процесс создания может быть прямым или через моникер для компонентов в очереди. Укажите объект подписчика свойством SubscriptionMoniker подписки. Объекты подписчика, созданные постоянной подпиской, всегда освобождаются после каждого вызова события.
-
Временных
-
Для временных подписок можно использовать коллекцию TransientSubscriptions , родительский объект которой является корневым объектом каталога. Временные подписки запрашивают событие для определенного объекта подписчика, который уже существует. Временные подписки хранятся в каталоге COM+, но подписка удаляется, если система событий или операционная система остановлена. В отличие от постоянных подписок, временные подписки привязаны к конкретному объекту и хранятся только в системе событий. Временные подписки могут быть более эффективными, чем постоянные подписки, но необходимо управлять жизненными циклами объектов. Сведения о регистрации временной подписки см. в разделе "Регистрация временной подписки".
-
На пользователя
-
Подписки пользователя могут доставлять события только в том случае, если подписчик вошел на компьютер системы событий. При входе подписчика в систему событий система событий включает все подписки, для которых для флага PerUser задано значение TRUE , а UserName — имя пользователя, вошедшего в систему. При выходе из системы подписчика подписки отключены.
Подписки на пользователей эффективны только в том случае, если издатель и подписчик находятся на одном компьютере. Вход и выход обнаруживаются только на компьютере издателя, а не на компьютере, на котором находится объект подписчика.
Система событий использует мета-события для уведомления заинтересованных подписчиков всякий раз, когда объекты или подписки класса событий создаются, изменяются или удаляются. Чтобы получать мета-события из системы событий, приложения должны создать подписку, которая находится на компьютере системы событий и указывает идентификатор интерфейса стрельбы (IID_IEventObjectChange).
См. также