hi there!
keep up the excellent work!
cheers /tom
hi there!
when looking at the slurpd source code, I found out, that the suffix statement in the replica context is ignored:
excerpt from config.c:
} else if ( !strncasecmp( cargv[ i ], SUFFIXSTR, sizeof( SUFFIXSTR ) - 1 ) ) { /* ignore it */ ;
so hopefully the programmers will activate this statement soon, and in that way I feel it is intended to, namely to make it possible to do the replication for multiple backends hooked on different branches, without getting referral errors back from the slave slapd. *waving hands to the programmers corner* :)
and please be so kind and document not implemented stuff correctly in the man pages.
thx anyway /tom
my structure is like:
master ldap (2.0.27 RH7.3 rpm) 3 ldbm backends (dc={1,2,3},dc=domain,dc=net) definitions of these backends below 1 replogfile slurpd running
slave ldap (2.0.25 FreeBSD4.8 port) 3 ldbm backends (dc={1,2,3},dc=domain,dc=net) definitions of these backends below
I want the 3 backends replicated from the master to the slave.
that's all.
thx /tom
OpenLDAP Sadesi wrote:
i dont mean "branch" concept
can you explain more the structure of your system, please?
TIA ----- Original Message ----- From: "thomas fritz" <tf@slash10.com> To: "OpenLDAP Sadesi" <openldap.sadesi@juntadeandalucia.es>; <openldap-software@OpenLDAP.org>; <andreas@conectiva.com.br> Sent: Thursday, June 05, 2003 6:10 PM Subject: Re: replication having multiple backends
you mean the following:
replica host=ldap2.domain.net:389 suffix="dc=2,dc=domain,dc=net" binddn="cn=replicator,dc=2,dc=domain,dc=net" bindmethod=simple credentials=secret
the suffix *is* in the replica statement.
but when I do changes on the branch "dc=2,dc=domain,dc=net" slurpd also tries to update in the branches "dc=1,dc=domain,dc=net", "dc=3,dc=domain,dc=net" and so on, whith the referral error as result.
is there something wrong in the replica statement?
thx for the help /tom
OpenLDAP Sadesi wrote:
ok, i think that you have severals slaves and you want selective replication, dont?
for this purpouses you could use the suffix modifier at the replica statement. with this, you will get that only the replica of this branchs get the change, the others slapd will not
receive
it.
----- Original Message ----- From: "thomas fritz" <tf@slash10.com> To: <openldap-software@OpenLDAP.org> Sent: Thursday, June 05, 2003 2:13 PM Subject: replication having multiple backends
hi there!
we have some problems with slurpd having to deal with multiple backends.
whenever we change something on the master slapd, the changes got
written into the (one and only) slapd replication log file. slurpd grabs
it correctly and does the update to the appropriate backend on the
slave, but, and here comes the weird part:
slurpd also tries to update all the other backends, which are hooked on other branches of the directory tree. so slurpd gets a referral message back from the slave slapd (correct, cause this is the wrong branch for the update), and slurpd treats this referral message as an error, and puts it into the rejection log.
does anyone know, what is going wrong here?
the slurpd rejection logfile:
ERROR: Referral replica: ldap2.domain.net:389 time: 1054742636.1 dn: something=test,dc=1,dc=domain,dc=net changetype: add objectClass: something something: test creatorsName: cn=admin,dc=1,dc=domain,dc=net createTimestamp: 20030604160356Z modifiersName: cn=admin,dc=1,dc=domain,dc=net modifyTimestamp: 20030604160356Z
with number of backends minus one reiterations of the above error per update.
this is the config:
master:
##### DB-1 Definitions ##### database ldbm directory /openldap-ldbm/1 mode 0600 rootdn "cn=admin,dc=1,dc=domain,dc=net" rootpw secret suffix "dc=1,dc=domain,dc=net" replica host=ldap2.domain.net:389 suffix="dc=1,dc=domain,dc=net" binddn="cn=admin,dc=1,dc=domain,dc=net" bindmethod=simple credentials=secret replogfile /var/log/openldap/replog index objectClass eq
##### DB-2 Definitions ##### database ldbm directory /openldap-ldbm/2 mode 0600 rootdn "cn=admin,dc=2,dc=domain,dc=net" rootpw secret suffix "dc=2,dc=domain,dc=net" replica host=ldap2.domain.net:389 suffix="dc=2,dc=domain,dc=net" binddn="cn=admin,dc=2,dc=domain,dc=net" bindmethod=simple credentials=secret replogfile /var/log/openldap/replog index objectClass eq
and so forth...
slave:
##### DB-1 ##### database ldbm directory /openldap-ldbm/slave/1 mode 0600 rootdn "cn=admin,dc=1,dc=domain,dc=net" rootpw secret updatedn "cn=admin,dc=1,dc=domain,dc=net" updateref ldap://ldap1.domain.net:389 suffix "dc=1,dc=domain,dc=net"
##### DB-2 Definitions ##### database ldbm directory /openldap-ldbm/slave/2 mode 0600 rootdn "cn=admin,dc=2,dc=domain,dc=net" rootpw secret updatedn "cn=admin,dc=2,dc=domain,dc=net" updateref ldap://ldap1.domain.net:389 suffix "dc=2,dc=domain,dc=net"
and so forth
thx in advance!
greetinx /tom