Thursday, December 08, 2005

Persistent Search Control

Very often application developers fetch data from backend systems and store them in application-specific cache memory to speed up response times and enhance user experience. While doing so, they also need to take care of refreshing the data in cache and making sure that the user is not presented with stale data. Maintaining stale data in the cache can potentially impact business critical applications.

It is very commendable that LDAP protocol designers have taken cognizance of this issue and have proposed implementation Persistent Search Control - a mechanism that allows server to notify 'caching' clients of changes in LDAP data. The Novell site provides good tech notes (http://support.novell.com/techcenter/articles/dnd20030204.html) on Persistent Search Control.

Today, most LDAP servers support the Persistent Search Control extension and there are many applications which leverage this control to update cached data.

One such application is the Sun Access Manager which extensively leverages LDAP to provide Access Management functionality to business critical applications.

Sun Access Manager 2005Q1 makes use of Persistent Search Control mechanism to refetch data from the Sun Directory Server. Since the Persistent Search Control mechanism is transparent in its operation, usually the Access Manager administrator is not even aware of this 'hidden' communication between Access Manager and the Directory Server.

There is a separate EventService thread in Access Manager that takes responsibility for Persistent Search operations. You will find the activities of this thread logged in the debug file amEventService. The designers of EventService have also taken care to provide a property com.sun.am.event.connection.idle.timeout to enable restart of Persistent Search operations in case of lost connections. It is especially important to configure this attribute in case Access Manager is communicating with load-balanced Directory Servers. Set this attribute to a value lower than the load-balancer time-out.

0 Comments:

Post a Comment

<< Home