[ajug-members] LDAP/JNDI auto reconnect ?

Sony Antony sony.antony at gmail.com
Wed Oct 18 01:35:21 EDT 2006


Hello:

We have some DirContext objects we hold on to. So that whenever we
need to access ldap, we dont have to re-instantiate InitialDirContext.

Or at least that was teh idea.

Now we find that if teh ldap is restarted *after* this DirContext
object is instantiated, this object becomes unusable.
( Because the peer side of the original TCP socket it has been holding
on to has been closed )
Is there a way around it ?
We are using the usual "com.sun.jndi.ldap.LdapCtxFactory"
which supports along with other things connection pooling.

1. Does it have something we can make use of ?
2. When we tried the following code, it didnt give us the pooled connections.
It gave the pooled connections only when all the connection pool
parameters were given as system properties through the -D switch.
Since we dont want to specify these properties for the whole system,
is there a way to overcome this


Hashtable env = new Hashtable(11);
env.put(Context.INITIAL_CONTEXT_FACTORY,"");
env.put(Context.PROVIDER_URL, "ldap://hostname:2389/dc=blah..");
env.put(DirContext.SECURITY_PRINCIPAL, "uid=somebody,...");
env.put(DirContext.SECURITY_CREDENTIALS, "passwd");
env.put("com.sun.jndi.ldap.connect.pool", "true");
env.put("com.sun.jndi.ldap.connect.pool.initsize", "3");
env.put("com.sun.jndi.ldap.connect.pool.debug", "fine");
DirContext ctx = new InitialDirContext(env);

Thanks for reading

--sony



More information about the ajug-members mailing list