我正在处理需要与LDAP服务器交互并以1000的集合获取一些用户记录的内容。我们正在观察一种奇怪的行为,
假设是否执行此读取操作,并且以某种方式关闭/终止LDAP服务器,在这种情况下奇怪地不会抛出异常。
我原以为会抛出NamingExcption
。
我用来从服务器读取的代码:
NamingEnumeration searchResults = ldapContext.search(userBaseDN, searchFilterForUsers, searchCtrls);
while (searchResults != null && searchResults.hasMoreElements())
{
SearchResult searchResult = (SearchResult) searchResults.next();
// do something with searchResult
}
我正在谷歌搜索任何提示,如果你能把我放在正确的方向,那就太好了。
感谢。
答案 0 :(得分:1)
正如@EJP所说,你应该设置“com.sun.jndi.ldap.read.timeout”。 为什么有人认为不设置默认值是一个我永远不会知道的好主意。
我还使用连接测试isAlive()方法查询不存在的控件。像(supportedControl = 0.0.0.0.0.0.0)。