0

我有一个通过 Spring-LDAP 连接到 Active Directory 的服务。当调用创建新用户,然后立即进行单独调用以搜索该用户时,搜索有时会失败并出现 no-object-found 错误。

这似乎与复制有关,因为相同的搜索仅在片刻之后才起作用。请注意,这是两个单独的请求,因此不能保证使用池中的相同物理连接。

我有什么选择来解决这个问题?如果找不到对象的本地副本,AD 是否不够聪明,无法查询其他服务器?

4

2 回答 2

1

由于复制的最终一致性模型(以及谁知道 Active Directory 的作用),LDAP 客户端不应添加或修改条目,然后立即读取添加或修改的条目。正确的过程是将post read request 控件添加到 add 或 modify 请求中。有关详细信息,请参阅LDAP:编程实践

于 2011-11-18T13:06:48.170 回答
0

正如上面所评论的,对于假设先写后读一致性类型保证的应用程序,复制延迟是有问题的。通常人们会通过以下几种方式之一来处理这个问题: 0) 提高复制速度。这是您“可调”的。虽然它永远无法达到 0,但您可以将其设为秒级。1) 更改应用程序以在确定性 DC 上进行写入,然后从同一位置进行读取。您将在同一个 DC 上获得先写后读的一致性,这是有问题的 x-DC 读取。2)将应用程序更改为根本不这样做。:)

显然,您也可以使用策略组合...

于 2011-12-11T17:02:29.800 回答