Формулировка проблемы: Во многих LDAP-серверах
присутствует лимит на количество одновременно выдаваемых по запросу
записей. Например, в Microsoft Active Directory по умолчанию он
составляет 1000 записей[14]. Этот лимит предохраняет LDAP-сервер от чрезмерной
перегрузки. Для того, чтобы можно было получить любое количество
записей по запросу, разработан механизм
LDAP Control Extension for Simple Paged Results Manipulation[15], который поддерживается большинством LDAPv3-совместимых
серверов, в том числе OpenLDAP[16].
Модуль синхронизации пользователей и групп Arta Synergy с каталогом LDAP (ни старый, ни новый[17]) на данный момент не поддерживает этот механизм, ввиду чего обработать количество записей LDAP сверх вышеописанного лимита невозможно.
Решение:
В обоих механизмах синхронизации
с LDAP (старом и новом, configuration version=2)
необходимо реализовать поддержку возможности постраничной выборки
результатов. Для этого в секцию
<item><sync/></item> необходимо
добавить параметр <page-size/>:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration xmlns="http://www.arta.kz/xml/ns/as/ldap-sync"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.arta.kz/xml/ns/as/ldap-sync ldap-sync_2.xsd"
version="2">
<!-- version="2" присутствует в новом механизме синхронизации -->
<item>
<!-- ...
Другие параметры
... -->
<sync>
<!--
Параметр включает постраничную выборку из LDAP
и определяет, сколько записей должно быть в одной странице.
Если параметр отсутствует
либо значение в нём равно -1 (по умолчанию),
постраничная загрузка не используется.
-->
<page-size>100</page-size>
<!-- ... -->
</sync>
</item>
</configuration>
Если на сервере не поддерживается расширение
LDAP Control Extension for Simple Paged Results Manipulation[18] или ему подобное[19], то механизм синхронизации должен переключиться на
старое поведение, уведомив об этом соответствующим предупреждающим
сообщением в логе сервера.