|
使用静态变量保存DirContext一段时间之后,连接自动断开(但DirContext 对象不为null) static DirContext ctx 如果每次search都连接则效率低下。
因此需要一个连接池的概念,或search前进行检查。
参考:如何对DirContext进行连接有效性检查(coolbie经典) - 有效性检查连接
如何检查DirContext实例中的LDAP连接是否有效 但是JNDI并没有提供类似isConnected或者 isValid这样的方法(JNDI是一个更高层次上的接口),那么如何判断一个DirContext内关联的LDAP连接是否有效呢?答案只有一个即必须通过一次LDAP操作来确定该Context实例是可用的。
对于类似的有效性检查,主要有一个原则,就是有尽可能高的效率。比如DB中的select 1 from dual。所以对于DirContext来说,由于我们必须要执行一次LDAP Operation来达到我们的目的,因此必须选择一个非常轻量级的高效率的操作。
//?????? 1.lookup("") 2. search entry dn 2.search Root DSE 4. compare 代码如下: NamingEnumeration answer = ctx.search( "o=NetscapeRoot", "(objectclass={0})", new Object[]{"top".getBytes()}, EMPTY_CONSTRAINT); answer.hasMore(); 往返字节总数:936
|
一共有 0 条评论