[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: runtime config: adding values to olcDbConfig

> Hi!
> I am experiencing troubles when trying to add an additional value to the
> olcDbConfig attribute (openldap-2.4.16):
> $ ldapmodify -xvW -h bach-s49 -D cn=Manager,cn=config <<EOF
>> dn: olcDatabase={1}bdb,cn=config
>> changetype: modify
>> add: olcDbConfig
>> olcDbConfig: {19}# urxn
>> -
>> EOF
> ldap_initialize( ldap://bach-s49 )
> Enter LDAP Password:
> add olcDbConfig:
>         {19}# urxn
> modifying entry "olcDatabase={1}bdb,cn=config"
> ldap_modify: Inappropriate matching (18)
>         additional info: modify/add: olcDbConfig: no equality matching
> rule
> replacing all attribute values with "changetype: modify" and "replace:
> olcDbConfig" works fine but unfortunately Apache DirectoryStudio doesn't
> seem to offer that way of committing changes...

That's the prescribed way to modify values of multi-valued attrs without
equality matching rules in LDAP.  So it appears a limitation of the DUA
you're using rather than an OpenLDAP issue.

As per the reason olcDbConfig has no equality matching rule, I recall it
was by design, because that attribute is supposed to present in
human-readable form the contents of Oracle DB's DB_CONFIG, without mucking
with its contents.  OpenLDAP already provides a means to muck with the
ordering of its contents, it's the X-ORDERING 'VALUES' private extension.

> Unfortunately the attribute definition of olcDbConfig seems to be
> hardcoded, so is there any way to make the above modification work?

You can hard-code your modification, if you wish.  If you don't want to
modify baseline code permanently, you can write a run-time module that
looks up that attribute's definition and modifies it at startup.