日志文章

2007年09月20日 15:26:46

DirContext 判断 连接是否正常-LDAP

使用静态变量保存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









Tags: LDAP  

类别: LDAP/ |  评论(0) |  浏览(1185) |  收藏
发表评论
看不清楚,换一张