Nuxeo 6.0 and LDAP Caching
Hello,
I'm using LDAP backend for user authentication described here.
I'm facing the following problem : Nuxeo 6.0-HF05 seems to not cache LDAP entries and make a lot of connections to LDAP server with every requests (WebDAV requests are very slow for example because of that). We don't have this beahviour with Nuxeo 5.6 where LDAP connections is limited and WebDAV access faster.
The log show a very lot of :
2015-03-11 14:25:23,222 DEBUG [http-bio-0.0.0.0-8080-exec-23] [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(app_ad_admins, false): LDAP search base='dc=xxxxx,dc=xx' filter='(&(name={0})(&(&(objectClass=group))(name=*)))' args='app_ad_admins' scope='2' [LDAPSession '602931589231417701' for directory groupLDAPDirectory]
2015-03-11 14:25:23,224 DEBUG [http-bio-0.0.0.0-8080-exec-23] [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(app_ad_admins, false): LDAP search base='dc=xxxxx,dc=xx' filter='(&(name={0})(&(&(objectClass=group))(name=*)))' args='app_ad_admins' scope='2' => found: CN=app_ad_admins,OU=xx,OU=xxxxxxxxxxx,DC=xxxxx,DC=xx [LDAPSession '602931589231417701' for directory groupLDAPDirectory]
2015-03-11 14:25:23,224 DEBUG [http-bio-0.0.0.0-8080-exec-23] [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(app_ad_admins, true): LDAP search base='dc=xxxxx,dc=xx' filter='(&(name={0})(&(&(objectClass=group))(name=*)))' args='app_ad_admins' scope='2' [LDAPSession '602931597821352295' for directory groupLDAPDirectory]
Is there a parameter to force caching other than < cacheTimeout \> ? Thank you.
Hello, I found the solution.
In the contribution for LDAP users and groups the tags '
- ldap-user-entry-cache
- ldap-user-entry-cache-without-references
- ldap-group-entry-cache
- ldap-group-entry-cache-without-references
Or you can define your own custom caches with the following contribution:
<cache class="org.nuxeo.ecm.core.cache.InMemoryCacheImpl" name="your-ldap-user-entry-cache">
<ttl>60</ttl><!-- minutes -->
<option name="maxSize">100000</option>
<option name="concurrencyLevel">500</option>
</cache>
<cache class="org.nuxeo.ecm.core.cache.InMemoryCacheImpl" name="your-ldap-user-entry-cache-without-references">
<ttl>60</ttl><!-- minutes -->
<option name="maxSize">100000</option>
<option name="concurrencyLevel">500</option>
</cache>
<cache class="org.nuxeo.ecm.core.cache.InMemoryCacheImpl" name="your-ldap-group-entry-cache">
<ttl>60</ttl><!-- minutes -->
<option name="maxSize">100000</option>
<option name="concurrencyLevel">500</option>
</cache>
<cache class="org.nuxeo.ecm.core.cache.InMemoryCacheImpl" name="your-ldap-group-entry-cache-without-references">
<option name="maxSize">100000</option>
<ttl>60</ttl><!-- minutes -->
<option name="concurrencyLevel">500</option>
</cache>
Regards.