【发布时间】:2013-10-24 09:22:43
【问题描述】:
在 Java 中搜索 LDAP 时出现以下异常。它获取了许多记录,但最后它抛出了以下异常。
netscape.ldap.LDAPException: error result (4); Sizelimit exceeded
at netscape.ldap.LDAPConnection.checkMsg(LDAPConnection.java:4880)
at netscape.ldap.LDAPConnection.checkSearchMsg(LDAPConnection.java:2638)
at netscape.ldap.LDAPSearchResults.fetchResult(LDAPSearchResults.java:548)
at netscape.ldap.LDAPSearchResults.hasMoreElements(LDAPSearchResults.java:456)
我尝试了以下选项。
1.getConnection().setOption(LDAPv2.SIZELIMIT,new Integer(0));
getConnection().setOption(LDAPv2.TIMELIMIT,new Integer(0));
2. LDAPSearchConstraints ldapSearchConst = getConnection().getSearchConstraints();
ldapSearchConst.setMaxResults(-1);
ldapSearchConst.setTimeLimit(-1);
3. Both 1 and 2 together
上述选项只有返回的记录数不同,但异常不会消失。有人可以帮我解决这个问题吗?非常感谢
【问题讨论】:
-
服务器告诉您您请求的数据过多。您需要细化您的搜索,使其要求的结果更少。
-
但它返回了一些结果。似乎是客户端的问题
-
通过检查从服务器返回的实际流量来验证您的假设,例如通过在客户端系统上使用wireshark