如何在apache目录服务器上设置复制

时间:2013-08-28 18:47:29

标签: apache apacheds

我在工作站上运行了2个apacheds服务(Windows 7)。其中一个服务作为Windows服务运行,另一个服务从命令行使用

从jar文件运行
java -jar "C:\Program Files (x86)\ApacheDS - Instance2\lib\apacheds-service-2.0.0-M15.jar"    "C:\Program Files (x86)\ApacheDS - Instance2\instances\instance2" 

第一个apacheds安装位于C:\ Program Files(x86)\ ApacheDS,它运行在10389.第二个服务在端口11389上运行。 使用apache目录工作室我可以连接到我的工作站上运行的这些实例/服务,并且控制台上没有错误。 通过使用以下ldif文件,我已导入实例1的设置,它将是主

dn: ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config 
changetype: modify 
add: ads-replReqHandler 
ads-replReqHandler: org.apache.directory.server.ldap.replication.provider.SyncReplRequestHandler

然后我还将以下ldif文件导入到Instance 1 / master -

dn: ads-replConsumerId=1,ou=replConsumers,ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config
changetype: add
ads-replRefreshNPersist: TRUE
ads-replAliasDerefMode: never
ads-replProvPort: 10389
ads-replSearchSizeLimit: 0
ads-replProvHostName: localhost
objectClass: ads-replConsumer
objectClass: ads-base
ads-replUserDn: uid=admin, ou=system
ads-replRefreshInterval: 60000
ads-replUserPassword: secret
ads-replConsumerId: 1
ads-replAttributes: *
ads-replSearchTimeOut: 0
ads-replSearchScope: sub
ads-replSearchFilter: (objectClass=*)
ads-searchBaseDN: ou=system

我在主服务器上添加了一些用户,ou = system,但是没有在从服务器上复制。没有任何证据证明这两个实例的控制台都试图说话,因此我认为这不是正确的配置或不完整的配置,因为我在apacheds文档中找不到任何需要作为其中一部分添加的文档。 Instance2 / Slave上的消费者配置。我错过了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

apacheds 2.0中存在一些错误 - 关于复制的M15版本。该错误已经纠正,修复将在M16。我从apacheds svn trunk构建了2个独立的实例,并构建了安装程序并运行了2个单独的实例。在Provider / Master上添加了以下设置/ config(在端口10389上运行) -

dn: ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config 
changetype: modify 
add: ads-replReqHandler 
ads-replReqHandler:         org.apache.directory.server.ldap.replication.provider.SyncReplRequestHandler

将以下配置添加到客户/从属实例(在11389上运行) -

dn: ads-replConsumerId=1,ou=replConsumers,ads-serverId=ldapServer,ou=servers,ads-directoryServiceId=default,ou=config
changetype: add
ads-replRefreshNPersist: TRUE
ads-replAliasDerefMode: never
ads-replProvPort: 10389
ads-replSearchSizeLimit: 0
ads-replProvHostName: localhost
objectClass: ads-replConsumer
objectClass: ads-base
ads-replUserDn: uid=admin, ou=system
ads-replRefreshInterval: 60000
ads-replUserPassword: secret
ads-replConsumerId: 1
ads-replAttributes: *
ads-replSearchTimeOut: 0
ads-replSearchScope: sub
ads-replSearchFilter: (objectClass=*)
ads-searchBaseDN: ou=system

重启两个实例并尝试在Provider和Wow下添加一个条目!它被复制到消费者手中。

虽然我在问题中发布的配置不正确,但是一些令人困惑的事情导致了这种配置。

  1. 缺乏关于apacheds网站的明确文档。
  2. Apache ds studio - 当您在apache ds studio中创建连接以连接到apacheds服务时,您可以右键单击该连接并打开其配置(存储在ou = config下。它基本上是ou =的GUI配置)。单击最后一个选项卡“复制”时。标题为“所有复制消费者”,右侧放置了“添加”按钮。这是误导性的,因为它给用户一个印象,即需要在此处添加消费者/从属详细信息,并且此配置应位于主/提供者端。