0

Spring-LDAPを介してActiveDirectoryに接続するサービスがあります。新しいユーザーを作成するための呼び出しが行われ、その直後にそのユーザーを検索するために別の呼び出しが行われると、検索が失敗し、オブジェクトが見つからないというエラーが発生することがあります。

同じ検索がほんの数秒後に機能するため、これはレプリケーションに関連しているようです。これらは2つの別個の要求であるため、プールからの同じ物理接続を使用することを保証できないことに注意してください。

これを解決するための私のオプションは何ですか?ADは、オブジェクトのローカルコピーが見つからない場合に、他のサーバーにクエリを実行するほど賢くありませんか?

4

2 に答える 2

1

LDAP クライアントは、エントリを追加または変更してから、追加または変更されたエントリをすぐに読み戻すべきではありません。これは、レプリケーションの結果整合性モデル (および Active Directory の機能を誰が知っているか) のためです。正しい手順は、読み取り後リクエスト コントロールを追加または変更リクエストに追加することです。詳細については、LDAP: プログラミングの実践を参照してください。

于 2011-11-18T13:06:48.170 に答える
0

上でコメントしたように、レプリケーションのレイテンシーは、書き込み後読み取りの一貫性を保証するアプリでは問題になります。通常、人々はいくつかの方法のいずれかでこれに対処します: 0) レプリケーションの速度を上げます。これはあなたによって「調整可能」です。0 になることはありませんが、オーダー秒にすることはできます。1) アプリを変更して決定論的 DC で書き込みを行い、同じ場所から読み取りを行います。同じ DC で書き込み後読み取りの一貫性が得られます。問題があるのは x-DC 読み取りです。2)アプリを変更して、これをまったく行わないようにします。:)

もちろん、戦略の組み合わせも使用できます...

于 2011-12-11T17:02:29.800 に答える