Asynchronous Events
So far, in this discussion of the COM+ event model, it was always assumed that publishing the event is a synchronous operation—during publishing, the publisher is blocked and that blocking time is proportional to the number of subscribers and their individual processing times. A true loosely coupled event mechanism decouples the publisher from the subscriber even further. It allows the publishers to publish asynchronously and permits the subscribers to handle the event asynchronously as well.
COM+ provides this capability by using COM+ queued components (see Chapter 8). As you will see, both the event class and the subscribers can be queued components, to enable asynchronous publishing and subscribing.
Asynchronous Publishing
COM+ has a built-in service for asynchronous execution: queued components. COM+ events and queued components go together very well, giving you the benefits of a loosely coupled system and the flexibility of asynchronous execution.
Every event class supports a set of sink interfaces. As with any other COM+ component, you can configure any one of the sink interfaces as Queued. A publisher creates a queued event class using the queue moniker. When a publisher fires an event to a queued event class interface, COM+ performs its usual handling of a queued component (recording the call, placing it in a queue, and so on). The COM+ queued component listener pulls the messages (the events) from the event class queue and plays them back to the event ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access