Viewing the current status of LDAP servers in Directory Proxy Server 6.3
The dpconf command for managing DSEE Directory Proxy Servers (DPS) shows you a lot of information about the ldap-data-sources (the back-end directory servers), including whether or not they are administratively enabled or disabled. One status that I couldn’t find was whether a given back-end server was actually considered on-line by the DPS itself. It turns out the current status information is available, but only by digging through the cn=monitor entry on the DPS instance. Bear in mind you will need to authentication as the proxy’s root DN (default is “cn=proxy manager”) to dig it up. Also, it appears that logic that implements cn=monitor doesn’t hande all search criteria perfectly, so we will use a little bit of grep magic to reduce the result set to what we want. Here is an example ldapsearch to get the current status of servers:
ldapsearch -D “cn=proxy manager” -j ~/.dmpass -b cn=monitor serveravailable=* \
| egrep “^backendServer|^serverAvailable”
backendServer: testdscc01:3998/ serverAvailable: true backendServer: testds05:389/ serverAvailable: true backendServer: testds06:389/ serverAvailable: false backendServer: testds07:389/ serverAvailable: true
In this case it would be good idea to check testds06 and see if the server is down, or perhaps it is failing a DPS health check for some other reason.
If you want to dig a little deeper into cn=monitor, you can find a lot of detailed information about the thread that is monitoring a particular data source. Here is an example of one pointing to an LDAP server that is unavailable:
dn: cn=Proactive Monitor for testds06:389/,cn=Monitor Thread,cn=Resource,
cn=testdps01:/opt/dsee/instances/dps,cn=Instance,cn=DPS6.0,cn=Product,cn=monitor
objectClass: top
objectClass: extensibleObject
cn: Proactive Monitor for testds06:389/
started: true
running: true
startTime: [03/19/2009:12:20:36 -0700]
operationalStatus: OK
statusDescription: The monitor thread is fully operational
threadId: 19
threadStack: java.lang.Thread.sleep(Native Method) / com.sun.directory.proxy.server.ProactiveMonitorThread.runThread(ProactiveMonitorThread.java:122) / com.sun.directory.proxy.util.DistributionThread.run(DistributionThread.java:225) /
backendServer: testds06:389/
serverAvailable: false
checkInterval: 30000
additionalCheckType: op connection
totalChecks: 594
availabilityChecksFailed: 2
additionalChecksFailed: 0