netscape.ldap.LDAPException: error result (4);在 Java 中使用 net



我在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

对于上述选项,只有返回的记录数不同,但异常不会消失。谁能帮我这个。非常感谢

从RFC4511:

限制作为搜索结果返回的最大条目数的大小限制。 此字段中的值为零表示客户端请求的大小限制对搜索无效。 服务器还可以强制要求返回的最大条目数。

#1 中的大小限制是客户端请求的大小限制,它不能覆盖服务器端时间限制,如上述 RFC4511 引用中引用的。无论客户端请求的时间限制包含什么值,该值都不能覆盖服务器强制。

参见

  • LDAP:掌握搜索过滤器
  • LDAP:搜索最佳做法
  • LDAP:编程实践
筛选器

返回的记录数超过预期的最大记录数。

您应该缩小或优化搜索范围,也可以增加 LDAP 服务器中的最大提取大小。(您需要覆盖默认值)。

相关内容

  • 没有找到相关文章

最新更新