Поделиться через


Публикация и доставка событий в COM+

Чтобы опубликовать событие, просто создайте экземпляр класса событий и вызовите нужный метод; Подробные инструкции о том, как это сделать в коде, см. в разделе публикации события.

Когда издатель запускает событие, служба событий COM+ выполняет поиск базы данных подписок, чтобы найти всех подписчиков, имеющих подписки на инициализированный класс событий. Он устанавливает связь с этими подписчиками (через прямое создание, использование имен или компонентов в очереди) и затем вызывает метод. Для поддержки нескольких уведомлений подписчика для события методы могут содержаться только в параметрах и должны возвращать только успешные или неудачные значения HRESULT.

Заметка

Эта версия событий COM+ не поддерживает распределенное хранилище событий. Подписчик должен подписаться на событие на каждом компьютере, с которого он хочет получать уведомления. В качестве альтернативы можно зарегистрировать объект класса событий и подписки на центральном компьютере и создать экземпляр этого объекта класса событий с удаленных компьютеров, на которых публикуются события. Доставка событий осуществляется либо службой DCOM, либо службой компонент COM+ с очередью. Дополнительные сведения об использовании службы с очередью компонентов COM+ см. раздел Использование событий COM+ с компонентами COM+ с очередью.

 

По умолчанию служба событий COM+ запускает события по очереди, без определенного или повторяемого порядка. Издатели, которым необходимо контролировать порядок, в котором подписчики получают событие, могут реализовать фильтр издателя. (Дополнительные сведения см. раздел Фильтрация событий в COM+.)

Фильтрация событий в COM+

подписок

объект класса событий COM+

Использование событий COM+ с компонентами очереди COM+