Как мне установить size.pr в OpenLDAP?

Я думаю, что один из моих клиентов LDAP достиг предела нумерации страниц в OpenLDAP. Конкретная ошибка, которую видит клиент, - это следующая вещь Java:

REASON: Caught exception running LDAP sync. 
[LDAP: error code 2 - paged results cookie is invalid]; 
nested exception is javax.naming.CommunicationException: 
[LDAP: error code 2 - paged results cookie is invalid]; 
remaining name 'dc=example,dc=com'

Поиск в Google для этой ошибки вызвал обсуждение разбивки на страницы LDAP и соответствующих ограничений. В этом документе о ограничениях OpenLDAP упоминаются olcSizeLimit и size.pr .

Я смог изменить свой olcSizeLimit с 500 на -1, используя этот ldif:

dn: cn=config
changetype: modify
replace: olcSizeLimit
olcSizeLimit: -1

К сожалению, мой клиент все еще сталкивается с проблемой разбивки на страницы.

size.pr - это параметр slapd.conf, тогда как мой OpenLDAP использует вместо него slapd.d. После поиска в схеме LDAP я обнаружил olcDbClientPr , который описывается как 'Обработка PagedResults' . Кроме того, вот как это описано в исходном коде OpenLDAP :

{ "client-pr", "accept-unsolicited|disable|<size>", 2, 2, 0,
    ARG_MAGIC|LDAP_BACK_CFG_CLIENT_PR,
    meta_back_cf_gen, "( OLcfgDbAt:3.111 "
        "NAME 'olcDbClientPr' "
        "DESC 'PagedResults handling' "
        "SYNTAX OMsDirectoryString "
        "SINGLE-VALUE )",
    NULL, NULL },

Если предположить, что olcDbClientPr - это то же самое, что и size.pr, как мне его установить?

Я пробовал следующее:

dn: cn=config
changetype: modify
replace: olcDbClientPr
olcDbClientPr: -1

Выдает следующую ошибку:

modifying entry "cn=config"
ldap_modify: Object class violation (65)
    additional info: attribute 'olcDbClientPr' not allowed

Если это актуально, вот содержимое моего каталога cn = config :

# ls /etc/openldap/slapd.d/cn=config/
cn=module{0}.ldif  olcDatabase={0}config.ldif     olcDatabase={1}hdb.ldif
cn=schema          olcDatabase={-1}frontend.ldif  olcDatabase={1}monitor.ldif
cn=schema.ldif     olcDatabase={1}hdb
3
задан 24 November 2016 в 22:32
1 ответ

size.pr - опция olcLimits для каждой базы данных (и dn/group scopable). Вас также может заинтересовать глобальная опция olcSizeLimit.

Из slapd-config(5):

olcSizeLimit: size[.{soft|hard|unchecked}]= [...]
Укажите максимальное количество записей для возврата из операции поиска. Ограничение по умолчанию - 500. Использовать неограниченное, чтобы не указывать никаких лимитов. Второй формат позволяет задавать мелкозернистые границы размера. Дополнительные аргументы могут быть добавлены в том же значении или в виде дополнительных значений. Смотрите olcLimits для объяснения различных флагов.


olcDbClientPr является не тем же самым, что и size.pr.

.
3
ответ дан 3 December 2019 в 06:28

Теги

Похожие вопросы