This is new information related to this issue:
https://issues.apache.org/jira/browse/DIRSERVER-1724
On Thursday I built from the trunk version 1349996. Created new system and
schema partitions from built binaries.
I then created my partition, adding several indexed attributes (shown below)
and loaded 80k LDIF entries via studio Version: 2.0.0.v20120224 and the JNDI
provider.
All indexed attributes are searchable as exact match and by substring
immediately after the ldif import via studio. Results are fast. < 1 second
Once the displayName, or cn or givenName is updated (via studio or java method
below) the entry cannot be found via substring searching against these
attributes and the
duration to return (no results) is slow ~ 10 seconds. And I think it's timing
out even though there is no exception.
The Exact match still works almost instantly. Very fast! Thank you.
The way we've configured the directory, cn= is not a valid RDN.
The attributes I'm searching for aren't part of the DN or RDN.
Our DN's are in the format uid=1235456,ou=x,o=cpro - Could this be an issue?
Is there something else that needs to update or be updated when we modify an
indexed attribute?
Any ideas are appreciated. Thanks.
Example method of how we're modifying attributes with the JNDI api.
public void setAttribute(LdapContext ctx, String strDn, String
strAttribute, String strValue)
throws DirectoryAdapterException{
if (ctx == null){
ctx = bind(null); // GET ADMIN CONTEXT IF NULL
}
ModificationItem[] mods = new ModificationItem[1];
mods[0] = new ModificationItem(LdapContext.REPLACE_ATTRIBUTE, new
BasicAttribute(strAttribute, strValue));
try {
ctx.modifyAttributes(strDn, mods);
} catch (InvalidAttributeValueException iae){
throw new
DirectoryAdapterException(iae,DirectoryAdapterException.CANNOT_MODIFY_ENTRY,processControls(ctx));
} catch (AttributeModificationException ame){
throw new
DirectoryAdapterException(ame,DirectoryAdapterException.CANNOT_MODIFY_ENTRY,processControls(ctx));
} catch (NamingException ne){
throw new
DirectoryAdapterException(ne,DirectoryAdapterException.CANNOT_MODIFY_ENTRY,processControls(ctx));
} finally{
close(ctx);
}
}
These are the indexes :
dn: ads-indexAttributeId=apacheAlias,ou=indexes,ads-partitionId=cpro,ou=part
itions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheAlias
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=apacheOneAlias,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheOneAlias
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=apacheOneLevel,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheOneLevel
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=apachePresence,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apachePresence
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=apacheRdn,ou=indexes,ads-partitionId=cpro,ou=partit
ions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheRdn
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=apacheSubAlias,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheSubAlias
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=apacheSubLevel,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: apacheSubLevel
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=cn,ou=indexes,ads-partitionId=cpro,ou=partitions,ad
s-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: cn
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=description,ou=indexes,ads-partitionId=cpro,ou=part
itions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: description
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=displayName,ou=indexes,ads-partitionId=cpro,ou=part
itions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: displayName
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=employeeNumber,ou=indexes,ads-partitionId=cpro,ou=p
artitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: employeeNumber
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=entryCSN,ou=indexes,ads-partitionId=cpro,ou=partiti
ons,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: entryCSN
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=entryUUID,ou=indexes,ads-partitionId=cpro,ou=partit
ions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: entryUUID
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=krb5PrincipalName,ou=indexes,ads-partitionId=cpro,o
u=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: krb5PrincipalName
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=mail,ou=indexes,ads-partitionId=cpro,ou=partitions,
ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: mail
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=member,ou=indexes,ads-partitionId=cpro,ou=partition
s,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: member
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=o,ou=indexes,ads-partitionId=cpro,ou=partitions,ads
-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: o
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=objectClass,ou=indexes,ads-partitionId=cpro,ou=part
itions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: objectClass
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=ou,ou=indexes,ads-partitionId=cpro,ou=partitions,ad
s-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: ou
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=pwdPolicySubEntry,ou=indexes,ads-partitionId=cpro,o
u=partitions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: pwdPolicySubEntry
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=roomNumber,ou=indexes,ads-partitionId=cpro,ou=parti
tions,ads-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: roomNumber
ads-enabled: TRUE
ads-indexcachesize: 100
dn: ads-indexAttributeId=uid,ou=indexes,ads-partitionId=cpro,ou=partitions,a
ds-directoryServiceId=default,ou=config
objectclass: top
objectclass: ads-jdbmIndex
objectclass: ads-base
objectclass: ads-index
ads-indexattributeid: uid
ads-enabled: TRUE
ads-indexcachesize: 100
Regards,
Carlo Accorsi