S
sony.antony
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. Unrelated Q : 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
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. Unrelated Q : 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