Я писал небольшой тестовый пример, чтобы увидеть, что более эффективно, несколько небольших запросов или один большой запрос, когда я столкнулся с этим ограничением.
Запрос выглядит так:
(| (clientid=1) (clientid=2) (clientid=3) ...)
Когда количество клиентов превышает 2103?! сервер LDAP выдает ошибку:
error code 1 - Operations Error
Насколько я могу судить, фактическая длина строки фильтра не имеет значения ~ 69 КБ (по крайней мере, для Microsoft AD ограничение длины составляет 10 МБ). Я пробовал использовать более длинные имена атрибутов и получил то же странное ограничение: 2103 операнда.
- Кто-нибудь знает больше об этом ограничении?
- Это что-то указано в спецификации протокола LDAP или зависит от реализации?
- Это настраивается?
Я проверил это на IBM Tivoli Directory Server V6.2, используя оба UnboundID и JNDI Java библиотеки.