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

Re: replication having multiple backends



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

thomas fritz wrote:
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