【发布时间】:2015-08-25 01:08:17
【问题描述】:
我们的环境有 2 个 Windows 域控制器在 W2k12 上成功复制。在该域中,与其他所有人一样,我们有大量帐户,其中一些帐户属性必须是唯一的。出于不值得在这里访问的业务原因,我们有时需要在帐户之间交换属性。也就是说,user1 可能拥有 foo@domain.com 的(强制唯一)邮件,但我们很多人需要将其交换到 bar@domain.com 以便为 user2 提供邮件属性 foo@domain.com。
如果我执行 LDAP 更新以将 user1 的邮件设置为 bar@domain.com,获得成功的结果,然后将 foo@domain.com 分配给 user2,我经常(但不总是)遇到唯一性约束违规.即使我在操作之间关闭会话;最多暂停 2 秒;等等。如果我给它 5-10 秒,它似乎可以通过,但是我有一个 HTTP 响应,所以我真的很想在那之前得到一个结果。
这给我留下了两个问题:
- 尽管 MOD 成功,但导致违规的原因是什么?
- 是否有一种合理的方式来交换这些电子邮件,而无需线程化操作并希望它成功(或让用户等待 10-15 秒)?
【问题讨论】:
-
大概是复制延迟。确保您针对特定域控制器执行这两项操作。如果这不起作用,您可能必须强制复制并等待它完成 - 我相信这是可能的,但我不知道细节。
-
谢谢@HarryJohnston;不幸的是,这发生在同一个 DC 上,交替使用相同的 LDAP 会话或使用顺序会话。我将研究复制问题,看看是否有任何方法可以远程强制它。
-
我冒险进一步猜测它与全局目录有关,但我不知道这是否有帮助。
-
确实如此,谢谢@HarryJohnston。每次都可以连接到托管 GC 的节点。用于动态查找的用例有点 PITA,但可以轻松避免 non-expired-cached-constraint 问题。
标签: windows active-directory ldap windows-server-2012 windows-server