[This is preliminary documentation and subject to change.]
Permanent event consumers receive notifications whether or not they are running. The registration of a permanent consumer is stored persistently until the user explicitly removes it. When an event occurs, CIMOM determines whether or not the permanent consumer is active. If the consumer is inactive, CIMOM uses information stored in the system registry to locate the consumer and then loads it before attempting the notification.
Permanent consumers are implemented as COM objects. Depending on the platform, a permanent consumer can be implemented as an in-process DLL, local server, or remote server. In-process permanent consumers work on all platforms, have a higher rate of delivery, and a lower system overhead. This is because of the absence of network traffic and interprocess communication.
Permanent consumers implemented as local and remote servers require Distributed COM (DCOM) running on one of the following platforms:
On Windows NT, DCOM is run automatically. On the Windows 95 and Windows 98 platforms, DCOM must be enabled.
Permanent consumers can be configured to receive their event notifications either asynchronously or synchronously. With asynchronous event notification, the event provider is not blocked while a notification is delivered. The sending thread is unrelated to the receiving thread. The disadvantage to asynchronous delivery is that a context switch occurs between the time the provider produces the event and the consumer receives it.
With synchronous notification, the notification is delivered on the same thread that the event provider used to deliver the event to CIMOM. The event provider sends a notification and is blocked until it is delivered. To request synchronous notification, an administrator sets the SynchronousDelivery property in the Binding instance to TRUE. Only consumers that are extremely fast and can process an event in 20 micrseconds or less should consider supporting synchronous notification.