如果在获取记录时LDAP服务器断开连接,则不会引发异常

时间:2016-02-09 13:06:27

标签: java exception ldap

我正在处理需要与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 
}

我正在谷歌搜索任何提示,如果你能把我放在正确的方向,那就太好了。

感谢。

1 个答案:

答案 0 :(得分:1)

正如@EJP所说,你应该设置“com.sun.jndi.ldap.read.timeout”。 为什么有人认为不设置默认值是一个我永远不会知道的好主意。

我还使用连接测试isAlive()方法查询不存在的控件。像(supportedControl = 0.0.0.0.0.0.0)。