Download the JDK
Search the Tutorials
Hide the TOC
Trail: Java Naming and Directory Interface(TM).
Lesson: Advanced Topics for LDAP Users
Section: More LDAP Operations
Advanced Topics for LDAP Users
LDAP v3
JNDI as an LDAP API
How LDAP Operations Map to JNDI APIs
How LDAP Error Codes Map to JNDI Exceptions
Security
Modes of Authenticating to LDAP
Authentication Mechanisms
Anonymous
Simple
SASL
Digest-MD5
SSL and Custom Sockets
More LDAP Operations
LDAP Compare
Search Results
LDAP Unsolicited Notifications
Connection Management
Creation
Closing
Pooling
Configuration
Frequently Asked Questions
Home Page > Java Naming and Directory Interface(TM). > Advanced Topics for LDAP Users
LDAP Unsolicited Notifications

> The LDAP v3 (RFC 2251) defines an unsolicited notification, a message that is sent by an LDAP server to the client without any provocation from the client. An unsolicited notification is represented in the JNDI by the `UnsolicitedNotification` interface.

> Because unsolicited notifications are sent asynchronously by the server, you can use the same event model used for receiving notifications about namespace changes and object content changes. You register interest in receiving unsolicited notifications by registering an `UnsolicitedNotificationListener` with an `EventContext` or `EventDirContext`.

> Here is an example of an `UnsolicitedNotificationListener`.

> >     public class UnsolListener implements UnsolicitedNotificationListener {
> >         public void notificationReceived(UnsolicitedNotificationEvent evt) {
> >             System.out.println("received: " + evt);
> >         }

> >         public void namingExceptionThrown(NamingExceptionEvent evt) {
> >             System.out.println(">>> UnsolListener got an exception");
> >     	    evt.getException().printStackTrace();
> >         }
> >     }

> Following is an example that registers an implementation of `UnsolicitedNotificationListener` with an event source. Note that only the listener argument to `EventContext.addNamingListener()` is relevant. The name and scope parameters are not relevant to unsolicited notifications.

> >     // Get the event context for registering the listener
> >     EventContext ctx = (EventContext)
> >         (new InitialContext(env).lookup("ou=People"));

> >     // Create the listener
> >     NamingListener listener = new UnsolListener();

> >     // Register the listener with the context (all targets equivalent)
> >     ctx.addNamingListener("", EventContext.ONELEVEL_SCOPE, listener);

> When running this program, you need to point it at an LDAP server that can generate unsolicited notifications and prod the server to emit the notification. Otherwise, after one minute the program will exit silently.

> A listener that implements `UnsolicitedNotificationListener` can also implement other `NamingListener` interfaces, such as `NamespaceChangeListener` and `ObjectChangeListener`.

Previous page: Search Results
Next page: Connection Management