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


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

Служба событий COM+ используется для управления доставкой событий от издателей подписчикам. Службу компонентов COM+ можно использовать для того, чтобы сделать время обработки издателя и подписчика независимым, поместив сообщение издателя в очередь и затем воспроизведя его для подписчика. Необходимость использования службы компонентов очереди зависит от базовой бизнес-логики вашего приложения. Если вам нужно создать события, которые не зависят от времени, это можно сделать, используя службу событий COM+ и службу компонента очереди COM+.

Заметка

Дополнительные сведения об использовании службы компонентов с очередью COM+ см. в COM+ Queued Components .

 

Служба обработки компонентов очереди поддерживает порядок вызова методов в рамках одного сообщения. Средство записи объединяет все вызовы методов в сообщение, а затем исполнитель вызывает эти методы в заданном порядке при обработке сообщения.

Записыватель компонентов очереди и проигрыватель можно разместить в любом из следующих двух мест:

  • Между издателем и объектом события
  • Между объектом события и подписчиком

Если вы размещаете регистратор и проигрыватель между издателем и объектом события, вы делаете компонент класса события очередью. Компонент класса событий должен быть помечен для очереди и активироваться проигрывателем в процессе, отдельном от издателя.

Чтобы обеспечить асинхронную доставку событий, создайте запись и проигрыватель между объектом события и подписчиком и задайте атрибут Queued объекта подписки. Это устанавливает Moniker подписчика следующим образом: "queue:/new:/{12345678-1234-1234-1234-123456789012}".

Существует импликация порядка доставки, которую следует учитывать при использовании компонентов очереди в контексте событий. Поскольку служба очереди компонентов записывает и воспроизводит все вызовы в течение всего времени существования объекта в рамках одного сообщения, все вызовы воспроизводятся в том порядке, в котором они были сделаны. Однако если существует несколько сеансов с несколькими объектами, порядок не может быть гарантирован. Если порядок важен, убедитесь, что вызовы, которые необходимо воспроизвести обратно, находятся в одном экземпляре объекта.

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

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

Подписки

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