[ajug-members] LDAP/JNDI auto reconnect ?

Dan Marchant driedtoast at gmail.com
Wed Oct 18 07:17:36 EDT 2006


Also looking into the prefsize attribute for pooling, might be what you need.
That manages the pool per identity.
http://java.sun.com/products/jndi/tutorial/ldap/connect/config.html



On 10/18/06, Dan Marchant <driedtoast at gmail.com> wrote:
> The sun api allows you to pass in multiple ldap connections separated
> by a comma.
> (At least it use to).
>
> This helps with failover, etc... Sounds like your problem is related
> to failover.
> You may want to have 2 directory servers with one acting as a failover
> if the other goes down for maintainence, etc...
>
> Hope this helps,
>
> - Dan
>
>
>
> On 10/18/06, Sony Antony <sony.antony at gmail.com> wrote:
> > 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
> > _______________________________________________
> > ajug-members mailing list
> > ajug-members at ajug.org
> > http://www.ajug.org/mailman/listinfo/ajug-members
> >
>



More information about the ajug-members mailing list