The eDirectory Event system provides a mechanism for monitoring eDirectory activity on an individual server. The event system generates events for local activities such as adding eDirectory objects, deleting eDirectory objects, and modifying attribute values. See Values for a list of the events and the data types they use.
A monitoring application can decide which events it wants to monitor and then register for these events. Such registered applications become event handlers (see eDirectory Event Handling). The eDirectory event system can notify the event handler during the event or after the event. The event handler remains registered until the application requests that the handler be removed (unregistered).
eDirectory allocates an eDirectory Event Slot Table to track the events.The table contains only the events that have one or more handlers registered for them. The table is dynamic and grows as handlers register for events not previously listed in the table. When a handler is the only handler registered for an event and that handler unregisters, the event is removed from the table. When events are removed, the table does not shrink. It grows to accommodate new events, but remains at its maximum size when events are removed.
Handlers use the NWDSERegisterForEvent function to register for an event. They use the NWDSEUnRegisterForEvent function to remove their handler from the Slot Table.
In addition to the registration events, eDirectory uses eDirectory Event Helper Functions to help access and evaluate the data for the event. If successful, these functions return zero. If unsuccessful, they return a negative value that identifies the error.
When an eDirectory module generates an event, if no handler has registered for the event, the event is dropped. If a handler or handlers are registered, the handlers are notified according to their registered priority.
eDirectory Event Services can also be used for: