LDAP过滤器布尔表达式最大参数数

时间:2012-05-18 14:46:39

标签: ldap ldap-query tivoli

当我遇到这个限制时,我正在编写一个小测试用例来查看更高效,多个小查询或单个大查询。

查询如下所示:

(| (clientid=1) (clientid=2) (clientid=3) ...)

当客户端数量超过 2103?!时,LDAP服务器会抛出错误:

error code 1 - Operations Error

据我所知,实际的过滤字符串长度无关紧要~69KB(at least for Microsoft AD the length limit is 10MB)。我尝试使用更长的属性名称并获得了相同的奇怪限制:2103个操作数

  1. 有没有人有关于此限制的更多信息?
  2. 这是在LDAP协议规范中指定的内容还是特定于实现的?
  3. 可以配置吗?
  4. 我使用UnboundIDJNDI Java库对 IBM Tivoli Directory Server V6.2 进行了测试。

1 个答案:

答案 0 :(得分:0)

不能超过8099个字符。见http://www-01.ibm.com/support/docview.wss?uid=swg21295980

另外,你所做的并不是一个好习惯。如果这些条目共享共同属性(例如,国家/地区代码,部门编号,位置等),请尝试使用这些属性为您提供的通用条件检索结果。如果没有,请将搜索过滤器划分为较小的搜索过滤器,每个过滤器具有较少的谓词并执行多次搜索。这取决于您使用的编程语言,但尝试在单独的线程中执行每个搜索,以加快数据检索过程。