我利用阿帕奇共用池,为LDAP连接安装了一个池。 我不能使用日本国际开发公司提供的集合特征(http://download.oracle.com/javase/jndi/tutorial/ldap/link/joint.html)。 由于我使用SSL连接(与一种习俗(Oracle- provided)的袖珍工厂(java.naming.ldap.gramy.socket
env Value set)将背景从JNDI集合到LDAP服务器,因此在JNDI内部的集合设施是自动残疾的,即使集合了财产。
现在到了以下几个点:将<代码>InitialDirContext的合并实例退回到该集合中,需要加以检查,以了解该数据库是否仍然可用,用户尚未关闭,或者由于其他原因失去与LDAP服务器的联系。
这里,我目前正在研究一个已知存在的具体用户的DN:
final InitialDirContext ctx = internalPooledLDAPConnection.getCtx();
final Subscriber sub = internalPooledLDAPConnection.getSub();
SearchControls ctls = new SearchControls();
ctls.setSearchScope(2);
ctls.setReturningAttributes(new String[] { "dn"});
NamingEnumeration resultSet = ctx.search(sub.getUserSearchBase()[0], "(&(objectclass=*)(uid=orcladmin))", ctls);
如果这项行动没有出现任何例外,那么在我内部集合中,InitialDirContext
。 租赁连接仍然可用,可以安全地从再使用池中接通。
但 我想知道,这是否是能够在这里进行的最便宜的联系检查,还是存在一个更廉价的LDAP操作,我可以使用。