修改LDAP查询默认1000条限制

公司的一个项目要从AD上取数据,为了测试性能,批量在AD上创建了2000多个用户。但是用java程序获取所有用户的时候会报错或者只能取到1000条数据。

用com.novell.ldap.LDAPConnection.search()方法查询的时候最多返回1000条数据。

用org.springframeworre.LdapTemplate.search()方法的时候会抛出异常。

org.springframework.ldap.SizeLimitExceededException Caused by: javax.naming.SizeLimitExceededException

和C#的同事看了半天也找不出原因。用C#程序去取数据的时候也只能取到1000条数据,ldap browser这样的工具也只能返回1000条结果,这个时候我们判断是服务器的问题。

第二天在网上找的“AD 1000”的相关资料。原来windows2000(2003) server本身出于性能负荷的考虑,将LDAP查询的数量限制为1000个。

当某个ldap查询条件返回数据大于1000条数据的时候,就会报SizeLimitExceededException 的异常!

这里可以参考微软官网的说法:

实际应用中AD中数据超过1000太正常不过了!如果服务器性能允许而且网络带宽不错的话,这样的限制就很不合理。那么如何修改呢?

1.在“开始”——>“运行”——>输入“ ntdsutil”——>回车;

2.输入:“ldap policies”,回车;

3.输入:“connections”,回车;

4.输入:“connect to domain yourDomainName”,例如(connect to domain baidu.com)

5.连接提示出现后,输入:“quit”,回车;

6.输入:“show values”,确认当前的最大返回数;(默认是1000)

7.输入:“set MaxPageSize to 10000”,将最大返回数改为10000。(最大返回数可以根据实际情况自行定义)。

8.再度输入:“show values”,确认当前的最大返回数(显示为:1000(10000))。

9.输入“commit changes”以确认修改。

10. 再次输入:“show values”,确认当前的最大返回数为10000。

11. 输入“quit”,退出设置状态;

12. 输入“quit”,退出当前命令。

然后在用java程序去访问,就可返回2000多个用户!

如果你的java程序还是返回1000条记录,记得修改一下代码。

LDAPSearchConstraints constraints = new LDAPSearchConstraints(); constraints.setMaxResults(2000); LDAPSearchResults results = conn.search("dc=xxx,dc=com",LDAPConnection.SCOPE_SUB, filter,attrs,false,constraints);

完工!

备注:客户端(java程序)也可以设置返回结果的数量,但这是为了不影响带宽的情况下设置的。如果设置的值大于服务端设置的值,那么依然没有效果!

下面把具体操作步骤用图片形式展示在这里!

注:该文档为转载文档,转载位置为http://www.educity.cn/wenda/364099.html

转载于:https://blog.51cto.com/guozhengyuan/1438334

修改LDAP查询默认1000条限制相关推荐

  1. mysql只能查询出1000条数据_MySQL SELECT语句中只能输出1000行数据的原因

    同事反映,客户的一套MySQL生产库,执行SELECT.. INTO OUTFILE语句只能导出1000行 最初以为是系统参数被重新设置了,建议他更改系统参数 mysql> set global ...

  2. mysql查询最后一条记录

    首先要确定什么是最后一条. 是编辑时间最新的为最后一条,还是某个字段数字最大的未最后一条. 比如以时间最大为最后一条,则将符合条件的资料都筛选出来,再按时间排序,再取一笔资料. SQL如下: sele ...

  3. 修改Windows AD的LDAP查询限制

    默认情况下,Windows Server中默认的将LDAP的查询数量限制为1000个,可以通过一下方式进行LDAP查询数量的修改: 1.登录域控服务器,然后在CMD命令行模式下输入:ntdsutil, ...

  4. Oracle数据库查询用 where in 查询的项超过1000条的解决方案

    众所周知,如果我们的用SQL查询语句时,如果用where in带的参数超过1000条的话,oracle是会报错的. 因为项目中遇到这样的问题,所以找到了接下来我要说的这个办法. 因为用的地方很多,所以 ...

  5. sql查询in条件超过1000条解决方案

    一. 背景: 小熙最近做的数据检索比较大,其中会使用到,in的条件会有超过1000条.但是in所支持的条件数量最多只有1000,那怎么办呢,后来小熙采取了分区检索,完成了. 二. 引入依赖: 引入ap ...

  6. 查询最近一千条数据mysql_保留mysql数据库中的最新1000条记录

    mysql_connect("localhost","root","root"); mysql_select_db("test&q ...

  7. 增大max_result_window是错的,ES只能查询前10000条数据的正确解决方案

    文章目录 1.问题现象描述 2.错误的解决方案 2.1 使用`max_result_window`的错误解决方案 2.2 官方对`max_result_window`参数的解释 2.3 官方推荐的解决 ...

  8. 各种数据库查询前几条数据的方法

    sql在不同数据库查询前几条数据 关键字: sql 前几条结果  sql在不同数据库查询前几条数据  1. ORACLE    SELECT * FROM TABLE1 WHERE ROWNUM< ...

  9. MySQL 查询 limit 1000,10 和 limit 10 速度一样快吗? 深度分页如何破解

    Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记! 刷网站的时候,我们经常会遇到需要分页查询的场景. 比如下图红框里的翻页功能. 我们很容易能联想到可以用mysql实现. 假设我们的建 ...

最新文章

  1. spring cloud快速搭建
  2. spi nor flash使用汇总
  3. git在公司内部的使用实践(转)
  4. pytorch加载预训练模型_Pytorch-Transformers 1.0发布,支持六个预训练框架,含27个预训练模型...
  5. [20180818]校内模拟赛
  6. STM32 电机教程 7 - 步进电机开环速度控制
  7. Hessian 使用入门
  8. vvv在线文档导出工具_一款真正实时的在线文档协作编辑工具,多人可同时对一份文件修改...
  9. bootstarp js设置列隐藏_Bootstrap框架----DataTables列表移动端适配定义隐藏列
  10. Ubuntu 20.04 更新,界面美化及安装搜狗输入法
  11. 用jq实现移动端滑动轮播以及定时轮播效果
  12. MyBatis的XML配置文件(二)
  13. 欧几里得算法(辗转相除法)
  14. android大作业源代码,大作业源代码.doc
  15. php程序员开发工具箱,PHP程序员工具箱免费版
  16. direct在计算机网络中是什么意思,DX11是什么 DX11(DirectX 11)是什么意思?
  17. java将明文变为密文,使用java编程实现明文和密文之间的互转
  18. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java软件学院门户网站u09k9
  19. linux程序执行收到信号17,Linux信号
  20. dotnet core error 0x80070057

热门文章

  1. checkVector()
  2. href 和 src 的区别
  3. geotrellis使用(三十)使用geotrellis读取PostGIS空间数据
  4. 【JDBC】实现对JDBC 连接的简单封装
  5. Android之使用Android-AQuery异步加载图片(一)
  6. 利用事件冒泡和阻止事件冒泡的例子
  7. 遨游金山网盾?蹦出来有啥用?
  8. 产品经理必须要知道的25个简约设计理念
  9. 为什么用户常常不会做最合理的选择?
  10. 【推荐】用这些 App 提高你的睡眠质量