I managed to make it work but using subtree-exclude instead:
database meta suffix ou=A,o=B,c=C uri ldap://server1/ou=A,o=B,c=C subtree-exclude "ou=S2,ou=A,o=B,c=C" uri ldap://server2/ou=S2,ou=A,o=B,c=C
This way, requests to ou=S2,ou=A,o=B,c=C are not seen by server1. Which is exactlly what I wanted to do.
By the way, I don't understand why your solution does not work. But never mind.
Many thanks for your help because I was not aware of this possibility to use the subtree-{include|exclude}.
May be such an example could be added in slapd-meta man page ?
By the way, could you tell me how you understand this message on slapd startup ? "WARNING: No dynamic config support for database meta."
Michel
Every object in the meta backend is virtual. Your configuration is hosed, because you state that the database is serving the naming context "ou=A,o=B,c=C", but then you configure URI directives to start serving the naming context from its leaves. If you want the root entry to be defined, you need to configure (at least) one URI to serve it. The "right" approach would be to configure exactly one URI to serve the root entry, and optionally use subtree-exclude or subtree-include to restrict the use of that URI's subtree. Something like
database meta suffix ou=A,o=B,c=C # ... uri ldap://server1/ou=A,o=B,c=C subtree-include "ou=S1,ou=A,o=B,c=C" #... uri ldap://server2/ou=S2,ou=A,o=B,c=C
should do the trick.
p.
Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ? Je crée ma boîte mail www.laposte.net